Example #1
0
 public static void Encode(Span <byte> span, Deposit container)
 {
     if (span.Length != Ssz.DepositLength())
     {
         ThrowTargetLength <Deposit>(span.Length, Ssz.DepositLength());
     }
     Encode(span.Slice(0, Ssz.DepositLengthOfProof()), container.Proof);
     Encode(span.Slice(Ssz.DepositLengthOfProof()), container.Data.Item);
 }
Example #2
0
        public static Deposit DecodeDeposit(ReadOnlySpan <byte> span)
        {
            if (span.Length != Ssz.DepositLength())
            {
                ThrowSourceLength <Deposit>(span.Length, Ssz.DepositLength());
            }
            Bytes32[]   proof   = DecodeBytes32s(span.Slice(0, Ssz.DepositLengthOfProof()));
            DepositData data    = DecodeDepositData(span.Slice(Ssz.DepositLengthOfProof()));
            Deposit     deposit = new Deposit(proof, data.OrRoot);

            return(deposit);
        }
Example #3
0
 public static void Encode(Span <byte> span, Deposit?container)
 {
     if (span.Length != Ssz.DepositLength())
     {
         ThrowTargetLength <Deposit>(span.Length, Ssz.DepositLength());
     }
     if (container == null)
     {
         return;
     }
     Encode(span.Slice(0, Ssz.DepositLengthOfProof()), container.Proof);
     Encode(span.Slice(Ssz.DepositLengthOfProof()), container.Data);
 }
Example #4
0
        public static Deposit?DecodeDeposit(Span <byte> span)
        {
            if (span.Length != Ssz.DepositLength())
            {
                ThrowSourceLength <Deposit>(span.Length, Ssz.DepositLength());
            }
            if (span.SequenceEqual(NullDeposit()))
            {
                return(null);
            }
            Hash32[]    proof   = DecodeHashes(span.Slice(0, Ssz.DepositLengthOfProof()));
            DepositData data    = DecodeDepositData(span.Slice(Ssz.DepositLengthOfProof()));
            Deposit     deposit = new Deposit(proof, data);

            return(deposit);
        }