toJson method
Implementation
@override
Map<String, dynamic> toJson() {
final transaction = btc.Transaction.fromHex(hex);
final outputs = transaction.outs;
final changeAmount = change?.amount;
final allPayments = outputs.map((output) => { 'address': _extractP2PKHAddress(output.script), 'amount': output.value }).toList();
final payments = changeAmount != null && allPayments.isNotEmpty && allPayments.last['amount'] == changeAmount ? allPayments.sublist(0, allPayments.length - 1) : allPayments;
final payAmount = payments.map((payment) => payment['amount']).toList().whereType<int>().fold<int>(0, (sum, amount) => sum + amount);
final amount = outputs.map((output) => output.value).toList().whereType<int>().fold<int>(0, (sum, amount) => sum + amount);
final fee = _getFee(amount);
return {
'inputs': inputs,
'change': change,
'amount': amount,
'payAmount': payAmount,
'payments': payments,
'dataType': dataType.name,
'fee': fee,
};
}