AbiEntry.fromJson constructor

AbiEntry.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory AbiEntry.fromJson(Map<String, dynamic> json) {
  final anonymous = json['anonymous'] ?? false;
  final name = json['name'] as String? ?? '';
  final inputs = (json['inputs'] as List<dynamic>? ?? [])
      .map((e) => AbiEntryParam.fromJson(e))
      .toList();
  final outputs = (json['outputs'] as List<dynamic>? ?? [])
      .map((e) => AbiEntryParam.fromJson(e))
      .toList();
  final typeString = (json['type'] ?? 'constructor') as String;
  final type = abiEntryTypeMapping[typeString] ?? AbiEntryType.constructor;
  final payable = json['payable'] as bool? ?? false;

  switch (type) {
    case AbiEntryType.constructor:
      return ConstructorEntry(inputs: inputs);
    case AbiEntryType.function:
      return FunctionEntry(
        name: name,
        inputs: inputs,
        outputs: outputs,
        payable: payable,
      );
    case AbiEntryType.offchain:
      return OffchainEntry(
        name: name,
        inputs: inputs,
        outputs: outputs,
        payable: payable,
      );
    case AbiEntryType.event:
      return EventEntry(
        anonymous: anonymous,
        name: name,
        inputs: inputs,
      );
  }
}