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); }
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); }
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); }
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); }
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); }
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); }
public void CreateNewAccountFromKey() { var acc = PrivateAccount.CreateFromPrivateKey("52b62ec8fafe1d5b7dc2896749f979d5c9ec852a4d37cff9f10656629f4efbf7", NetworkType.Types.MIJIN_TEST); Assert.AreEqual(64, acc.PublicKey.Length); }
public void CreateNewAccount() { var acc = PrivateAccount.GenerateNewAccount(NetworkType.Types.MIJIN_TEST); Assert.AreEqual(64, acc.PublicKey.Length); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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); }
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)); }