/// <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);
        }
Example #2
0
        /// <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);
        }