public Hash Decode(byte[] bytes)
        {
            byte[] hash = Rlp.Decode(bytes);

            if (hash.Length == 0)
            {
                return(null);
            }

            return(new Hash(hash));
        }
        public Block Decode(byte[] bytes)
        {
            IList <byte[]> list = Rlp.DecodeList(bytes);

            ulong          number = (ulong)bigIntegerEncoder.Decode(list[0]);
            BlockHash      hash   = hashEncoder.DecodeBlockHash(list[1]);
            IList <byte[]> btxs   = Rlp.DecodeList(Rlp.Decode(list[2]));

            IList <Transaction> txs = new List <Transaction>();

            for (int k = 0; k < btxs.Count; k++)
            {
                txs.Add(TransactionEncoder.Instance.Decode(btxs[k]));
            }

            return(new Block(number, hash, txs));
        }
        public Address Decode(byte[] bytes)
        {
            byte[] addr = Rlp.Decode(bytes);

            return(new Address(addr));
        }
 public BigInteger Decode(byte[] bytes)
 {
     return(new BigInteger(Rlp.Decode(bytes)));
 }