TransactionRaw.fromJson constructor

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

Create a new TransactionRaw instance by parsing a JSON map.

Implementation

factory TransactionRaw.fromJson(Map<String, dynamic> json) {
  final contractList = OnChainUtils.parseList(
          value: json['contract'], name: 'contract', throwOnNull: true)!
      .map((e) => TransactionContract.fromJson(OnChainUtils.parseMap(
          value: e, name: 'contract', throwOnNull: true)!))
      .toList();
  if (contractList.length != 1) {
    throw const TronPluginException(
        'Transaction must contain exactly one contract.');
  }

  return TransactionRaw(
    contract: contractList,
    refBlockBytes: OnChainUtils.parseHex(
        value: json['ref_block_bytes'], name: 'ref_block_bytes'),
    refBlockHash: OnChainUtils.parseHex(
        value: json['ref_block_hash'], name: 'ref_block_hash'),
    expiration: OnChainUtils.parseBigInt(
        value: json['expiration'], name: 'expiration'),
    timestamp:
        OnChainUtils.parseBigInt(value: json['timestamp'], name: 'timestamp'),
    data: OnChainUtils.parseBytes(value: json['data'], name: 'data'),
    feeLimit:
        OnChainUtils.parseBigInt(value: json['fee_limit'], name: 'fee_limit'),
    refBlockNum: OnChainUtils.parseBigInt(
        value: json['ref_block_num'], name: 'ref_block_num'),
    scripts: OnChainUtils.parseHex(value: json['scripts'], name: 'scripts'),
    auths: OnChainUtils.parseList(value: json['auths'], name: 'auths')
        ?.map((e) => Authority.fromJson(OnChainUtils.parseMap(
            value: e, name: 'auths', throwOnNull: true)!))
        .toList(),
  );
}