public async Task AnnounceMultisigTransaction()
        {
            var cosignatory     = KeyPair.CreateFromPrivateKey("8db858dcc8e2827074498204b3829154ec4c4f24d13738d3f501003b518ef256");
            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);

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

            Assert.AreEqual("SUCCESS", response.Message);
        }
示例#2
0
        public async Task GetOutgoingTransactionsTransfer()
        {
            const string        expectedHash = "b41462f6b28bd8446f45fd90b6bda6d8eb33174b7b0c168b618d63472a815fd2";
            List <Transaction>  txs          = await new AccountHttp(host).OutgoingTransactions(new Address(PLAINCSA));
            MultisigTransaction mstx         = (MultisigTransaction)txs[5];

            Assert.AreEqual(PUBKEYCS2, mstx.Signer.PublicKey);
            Assert.AreEqual(expectedHash, mstx.TransactionInfo.InnerHash);
            TransferTransaction ttx = (TransferTransaction)mstx.InnerTransaction;

            Assert.AreEqual(MosaicId.XEM, ttx.Mosaics[0].MosaicInfo.Name);
        }
示例#3
0
        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 CanModifyMultisigAccount()
        {
            var keyPair = KeyPair.CreateFromPrivateKey("8db858dcc8e2827074498204b3829154ec4c4f24d13738d3f501003b518ef256");

            var transaction = MultisigAggregateModificationTransaction.Create(
                NetworkType.Types.TEST_NET,
                Deadline.CreateHours(1),
                1,
                new List <MultisigModification>()
            {
                new MultisigModification(PublicAccount.CreateFromPublicKey("eb100d6b2da10fc5359ab35a5801b0e6f0b6cc18d849c0aa78ba1aab2b945dea", NetworkType.Types.TEST_NET),
                                         CosignatoryModificationType.Types.Add)
            });

            var multisigTransaction = MultisigTransaction.Create(NetworkType.Types.TEST_NET, Deadline.CreateHours(1), transaction)
                                      .SignWith(keyPair, PublicAccount.CreateFromPublicKey("29c4a4aa674953749053c8a35399b37b713dedd5d002cb29b3331e56ff1ea65a", NetworkType.Types.TEST_NET));

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

            Assert.AreEqual("FAILURE_MULTISIG_ALREADY_A_COSIGNER", response.Message);
        }
示例#5
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);
        }