Пример #1
0
        public void ReadFromPayload(byte[] data, int offset)
        {
            Size      = 8;
            Version   = BitConverter.ToUInt32(data, offset);
            TxInCount = new VarInt(0);
            TxInCount.ReadFromPayload(data, offset + 4);

            TxIn = new TxIn[TxInCount];

            int txInOffset = offset + 4 + TxInCount.Size;

            for (var x = 0; x < TxInCount; x++)
            {
                var tx = new TxIn();
                tx.ReadFromPayload(data, txInOffset);

                TxIn[x] = tx;

                txInOffset += tx.Size;
                Size       += tx.Size;
            }

            TxOutCount = new VarInt(0);
            TxOutCount.ReadFromPayload(data, txInOffset);

            TxOut = new TxOut[TxOutCount];

            int txOutOffset = txInOffset + TxOutCount.Size;

            for (var x = 0; x < TxOutCount; x++)
            {
                var tx = new TxOut();
                tx.ReadFromPayload(data, txOutOffset);

                TxOut[x] = tx;

                txOutOffset += tx.Size;
                Size        += tx.Size;
            }

            LockTime = BitConverter.ToUInt32(data, txOutOffset);
            Size    += TxInCount.Size + TxOutCount.Size;
        }