Esempio n. 1
0
        public void Serialize(BinaryWriter writer)
        {
            if (_block.Transactions.Count() > Int16.MaxValue)
            {
                throw new InvalidDataException("Too many transactions");
            }

            writer.WriteFixedString(_block.Header.Hash, 64);
            writer.Write((Int16)_block.Header.Signature.Length);
            writer.Write(_block.Header.Signature);
            writer.WriteFixedString(_block.Header.PreviousHash, 64);
            writer.WriteFixedString(_block.Header.MagicNumber, 7);
            writer.Write(_block.Header.Version);
            writer.WriteFixedString(_block.Header.MerkleRoot, 64);
            writer.Write(_block.Header.Timestamp);
            writer.Write(_block.Header.Nonce);
            writer.Write((Int16)_block.Header.Signature.Length);
            writer.Write(_block.Header.Signature);

            var transactionsPayload = new StateTransactionsPayload(_block.Transactions);

            transactionsPayload.Serialize(writer);
        }