Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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");
 }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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
            });
        }