public async Task AnnounceMultisigTransaction()
        {
            const string recipientPrivKey = "E45030D2A22D97FDC4C78923C4BBF7602BBAC3B018FFAD2ED278FB49CD6F218C";
            const string cosignerPrivKey  = "8db858dcc8e2827074498204b3829154ec4c4f24d13738d3f501003b518ef256";
            const string multisigPubKey   = "29c4a4aa674953749053c8a35399b37b713dedd5d002cb29b3331e56ff1ea65a";
            var          cosignatory      = new KeyPair(cosignerPrivKey);
            var          multisigAccount  = new PublicAccount(multisigPubKey, NetworkType.Types.TEST_NET);
            var          recipient        = new PrivateAccount(recipientPrivKey, NetworkType.Types.TEST_NET);

            var transaction = TransferTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(2),
                recipient.Address,
                new List <MosaicAmount> {
                new MosaicAmount("nem:xem", 1000000)
            },
                PlainMessage.Create("hello")
                );

            var multisigTransaction = MultisigTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(1),
                transaction
                ).SignWith(cosignatory, multisigAccount);

            var response = await new TransactionHttp("http://" + Config.Domain + ":7890").Announce(multisigTransaction);

            Assert.AreEqual("SUCCESS", response.Message);
        }
Esempio n. 2
0
        public void ShouldCreateAccountViaStaticConstructor3()
        {
            PrivateAccount account = PrivateAccount.CreateFromPrivateKey("CFE47DD9801A5D4FE37183E8F6CA49FFF532A2FE6FE099436DF93B3D62FE17D5", NetworkType.Types.TEST_NET);

            Assert.AreEqual("CFE47DD9801A5D4FE37183E8F6CA49FFF532A2FE6FE099436DF93B3D62FE17D5", account.PrivateKey);
            Assert.AreEqual("FBE95048D0325E2553A5E2AA88B9E12ED59F7C8C0FB8F84A638F43A390116C22", account.PublicKey);
            Assert.AreEqual("TBPAMOPRIATPT76TAZZWERHOK72FIKN4YCD4VJMJ", account.Address.Plain);
        }
Esempio n. 3
0
        public void ShouldCreateAccountViaStaticConstructor2()
        {
            PrivateAccount account = PrivateAccount.CreateFromPrivateKey("D0841A3D27AED59BB25135DA3A17DC8E2A62E70B35A0E46D91CCD7CDB75754F1", NetworkType.Types.TEST_NET);

            Assert.AreEqual("D0841A3D27AED59BB25135DA3A17DC8E2A62E70B35A0E46D91CCD7CDB75754F1", account.PrivateKey);
            Assert.AreEqual("856F39436E33129AFFF95B89ACA998FA23CD751A6F4D79CE4FB9DA9641ECB59C", account.PublicKey);
            Assert.AreEqual("TACOPEXRLZTUWBQA3UXV66R455L76ENWK6OYITBJ", account.Address.Plain);
        }
Esempio n. 4
0
        public void ShouldCreateAccountViaStaticConstructor()
        {
            PrivateAccount account = PrivateAccount.CreateFromPrivateKey("6EA3FD5F2CF4FBEB54CD96A48D11CD2FF0B4106472C6A97C7E4E5736243CB2DB", NetworkType.Types.TEST_NET);

            Assert.AreEqual("6EA3FD5F2CF4FBEB54CD96A48D11CD2FF0B4106472C6A97C7E4E5736243CB2DB", account.PrivateKey);
            Assert.AreEqual("TCTUIF557ZCQOQPW2M6GH4TCDPM2ZYBBL54KGNHR", account.Address.Plain);
            Assert.AreEqual("7B1A93132B8C5B8001A07F973307BEE2B37BCD6DC279A59EA98179B238D44E2D", account.PublicKey);
        }
Esempio n. 5
0
        public void ShouldCreateAccountViaConstructor()
        {
            PrivateAccount account = new PrivateAccount("c02059f81a44e1a1a4a6eb0ff3b10fb289f255c8b17caafb75d92a69665d508b".ToUpper(), NetworkType.Types.MAIN_NET);


            Assert.AreEqual("C02059F81A44E1A1A4A6EB0FF3B10FB289F255C8B17CAAFB75D92A69665D508B", account.PrivateKey);
            Assert.AreEqual("B5E726F735A9D59F3452FB199CFAB04662D349C8254C96EEE2C7AA2427BA3BBE", account.PublicKey);
            Assert.AreEqual("NBABGDFTMXWWU6TGFZW76HNZF4YMQQJP2GMMV5C5", account.Address.Plain);
        }
