public async Task <TransactionResponse> Send(object data) { var cosignatory = KeyPair.CreateFromPrivateKey("8db858dcc8e2827074498204b3829154ec4c4f24d13738d3f501003b518ef256"); var secondCosig = KeyPair.CreateFromPrivateKey("cfe47dd9801a5d4fe37183e8f6ca49fff532a2fe6fe099436df93b3d62fe17d5"); var multisigAccount = PublicAccount.CreateFromPublicKey("29c4a4aa674953749053c8a35399b37b713dedd5d002cb29b3331e56ff1ea65a", NetworkType.Types.TEST_NET); var recipient = new Account("E45030D2A22D97FDC4C78923C4BBF7602BBAC3B018FFAD2ED278FB49CD6F218C", NetworkType.Types.TEST_NET); var transaction = TransferTransaction.Create( NetworkType.Types.TEST_NET, Deadline.CreateHours(2), recipient.Address, new List <Mosaic> { Mosaic.CreateFromIdentifier("nem:xem", 1000000) }, PlainMessage.Create("hello") ); var multisigTransaction = MultisigTransaction .Create(NetworkType.Types.TEST_NET, Deadline.CreateHours(1), transaction) .SignWith(cosignatory, multisigAccount); TransactionResponse response = await new TransactionHttp(host).Announce(multisigTransaction); var signatureTransaction = CosignatureTransaction.Create( NetworkType.Types.TEST_NET, Deadline.CreateHours(1), "59f5f7cbbdaa996b8d3c45ce814280aab3b5d322a98fe95c00ae516cf436172d", multisigAccount.Address ).SignWith(secondCosig); TransactionResponse response2 = await new TransactionHttp(host).Announce(signatureTransaction); //var localVarPath = "/transaction/announce"; //var client = new RestClient(host); //var request = new RestRequest(localVarPath, Method.POST); //request.AddParameter("application/json", data, ParameterType.RequestBody); //var resp = client.Execute(request); if (response.Status == "1") { TransactionInfo transactionInfo = new TransactionInfo { Id = 1, Hash = response.Hash, InnerHash = response.InnerHash }; _transactionInfoRepository.AddTransaction(transactionInfo); } return(null); }
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); }
/// <summary> /// Signs the cosignature transaction. /// </summary> /// <param name="cosignatureTransaction">The cosignature transaction.</param> /// <returns>CosignatureSignedTransaction.</returns> public CosignatureSignedTransactionDTO SignCosignatureTransaction(CosignatureTransaction cosignatureTransaction) { return(cosignatureTransaction.SignWith(KeyPair)); }
private CosignatureSignedTransaction CosignAggregateBondedTransaction(AggregateTransaction transaction, Account account) { var cosignatureTransaction = CosignatureTransaction.Create(transaction); return(account.SignCosignatureTransaction(cosignatureTransaction)); }
/// <summary> /// Sign aggregate signature transaction /// </summary> /// <param name="cosignatureTransaction">the aggregate signature transaction</param> /// <returns></returns> public CosignatureSignedTransaction SignCosignatureTransaction(CosignatureTransaction cosignatureTransaction) { return(cosignatureTransaction.SignWith(this)); }