Transaction.fromJson constructor

  1. @override
Transaction.fromJson(
  1. Map<String, dynamic> json
)

Implementation

@override
factory Transaction.fromJson(Map<String, dynamic> json) {
  if (json.containsKey('transaction')) {
    Map<String, dynamic> _txn = json['transaction'];
    var type = _txn.keys.first;
    switch (type) {
      case 'ValueTransfer':
        return Transaction(
            valueTransfer: VTTransaction.fromJson(_txn['ValueTransfer']));
      case 'Mint':
        return Transaction(mint: MintTransaction.fromJson(_txn['Mint']));
      case 'DataRequest':
        return Transaction(
            dataRequest: DRTransaction.fromJson(_txn['DataRequest']));
      case 'Commit':
        return Transaction(
            commit: CommitTransaction.fromJson(_txn['Commit']));
      case 'Reveal':
        return Transaction(
            reveal: RevealTransaction.fromJson(_txn['Reveal']));
      case 'Tally':
        return Transaction(tally: TallyTransaction.fromJson(_txn['Tally']));
      case 'Stake':
        return Transaction(stake: StakeTransaction.fromJson(_txn['Stake']));
      case 'Unstake':
        return Transaction(
            unstake: UnstakeTransaction.fromJson(_txn['Unstake']));
    }
  } else {
    throw ArgumentError('Invalid json');
  }
  return Transaction();
}