Example #1
0
        public static DecodeDelegate <TItem[]> GetArrayDecoder <TItem>(IAbiTypeEncoder <TItem> itemEncoder)
        {
            void Decode(AbiTypeInfo solidityType, ref AbiDecodeBuffer buff, out TItem[] val)
            {
                DecoderFactory.Decode(solidityType, ref buff, out val, itemEncoder);
            }

            return(Decode);
        }
 public FixedArrayEncoderNonGeneric(IAbiTypeEncoder itemEncoder)
 {
     _itemEncoder = itemEncoder;
 }
Example #3
0
        public static void Decode <TItem>(AbiTypeInfo solidityType, ref AbiDecodeBuffer buff, out IEnumerable <TItem> val, IAbiTypeEncoder <TItem> itemEncoder)
        {
            AbiTypeEncoder <IEnumerable <TItem> > encoder;

            switch (solidityType.Category)
            {
            case SolidityTypeCategory.DynamicArray:
                encoder = new DynamicArrayEncoder <TItem>(itemEncoder);
                break;

            case SolidityTypeCategory.FixedArray:
                encoder = new FixedArrayEncoder <TItem>(itemEncoder);
                break;

            default:
                throw new ArgumentException($"Encoder factory for array types was called with a type '{solidityType.Category}'");
            }

            encoder.SetTypeInfo(solidityType);
            encoder.Decode(ref buff, out val);
        }
Example #4
0
 public static void Decode <TItem>(AbiTypeInfo solidityType, ref AbiDecodeBuffer buff, out TItem[] val, IAbiTypeEncoder <TItem> itemEncoder)
 {
     Decode(solidityType, ref buff, out IEnumerable <TItem> items, itemEncoder);
     val = items is TItem[] arr ? arr : items.ToArray();
 }
 public DynamicArrayEncoder(IAbiTypeEncoder <TItem> itemEncoder)
 {
     _itemEncoder = itemEncoder;
 }
 public FixedArrayEncoder(IAbiTypeEncoder <TItem> itemEncoder)
 {
     _itemEncoder = itemEncoder;
 }
Example #7
0
 public static string ToEncodedHex(this IAbiTypeEncoder encoder)
 {
     return(GetHex(encoder));
 }
Example #8
0
 public AbiTypeEncoderUnboxer(IAbiTypeEncoder encoder)
 {
     _encoder = encoder;
 }
 public DynamicArrayEncoderNonGeneric(IAbiTypeEncoder itemEncoder)
 {
     _itemEncoder = itemEncoder;
 }