Esempio n. 1
0
        public virtual void ParseOneLedger()
        {
            _parentLedger = _ledger;
            _ledger = LedgerHeader.FromReader(_reader);

            if (NextFrame() == FrameType.AccountStateTree)
            {
                ParseAccountState();
            }

            ParseTransactions();
            CheckTransactionHash();
            ParseAndApplyAccountStateDiff();
            CheckStateHash();
            CheckHashChain();
        }
Esempio n. 2
0
        public Uint8 CloseFlags { get; private set; } // Flags

        public static LedgerHeader FromReader(StReader reader)
        {
            var pos = reader.Parser().Pos();
            // ReSharper disable once UseObjectOrCollectionInitializer
            var header = new LedgerHeader();
            header.LedgerIndex = reader.ReadUint32();
            header.TotalDrops = reader.ReadUint64();
            header.ParentHash = reader.ReadHash256();
            header.TransactionHash = reader.ReadHash256();
            header.StateHash = reader.ReadHash256();
            header.ParentCloseTime = reader.ReadUint32();
            header.CloseTime = reader.ReadUint32();
            header.CloseResolution = reader.ReadUint8();
            header.CloseFlags = reader.ReadUint8();

            if (reader.Parser().Pos() != pos + 118)
            {
                throw new InvalidOperationException();
            }
            return header;
        }
Esempio n. 3
0
        }                                             // Flags

        public static LedgerHeader FromReader(StReader reader)
        {
            var pos = reader.Parser().Pos();
            // ReSharper disable once UseObjectOrCollectionInitializer
            var header = new LedgerHeader();

            header.LedgerIndex     = reader.ReadUint32();
            header.TotalDrops      = reader.ReadUint64();
            header.ParentHash      = reader.ReadHash256();
            header.TransactionHash = reader.ReadHash256();
            header.StateHash       = reader.ReadHash256();
            header.ParentCloseTime = reader.ReadUint32();
            header.CloseTime       = reader.ReadUint32();
            header.CloseResolution = reader.ReadUint8();
            header.CloseFlags      = reader.ReadUint8();

            if (reader.Parser().Pos() != pos + 118)
            {
                throw new InvalidOperationException();
            }
            return(header);
        }