private CurrencyTransaction PrepareNewTransaction(string aFromAddress, string aToAddress, decimal aAmount, decimal aTxFee) { var lInput = new TransactionUnit[1] { new TransactionUnit(0, 0, aFromAddress) }; var lTokenTxData = ERC20TokenDecoder.Encode(ERC20Methods.Transfer, aToAddress, (FToken as ICurrencyAmountFormatter).AmountToBigInteger(aAmount).ToString()); var lOutput = new TransactionUnit[1] { new TransactionUnit(0, 0, FToken.ContractAddress, aScript: lTokenTxData) }; return(new CurrencyTransaction(lInput, lOutput, FCurrencyItem.AmountToLong(aTxFee), FToken.ParentCurrencyID)); }
private IEnumerable <ClientTokenTransactionItem> BuildERC20TokenTransaction(TransactionRecord aTx, TokenTransactionInfo aTokenTxInfo, bool aIsValid = true) { var lResult = new List <ClientTokenTransactionItem>(); if (ERC20TokenDecoder.TryDecode(aTokenTxInfo.Input, out IEnumerable <ERC20DataOutput> lDecodedTransactionPayloads)) { foreach (var lDecodedPayload in lDecodedTransactionPayloads) { lResult.Add(new ClientTokenTransactionItem { From = string.IsNullOrEmpty(lDecodedPayload.OriginAddress) ? aTokenTxInfo.From : lDecodedPayload.OriginAddress, To = lDecodedPayload.DestinationAddress, TokenAddress = string.IsNullOrEmpty(lDecodedPayload.ContractAddress) ? aTokenTxInfo.To : lDecodedPayload.ContractAddress, Amount = lDecodedPayload.AmountSent, ParentTransactionID = aTx.TxId, Valid = aIsValid }); } } return(lResult); }