public ConsumerSession Decode(Nethermind.Core.Encoding.Rlp.DecoderContext context, RlpBehaviors rlpBehaviors = RlpBehaviors.None) { var sequenceLength = context.ReadSequenceLength(); if (sequenceLength == 0) { return(null); } var id = context.DecodeKeccak(); var depositId = context.DecodeKeccak(); var dataHeaderId = context.DecodeKeccak(); var consumerAddress = context.DecodeAddress(); var consumerNodeId = new PublicKey(context.DecodeByteArray()); var providerAddress = context.DecodeAddress(); var providerNodeId = new PublicKey(context.DecodeByteArray()); var state = (SessionState)context.DecodeInt(); var startUnitsFromProvider = context.DecodeUInt(); var startUnitsFromConsumer = context.DecodeUInt(); var startTimestamp = context.DecodeUlong(); var finishTimestamp = context.DecodeUlong(); var consumedUnits = context.DecodeUInt(); var unpaidUnits = context.DecodeUInt(); var paidUnits = context.DecodeUInt(); var settledUnits = context.DecodeUInt(); var consumedUnitsFromProvider = context.DecodeUInt(); var dataAvailability = (DataAvailability)context.DecodeInt(); var streamEnabled = context.DecodeBool(); var subscriptions = context.DecodeArray(c => c.DecodeString()); return(new ConsumerSession(id, depositId, dataHeaderId, consumerAddress, consumerNodeId, providerAddress, providerNodeId, state, startUnitsFromProvider, startUnitsFromConsumer, startTimestamp, finishTimestamp, consumedUnits, unpaidUnits, paidUnits, settledUnits, consumedUnitsFromProvider, dataAvailability, streamEnabled, subscriptions)); }