コード例 #1
0
        public void GetDeterministicSecretTest()
        {
            var mnemonic = new Mnemonic(Wordlist.English, WordCount.TwentyFour);

            var wallet = new HdWallet(mnemonic.ToString(), Wordlist.English, new SecureString(), Network.TestNet);

            var timeStamp = DateTime.UtcNow;

            var secretBtc1 = wallet.GetDeterministicSecret(Common.BtcTestNet, timeStamp);
            var secretBtc2 = wallet.GetDeterministicSecret(Common.BtcTestNet, timeStamp.AddMilliseconds(1));

            Assert.NotEqual(secretBtc1, secretBtc2);

            var secretBtc3 = wallet.GetDeterministicSecret(Common.BtcTestNet, timeStamp);

            Assert.Equal(secretBtc1, secretBtc3);

            var secretLtc1 = wallet.GetDeterministicSecret(Common.LtcTestNet, timeStamp);

            Assert.NotEqual(secretBtc1, secretLtc1);

            var secretXtz1 = wallet.GetDeterministicSecret(Common.XtzTestNet, timeStamp);

            Assert.NotEqual(secretBtc1, secretXtz1);

            var secretEth1 = wallet.GetDeterministicSecret(Common.EthTestNet, timeStamp);

            Assert.NotEqual(secretBtc1, secretEth1);
        }
コード例 #2
0
        public override void Next()
        {
            var wallet = new HdWallet(
                mnemonic: StepData.Mnemonic,
                wordList: StepData.Language,
                passPhrase: Password,
                network: StepData.Network)
            {
                PathToWallet = StepData.PathToWallet
            };

            PasswordVM.StringPass = string.Empty;

            RaiseOnNext(wallet);
        }
コード例 #3
0
        private Error Send(
            BitcoinBasedConfig currency,
            decimal available,
            decimal amount,
            decimal fee,
            DustUsagePolicy dustUsagePolicy,
            Action <Mock <IBlockchainApi> > apiSetup = null,
            Action <Mock <IAccountDataRepository>, WalletAddress> repositorySetup = null)
        {
            var apiMock = new Mock <IBlockchainApi>();

            apiSetup?.Invoke(apiMock);

            var wallet      = new HdWallet(Network.TestNet);
            var fromAddress = wallet.GetAddress(
                currency: currency,
                account: 0,
                chain: 0,
                index: 0,
                keyType: CurrencyConfig.StandardKey);
            var fromOutputs = GetOutputs(fromAddress.Address, NBitcoin.Network.TestNet, currency.CoinToSatoshi(available)).ToList();

            var repositoryMock = new Mock <IAccountDataRepository>();

            repositorySetup?.Invoke(repositoryMock, fromAddress);

            var currencies = Common.CurrenciesTestNet;

            currencies.GetByName(currency.Name).BlockchainApi = apiMock.Object;

            var account = new BitcoinBasedAccount(
                currency: currency.Name,
                currencies: currencies,
                wallet: wallet,
                dataRepository: repositoryMock.Object);

            return(account
                   .SendAsync(
                       from: fromOutputs,
                       to: currency.TestAddress(),
                       amount: amount,
                       fee: fee,
                       dustUsagePolicy: dustUsagePolicy)
                   .WaitForResult());
        }