コード例 #1
0
        /// <summary>
        /// Read vout list from byte sequence.
        /// </summary>
        /// <param name="wBytes">Reference to binary reader</param>
        /// <returns>Outputs array</returns>
        internal static CTxOut[] ReadTxOutList(ref BinaryReader reader)
        {
            int nOutputs = (int)VarInt.ReadVarInt(ref reader);
            var vout =new CTxOut[nOutputs];

            for (int nIndex = 0; nIndex < nOutputs; nIndex++)
            {
                // Fill outputs array
                vout[nIndex] = new CTxOut();
                vout[nIndex].nValue = reader.ReadInt64();

                int nScriptPKLen = (int)VarInt.ReadVarInt(ref reader);
                vout[nIndex].scriptPubKey = new CScript(reader.ReadBytes(nScriptPKLen));
            }

            return vout;
        }
コード例 #2
0
 /// <summary>
 /// Initialize new CTxOut instance as a copy of another instance.
 /// </summary>
 /// <param name="o">CTxOut instance.</param>
 public CTxOut(CTxOut o)
 {
     nValue = o.nValue;
     scriptPubKey = o.scriptPubKey;
 }
コード例 #3
0
        /// <summary>
        /// Create serialized representation of outputs array.
        /// </summary>
        /// <param name="vout">Outputs array</param>
        /// <returns>Byte array</returns>
        public static byte[] SerializeOutputsArray(CTxOut[] vout)
        {
            var stream = new MemoryStream();
            var writer = new BinaryWriter(stream);

            writer.Write(VarInt.EncodeVarInt(vout.Length));

            foreach (var o in vout)
            {
                writer.Write(o);
            }

            var resultBytes = stream.ToArray();

            writer.Close();

            return resultBytes;
        }