public PaymentClaim Decode(RlpStream rlpStream, RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            _ = rlpStream.ReadSequenceLength();
            var id              = rlpStream.DecodeKeccak();
            var depositId       = rlpStream.DecodeKeccak();
            var assetId         = rlpStream.DecodeKeccak();
            var assetName       = rlpStream.DecodeString();
            var units           = rlpStream.DecodeUInt();
            var claimedUnits    = rlpStream.DecodeUInt();
            var unitsRange      = Nethermind.Serialization.Rlp.Rlp.Decode <UnitsRange>(rlpStream);
            var value           = rlpStream.DecodeUInt256();
            var claimedValue    = rlpStream.DecodeUInt256();
            var expiryTime      = rlpStream.DecodeUInt();
            var pepper          = rlpStream.DecodeByteArray();
            var provider        = rlpStream.DecodeAddress();
            var consumer        = rlpStream.DecodeAddress();
            var transactions    = Rlp.DecodeArray <TransactionInfo>(rlpStream);
            var transactionCost = rlpStream.DecodeUInt256();
            var timestamp       = rlpStream.DecodeUlong();
            var status          = (PaymentClaimStatus)rlpStream.DecodeInt();
            var signature       = SignatureDecoder.DecodeSignature(rlpStream);
            var paymentClaim    = new PaymentClaim(id, depositId, assetId, assetName, units, claimedUnits, unitsRange,
                                                   value, claimedValue, expiryTime, pepper, provider, consumer, signature, timestamp, transactions,
                                                   status);

            if (status == PaymentClaimStatus.Claimed)
            {
                paymentClaim.SetTransactionCost(transactionCost);
            }

            return(paymentClaim);
        }
        public DataDeliveryReceiptToMerge Decode(RlpStream rlpStream,
                                                 RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            rlpStream.ReadSequenceLength();
            UnitsRange unitsRange = Serialization.Rlp.Rlp.Decode <UnitsRange>(rlpStream);
            Signature  signature  = SignatureDecoder.DecodeSignature(rlpStream);

            return(new DataDeliveryReceiptToMerge(unitsRange, signature));
        }
Beispiel #3
0
        private static HiMessage Deserialize(RlpStream rlpStream)
        {
            rlpStream.ReadSequenceLength();
            var protocolVersion = rlpStream.DecodeByte();
            var providerAddress = rlpStream.DecodeAddress();
            var consumerAddress = rlpStream.DecodeAddress();
            var nodeId          = new PublicKey(rlpStream.DecodeByteArray());
            var signature       = SignatureDecoder.DecodeSignature(rlpStream);

            return(new HiMessage(protocolVersion, providerAddress, consumerAddress,
                                 nodeId, signature));
        }
        private static HiMessage Deserialize(Rlp.DecoderContext context)
        {
            context.ReadSequenceLength();
            var protocolVersion = context.DecodeByte();
            var providerAddress = context.DecodeAddress();
            var consumerAddress = context.DecodeAddress();
            var nodeId          = new PublicKey(context.DecodeByteArray());
            var signature       = SignatureDecoder.DecodeSignature(context);

            return(new HiMessage(protocolVersion, providerAddress, consumerAddress,
                                 nodeId, signature));
        }
Beispiel #5
0
        public DataRequest Decode(RlpStream rlpStream,
                                  RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            rlpStream.ReadSequenceLength();
            Keccak    assetId    = rlpStream.DecodeKeccak();
            uint      units      = rlpStream.DecodeUInt();
            UInt256   value      = rlpStream.DecodeUInt256();
            uint      expiryTime = rlpStream.DecodeUInt();
            var       salt       = rlpStream.DecodeByteArray();
            Address   provider   = rlpStream.DecodeAddress();
            Address   consumer   = rlpStream.DecodeAddress();
            Signature signature  = SignatureDecoder.DecodeSignature(rlpStream);

            return(new DataRequest(assetId, units, value, expiryTime, salt, provider, consumer, signature));
        }
        public DataDeliveryReceiptToMerge Decode(RlpStream rlpStream,
                                                 RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = rlpStream.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var unitsRange = Nethermind.Core.Encoding.Rlp.Decode <UnitsRange>(rlpStream);
            var signature  = SignatureDecoder.DecodeSignature(rlpStream);

            return(new DataDeliveryReceiptToMerge(unitsRange, signature));
        }
        public EarlyRefundTicket Decode(RlpStream rlpStream,
                                        RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = rlpStream.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var depositId      = rlpStream.DecodeKeccak();
            var claimableAfter = rlpStream.DecodeUInt();
            var signature      = SignatureDecoder.DecodeSignature(rlpStream);

            return(new EarlyRefundTicket(depositId, claimableAfter, signature));
        }
