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(),
  );
}