/// <summary> /// Builds the simplest, the most common transaction (one non fungible currency, one receiver, one sender, one token) /// </summary> /// <param name="addreesFrom">account of owner</param> /// <param name="addressTo">address of destination account</param> /// <param name="utxo">input utxo with given token id</param> /// <param name="currency">currency of transfer</param> /// <returns></returns> public static Transaction Build(string addreesFrom, string addressTo, UTXOData utxo, string currency) { if (utxo.Currency == currency) { var tx = new Transaction(); tx.AddInput(utxo); tx.AddOutput(addressTo, currency, utxo.Data); return(tx); } return(null); }
/// <summary> /// Adds input to transaction /// </summary> /// <param name="data">transaction utxo input data</param> public bool AddInput(UTXOData data) { if (Inputs.Count <= MAX_INPUTS) { var tid = new TransactionInputData(data.BlkNum, data.TxIndex, data.OIndex); if (!tid.IsEmpty()) { Inputs.Add(tid); if (senders.Length < Inputs.Count) { Array.Resize(ref senders, Inputs.Count); } senders[Inputs.Count - 1] = data.Owner; return(true); } } return(false); }