Beispiel #8
0
        public EarlyRefundTicket Decode(Nethermind.Core.Encoding.Rlp.DecoderContext context,
                                        RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = context.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var depositId      = context.DecodeKeccak();
            var claimableAfter = context.DecodeUInt();
            var signature      = SignatureDecoder.DecodeSignature(context);

            return(new EarlyRefundTicket(depositId, claimableAfter, signature));
        }
Beispiel #9
0
        public DataDeliveryReceipt Decode(RlpStream rlpStream, RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            try
            {
                rlpStream.ReadSequenceLength();
                StatusCodes statusCode    = (StatusCodes)rlpStream.DecodeInt();
                uint        consumedUnits = rlpStream.DecodeUInt();
                uint        unpaidUnits   = rlpStream.DecodeUInt();
                Signature   signature     = SignatureDecoder.DecodeSignature(rlpStream);

                return(new DataDeliveryReceipt(statusCode, consumedUnits, unpaidUnits, signature));
            }
            catch (Exception e)
            {
                throw new RlpException($"{nameof(DataDeliveryReceiptDecoder)} could not be decoded", e);
            }
        }
Beispiel #10
0
        public DataDeliveryReceipt Decode(RlpStream rlpStream,
                                          RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = rlpStream.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var statusCode    = (StatusCodes)rlpStream.DecodeInt();
            var consumedUnits = rlpStream.DecodeUInt();
            var unpaidUnits   = rlpStream.DecodeUInt();
            var signature     = SignatureDecoder.DecodeSignature(rlpStream);

            return(new DataDeliveryReceipt(statusCode, consumedUnits, unpaidUnits, signature));
        }
Beispiel #11
0
        public DataDeliveryReceipt Decode(Nethermind.Core.Encoding.Rlp.DecoderContext context,
                                          RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = context.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var statusCode    = (StatusCodes)context.DecodeInt();
            var consumedUnits = context.DecodeUInt();
            var unpaidUnits   = context.DecodeUInt();
            var signature     = SignatureDecoder.DecodeSignature(context);

            return(new DataDeliveryReceipt(statusCode, consumedUnits, unpaidUnits, signature));
        }
        public DataRequest Decode(Nethermind.Core.Encoding.Rlp.DecoderContext context,
                                  RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = context.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var headerId   = context.DecodeKeccak();
            var units      = context.DecodeUInt();
            var value      = context.DecodeUInt256();
            var expiryTime = context.DecodeUInt();
            var salt       = context.DecodeByteArray();
            var provider   = context.DecodeAddress();
            var consumer   = context.DecodeAddress();
            var signature  = SignatureDecoder.DecodeSignature(context);

            return(new DataRequest(headerId, units, value, expiryTime, salt, provider, consumer, signature));
        }
Beispiel #13
0
        public DataRequest Decode(RlpStream rlpStream,
                                  RlpBehaviors rlpBehaviors = RlpBehaviors.None)
        {
            var sequenceLength = rlpStream.ReadSequenceLength();

            if (sequenceLength == 0)
            {
                return(null);
            }

            var assetId    = rlpStream.DecodeKeccak();
            var units      = rlpStream.DecodeUInt();
            var value      = rlpStream.DecodeUInt256();
            var expiryTime = rlpStream.DecodeUInt();
            var salt       = rlpStream.DecodeByteArray();
            var provider   = rlpStream.DecodeAddress();
            var consumer   = rlpStream.DecodeAddress();
            var signature  = SignatureDecoder.DecodeSignature(rlpStream);

            return(new DataRequest(assetId, units, value, expiryTime, salt, provider, consumer, signature));
        }