public async Task <StoresController> CreateStoreAsync() { ExtKey = new ExtKey().GetWif(parent.Network); var store = parent.PayTester.GetController <StoresController>(UserId); await store.CreateStore(new CreateStoreViewModel() { Name = "Test Store" }); StoreId = store.CreatedStoreId; DerivationScheme = new DerivationStrategyFactory(parent.Network).Parse(ExtKey.Neuter().ToString() + "-[legacy]"); await store.UpdateStore(StoreId, new StoreViewModel() { SpeedPolicy = SpeedPolicy.MediumSpeed }); await store.AddDerivationScheme(StoreId, new DerivationSchemeViewModel() { CryptoCurrency = "BTC", DerivationSchemeFormat = "BTCPay", DerivationScheme = DerivationScheme.ToString(), }, "Save"); return(store); }
public async Task <StoresController> CreateStoreAsync(string cryptoCode = null) { cryptoCode = cryptoCode ?? CryptoCode; SupportedNetwork = parent.NetworkProvider.GetNetwork(cryptoCode); ExtKey = new ExtKey().GetWif(SupportedNetwork.NBitcoinNetwork); var store = parent.PayTester.GetController <StoresController>(UserId); await store.CreateStore(new CreateStoreViewModel() { Name = "Test Store" }); StoreId = store.CreatedStoreId; DerivationScheme = new DerivationStrategyFactory(SupportedNetwork.NBitcoinNetwork).Parse(ExtKey.Neuter().ToString() + "-[legacy]"); var vm = (StoreViewModel)((ViewResult)await store.UpdateStore(StoreId)).Model; vm.SpeedPolicy = SpeedPolicy.MediumSpeed; await store.UpdateStore(StoreId, vm); await store.AddDerivationScheme(StoreId, new DerivationSchemeViewModel() { CryptoCurrency = cryptoCode, DerivationSchemeFormat = "BTCPay", DerivationScheme = DerivationScheme.ToString(), Confirmation = true }, "Save"); return(store); }
public async Task RegisterDerivationSchemeAsync(string crytoCode) { var store = parent.PayTester.GetController <StoresController>(UserId); var networkProvider = parent.PayTester.GetService <BTCPayNetworkProvider>(); var derivation = new DerivationStrategyFactory(networkProvider.GetNetwork(crytoCode).NBitcoinNetwork).Parse(ExtKey.Neuter().ToString() + "-[legacy]"); await store.AddDerivationScheme(StoreId, new DerivationSchemeViewModel() { CryptoCurrency = crytoCode, DerivationSchemeFormat = crytoCode, DerivationScheme = derivation.ToString(), Confirmation = true }, "Save"); }
public async Task<WalletId> RegisterDerivationSchemeAsync(string cryptoCode, bool segwit = false) { SupportedNetwork = parent.NetworkProvider.GetNetwork<BTCPayNetwork>(cryptoCode); var store = parent.PayTester.GetController<StoresController>(UserId, StoreId); ExtKey = new ExtKey().GetWif(SupportedNetwork.NBitcoinNetwork); DerivationScheme = new DerivationStrategyFactory(SupportedNetwork.NBitcoinNetwork).Parse(ExtKey.Neuter().ToString() + (segwit ? "" : "-[legacy]")); await store.AddDerivationScheme(StoreId, new DerivationSchemeViewModel() { DerivationScheme = DerivationScheme.ToString(), Confirmation = true }, cryptoCode); return new WalletId(StoreId, cryptoCode); }
public async Task RegisterDerivationSchemeAsync(string cryptoCode) { SupportedNetwork = parent.NetworkProvider.GetNetwork(cryptoCode); var store = parent.PayTester.GetController <StoresController>(UserId, StoreId); ExtKey = new ExtKey().GetWif(SupportedNetwork.NBitcoinNetwork); DerivationScheme = new DerivationStrategyFactory(SupportedNetwork.NBitcoinNetwork).Parse(ExtKey.Neuter().ToString() + "-[legacy]"); var vm = (StoreViewModel)((ViewResult)store.UpdateStore()).Model; vm.SpeedPolicy = SpeedPolicy.MediumSpeed; await store.UpdateStore(vm); await store.AddDerivationScheme(StoreId, new DerivationSchemeViewModel() { DerivationScheme = DerivationScheme.ToString(), Confirmation = true }, cryptoCode); }
public async Task <GetXPubResult> GetExtPubKey(BTCPayNetwork network) { if (network == null) { throw new ArgumentNullException(nameof(network)); } var pubkey = await GetExtPubKey(_Ledger, network, new KeyPath("49'").Derive(network.CoinType).Derive(0, true), false); var derivation = new DerivationStrategyFactory(network.NBitcoinNetwork).CreateDirectDerivationStrategy(pubkey, new DerivationStrategyOptions() { P2SH = true, Legacy = false }); return(new GetXPubResult() { ExtPubKey = derivation.ToString() }); }
public async Task <GetXPubResult> GetExtPubKey(BTCPayNetwork network, KeyPath keyPath, CancellationToken cancellation) { if (network == null) { throw new ArgumentNullException(nameof(network)); } var segwit = network.NBitcoinNetwork.Consensus.SupportSegwit; var pubkey = await GetExtPubKey(Ledger, network, keyPath, false, cancellation); var derivation = new DerivationStrategyFactory(network.NBitcoinNetwork).CreateDirectDerivationStrategy(pubkey, new DerivationStrategyOptions() { P2SH = segwit, Legacy = !segwit }); return(new GetXPubResult() { ExtPubKey = derivation.ToString(), KeyPath = keyPath }); }
public async Task <GetXPubResult> GetExtPubKey(BTCPayNetwork network, int account) { if (network == null) { throw new ArgumentNullException(nameof(network)); } var segwit = network.NBitcoinNetwork.Consensus.SupportSegwit; var path = network.GetRootKeyPath().Derive(account, true); var pubkey = await GetExtPubKey(_Ledger, network, path, false); var derivation = new DerivationStrategyFactory(network.NBitcoinNetwork).CreateDirectDerivationStrategy(pubkey, new DerivationStrategyOptions() { P2SH = segwit, Legacy = !segwit }); return(new GetXPubResult() { ExtPubKey = derivation.ToString(), KeyPath = path }); }