private TransactionOutput ReadTransactionOutput(LoggedBinaryReader binaryReader) { var amount = binaryReader.ReadBytes(OutputAmountLength); var scriptPubKey = _hexReader.ReadVarString(binaryReader); return(new TransactionOutput(amount, scriptPubKey)); }
private TransactionInput ReadTransactionInput(LoggedBinaryReader binaryReader) { var transactionHash = binaryReader.ReadBytes(InputTransactionHashLength); var outputIndex = binaryReader.ReadUInt32(); var scriptSig = _hexReader.ReadVarString(binaryReader); var sequence = binaryReader.ReadUInt32(); return(new TransactionInput(transactionHash, outputIndex, scriptSig, sequence)); }
public Block ReadBlock(LoggedBinaryReader binaryReader) { var blockHeader = binaryReader.ReadBytes(80); var nbTransactions = _hexReader.ReadVarInt(binaryReader, Endian.Little, out var sizeOfNbTransactions); // todo: use transactions pool here. var transactions = new Transaction[nbTransactions]; for (var i = 0; i < nbTransactions; i++) { binaryReader.Reset(); transactions[i] = ReadTransaction(binaryReader); } return(new Block(blockHeader, sizeOfNbTransactions, transactions)); }