예제 #1
0
        public WalletWithOneAddressFixture()
        {
            var factory  = new FixedSaltWalletFactoryProvider(Constants.DefaultFixedSalt16);
            var provider = new WalletAddressProviderFixture();
            var wallet   = factory.Create("rosebud");

            provider.Value.GenerateAddress(wallet);

            Value = wallet;
        }
예제 #2
0
        public WalletWithOneAddressFixture()
        {
            var factory  = new FixedSaltWalletFactoryProvider("_NaiveCoin_Salt_");
            var provider = new WalletAddressProviderFixture();
            var wallet   = factory.Create("rosebud");

            provider.Value.GenerateAddress(wallet);

            Value = wallet;
        }
예제 #3
0
        public void The_wallet_can_be_exported_to_keystore_on_disk()
        {
            var wallet1  = Fixture.Value;
            var filename = KeystoreFileStorageFormat.WriteToFile(Path.GetTempPath(), wallet1);
            var keystore = File.ReadAllText(filename);

            var factory = new FixedSaltWalletFactoryProvider("_NaiveCoin_Salt_");
            var wallet2 = factory.Create("rosebud");

            _keystore.Value.Import(wallet2, keystore);

            Assert.Equal(wallet1.KeyPairs.Count, wallet2.KeyPairs.Count);
            Assert.Equal(wallet1.KeyPairs[0].PublicKey.ToHex(), wallet2.KeyPairs[0].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[0].PrivateKey.ToHex(), wallet2.KeyPairs[0].PrivateKey.ToHex());
        }
예제 #4
0
        public void The_wallet_can_be_exported_to_keystore_on_disk()
        {
            var wallet1  = Fixture.Value;
            var filename = KeystoreFileStorageFormat.WriteToFile(Path.GetTempPath(), wallet1, KeystoreFileStorageFormat.KdfType.Scrypt);
            var keystore = File.ReadAllText(filename);

            var factory = new FixedSaltWalletFactoryProvider(Constants.DefaultFixedSalt16);
            var wallet2 = factory.Create("rosebud");

            _keystore.Value.Import(wallet2, keystore, Constants.KeystoreKeyLength);

            Assert.Equal(wallet1.KeyPairs.Count, wallet2.KeyPairs.Count);
            Assert.Equal(wallet1.KeyPairs[0].PublicKey.ToHex(), wallet2.KeyPairs[0].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[0].PrivateKey.ToHex(), wallet2.KeyPairs[0].PrivateKey.ToHex());
        }
예제 #5
0
        public void Both_addresses_can_be_imported_via_WIF()
        {
            var wallet1 = Fixture.Value;
            var wif1    = _wif.Value.Export(wallet1, wallet1.KeyPairs[0].PublicKey);
            var wif2    = _wif.Value.Export(wallet1, wallet1.KeyPairs[1].PublicKey);

            var factory = new FixedSaltWalletFactoryProvider("_NaiveCoin_Salt_");
            var wallet2 = factory.Create("rosebud");

            _wif.Value.Import(wallet2, wif1);
            _wif.Value.Import(wallet2, wif2);

            Assert.Equal(wallet1.KeyPairs.Count, wallet2.KeyPairs.Count);
            Assert.Equal(wallet1.KeyPairs[0].PublicKey.ToHex(), wallet2.KeyPairs[0].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[0].PrivateKey.ToHex(), wallet2.KeyPairs[0].PrivateKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[1].PublicKey.ToHex(), wallet2.KeyPairs[1].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[1].PrivateKey.ToHex(), wallet2.KeyPairs[1].PrivateKey.ToHex());
        }
        public void Both_addresses_can_be_imported_via_WIF()
        {
            var wallet1 = Fixture.Value;
            var wif1    = _wif.Value.Export(wallet1, wallet1.KeyPairs[0].PublicKey);
            var wif2    = _wif.Value.Export(wallet1, wallet1.KeyPairs[1].PublicKey);

            var factory = new FixedSaltWalletFactoryProvider(Constants.DefaultFixedSalt16);
            var wallet2 = factory.Create("rosebud");

            _wif.Value.Import(wallet2, wif1, Constants.WifKeyLength);
            _wif.Value.Import(wallet2, wif2, Constants.WifKeyLength);

            Assert.Equal(wallet1.KeyPairs.Count, wallet2.KeyPairs.Count);
            Assert.Equal(wallet1.KeyPairs[0].PublicKey.ToHex(), wallet2.KeyPairs[0].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[0].PrivateKey.ToHex(), wallet2.KeyPairs[0].PrivateKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[1].PublicKey.ToHex(), wallet2.KeyPairs[1].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[1].PrivateKey.ToHex(), wallet2.KeyPairs[1].PrivateKey.ToHex());
        }
예제 #7
0
        public void Both_addresses_can_be_imported_and_exported_via_keystore()
        {
            var wallet1 = Fixture.Value;
            var kstore1 = _keystore.Value.Export(wallet1, wallet1.KeyPairs[0].PublicKey);
            var kstore2 = _keystore.Value.Export(wallet1, wallet1.KeyPairs[1].PublicKey);

            Assert.NotNull(kstore1);
            Assert.NotNull(kstore2);

            var factory = new FixedSaltWalletFactoryProvider("_NaiveCoin_Salt_");
            var wallet2 = factory.Create("rosebud");

            _keystore.Value.Import(wallet2, kstore1);
            _keystore.Value.Import(wallet2, kstore2);

            Assert.Equal(wallet1.KeyPairs.Count, wallet2.KeyPairs.Count);
            Assert.Equal(wallet1.KeyPairs[0].PublicKey.ToHex(), wallet2.KeyPairs[0].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[0].PrivateKey.ToHex(), wallet2.KeyPairs[0].PrivateKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[1].PublicKey.ToHex(), wallet2.KeyPairs[1].PublicKey.ToHex());
            Assert.Equal(wallet1.KeyPairs[1].PrivateKey.ToHex(), wallet2.KeyPairs[1].PrivateKey.ToHex());
        }