Esempio n. 6
0
        public async Task CanSignMultisigTransaction()
        {
            var cosignatory     = new KeyPair("8db858dcc8e2827074498204b3829154ec4c4f24d13738d3f501003b518ef256");
            var secondCosig     = new KeyPair("cfe47dd9801a5d4fe37183e8f6ca49fff532a2fe6fe099436df93b3d62fe17d5");
            var multisigAccount = new PublicAccount("29c4a4aa674953749053c8a35399b37b713dedd5d002cb29b3331e56ff1ea65a", NetworkType.Types.TEST_NET);
            var recipient       = new PrivateAccount("E45030D2A22D97FDC4C78923C4BBF7602BBAC3B018FFAD2ED278FB49CD6F218C", NetworkType.Types.TEST_NET);

            var transaction = TransferTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(2),
                recipient.Address,
                new List <MosaicAmount> {
                new MosaicAmount("nem:xem", 1000000)
            },
                PlainMessage.Create("hello")
                );

            var multisigTransaction = MultisigTransaction
                                      .Create(NetworkType.Types.TEST_NET, Deadline.CreateHours(1), transaction)
                                      .SignWith(cosignatory, multisigAccount);

            var response = await new TransactionHttp("http://" + Config.Domain + ":7890").Announce(multisigTransaction);

            Assert.AreEqual("SUCCESS", response.Message);

            var signatureTransaction = CosignatureTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(1),
                "59f5f7cbbdaa996b8d3c45ce814280aab3b5d322a98fe95c00ae516cf436172d",
                multisigAccount.Address
                ).SignWith(secondCosig);

            var response2 = await new TransactionHttp("http://" + Config.Domain + ":7890").Announce(signatureTransaction);

            Assert.AreEqual("FAILURE_MULTISIG_NO_MATCHING_MULTISIG", response2.Message);
        }
Esempio n. 7
0
        public void CreateNewAccountFromKey()
        {
            var acc = PrivateAccount.CreateFromPrivateKey("52b62ec8fafe1d5b7dc2896749f979d5c9ec852a4d37cff9f10656629f4efbf7", NetworkType.Types.MIJIN_TEST);

            Assert.AreEqual(64, acc.PublicKey.Length);
        }
Esempio n. 8
0
        public void CreateNewAccount()
        {
            var acc = PrivateAccount.GenerateNewAccount(NetworkType.Types.MIJIN_TEST);

            Assert.AreEqual(64, acc.PublicKey.Length);
        }
Esempio n. 9
0
        /// <summary>
        /// Creates a new simple wallet.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="password">The password.</param>
        /// <param name="network">The network.</param>
        /// <returns>SimpleWallet.</returns>
        public static SimpleWallet CreateNewSimpleWallet(string name, Password password, NetworkType.Types network)
        {
            var Acc = PrivateAccount.GenerateNewAccount(network);

            return(CreateNewSimpleWallet(name, password, Acc, network));
        }
Esempio n. 10
0
        /// <summary>
        /// Creates a new simple wallet.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="password">The password.</param>
        /// <param name="privateKey">The private key.</param>
        /// <param name="network">The network.</param>
        /// <returns>SimpleWallet.</returns>
        public static SimpleWallet CreateNewSimpleWallet(string name, Password password, string privateKey, NetworkType.Types network)
        {
            var account = PrivateAccount.CreateFromPrivateKey(privateKey, network);

            return(CreateNewSimpleWallet(name, password, account, network));
        }
Esempio n. 11
0
 /// <summary>
 /// Opens the wallet with a specified password.
 /// </summary>
 /// <param name="password">The password.</param>
 /// <returns>Account.</returns>
 public PrivateAccount Open(Password password)
 {
     return(PrivateAccount.CreateFromPrivateKey(EncryptedPrivateKey.Decrypt(password), Network));
 }
Esempio n. 12
0
 /// <summary>
 /// Unlocks the private key.
 /// </summary>
 /// <param name="password">The password.</param>
 /// <returns>System.String.</returns>
 public string UnlockPrivateKey(Password password)
 {
     return(PrivateAccount.CreateFromPrivateKey(EncryptedPrivateKey.Decrypt(password), Network)
            .PrivateKey);
 }
Esempio n. 13
0
        internal static SimpleWallet CreateNewSimpleWallet(string name, Password password, PrivateAccount account, NetworkType.Types network)
        {
            var encKey = new EncryptedPrivateKey(CryptoUtils.EncodePrivateKey(account.PrivateKey, password.Value));

            var wlt = new WalletObject()
            {
                Accounts = new WalletAccounts()
                {
                    Account = new List <WalletAccount>
                    {
                        new WalletAccount
                        {
                            Address   = account.Address.Plain,
                            Algo      = "pass:bip32",
                            Brain     = false,
                            Child     = "",
                            Encrypted = encKey.EncryptedKey,
                            Iv        = encKey.Iv,
                            Label     = "Primary",
                            Network   = network.GetNetwork()
                        }
                    }
                },
                Name       = name,
                PrivateKey = ""
            };

            return(new SimpleWallet(name, network, wlt, encKey));
        }