Example #1
0
        public void TestTransferTransactionBuilder()
        {
            var builder = new TransferTransactionBuilder();

            builder.NID        = 2;
            builder.PrivateKey = PrivateKey.Random();
            builder.To         = "hx54f7853dc6481b670caf69c5a27c7c8fe5be8269";
            builder.StepLimit  = NumericsHelper.ICX2Loop("0.1");
            builder.Value      = NumericsHelper.ICX2Loop("1");
            builder.Timestamp  = 100000000000;

            var tx = builder.Build();

            Assert.Null(tx.Data);
            Assert.Null(tx.DataType);
            Assert.True(Signer.Verify(tx.Signature, tx.Hash, tx.From));

            var hashSource = new Dictionary <string, object>()
            {
                ["version"]   = "0x3",
                ["nid"]       = "0x2",
                ["from"]      = Addresser.Create(builder.PrivateKey).ToString(),
                ["to"]        = "hx54f7853dc6481b670caf69c5a27c7c8fe5be8269",
                ["stepLimit"] = "0x16345785d8a0000",
                ["value"]     = "0xde0b6b3a7640000",
                ["timestamp"] = "0x174876e800"
            };

            var hash = Hasher.Digest(hashSource);

            Assert.AreEqual(tx.Hash, hash);
        }
Example #2
0
        public async Task <Hash32> Transfer(Address to, BigInteger amount, BigInteger stepLimit, int?networkID = null)
        {
            var builder = new TransferTransactionBuilder();

            builder.PrivateKey = PrivateKey;
            builder.To         = to;
            builder.Value      = amount;
            builder.StepLimit  = stepLimit;
            builder.NID        = networkID ?? Consts.ApiUrl.GetNetworkID(ApiUrl);

            var tx = builder.Build();
            var sendTransaction = new SendTransaction(ApiUrl);

            return(await sendTransaction.Invoke(tx));
        }
Example #3
0
        public static Hash32 Transfer(Address to, PrivateKey privateKey, BigInteger amount, BigInteger stepLimit, string Api)
        {
            var builder = new TransferTransactionBuilder
            {
                PrivateKey = privateKey,
                To         = to,
                Value      = amount,
                StepLimit  = stepLimit,
                NID        = 3
            };

            var tx = builder.Build();
            var sendTransaction = new SendTransaction(Api);

            return(sendTransaction.Invoke(tx).Result);
        }
Example #4
0
        private TransferTransaction CreateTransaction(Address recipientAddress, int transactionDeadline,
                                                      List <Mosaic> transactionMosaics, IMessage message)
        {
            var mosaics = (transactionMosaics == null || transactionMosaics.Count <= 0) ? new List <Mosaic> {
                NetworkCurrencyMosaic.CreateRelative(0)
            } : transactionMosaics;

            var recipient = Recipient.From(recipientAddress);

            var builder = new TransferTransactionBuilder();

            var transferTransaction = builder
                                      .SetNetworkType(BlockchainNetworkConnection.NetworkType)
                                      .SetDeadline(Deadline.Create(transactionDeadline))
                                      .SetMosaics(mosaics)
                                      .SetRecipient(recipient)
                                      .SetMessage(message)
                                      .SetFeeCalculationStrategy(BlockchainNetworkConnection.FeeCalculationStrategy)
                                      .Build();

            return(transferTransaction);
        }
        public async Task Should_Announce_Transfer_Transaction_With_Default_Fee()
        {
            var account = Account.GenerateNewAccount(Fixture.NetworkType);
            var mosaic  = NetworkCurrencyMosaic.CreateRelative(10);
            var message = PlainMessage.Create("Test message");

            var builder = new TransferTransactionBuilder();

            var transferTransaction = builder
                                      .SetNetworkType(Fixture.NetworkType)
                                      .SetDeadline(Deadline.Create())
                                      .SetMosaics(new List <Mosaic>()
            {
                mosaic
            })
                                      .SetRecipient(Recipient.From(account.Address))
                                      .SetMessage(message)
                                      .SetFeeCalculationStrategy(FeeCalculationStrategyType.LOW)
                                      .Build();


            var signedTransaction = Fixture.SeedAccount.Sign(transferTransaction, Fixture.GenerationHash);

            Fixture.WatchForFailure(signedTransaction);

            //Log.WriteLine($"Going to announce transaction {signedTransaction.Hash}");

            var tx = Fixture.SiriusWebSocketClient.Listener.ConfirmedTransactionsGiven(Fixture.SeedAccount.Address).Take(1);

            await Fixture.SiriusClient.TransactionHttp.Announce(signedTransaction);

            var result = await tx;

            Log.WriteLine($"Transaction confirmed {result.TransactionInfo.Hash}");
            result.TransactionInfo.Hash.Should().NotBeNullOrWhiteSpace();
            //result.TransactionType.Should().Be(EntityType.TRANSFER);
            ((TransferTransaction)result).Message.GetMessageType().Should().Be(MessageType.PLAIN_MESSAGE.GetValueInByte());
        }