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; }
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); }
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; }
public static string ToEncodedHex(this IAbiTypeEncoder encoder) { return(GetHex(encoder)); }
public AbiTypeEncoderUnboxer(IAbiTypeEncoder encoder) { _encoder = encoder; }
public DynamicArrayEncoderNonGeneric(IAbiTypeEncoder itemEncoder) { _itemEncoder = itemEncoder; }