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()); }