import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_core/unspent_transaction_output.dart'; class BitcoinUnspent extends Unspent { BitcoinUnspent(BaseBitcoinAddressRecord addressRecord, String hash, int value, int vout) : bitcoinAddressRecord = addressRecord, super(addressRecord.address, hash, value, vout, null); factory BitcoinUnspent.fromJSON(BaseBitcoinAddressRecord? address, Map json) => BitcoinUnspent( address ?? BitcoinAddressRecord.fromJSON(json['address_record'].toString()), json['tx_hash'] as String, json['value'] as int, json['tx_pos'] as int, ); Map toJson() { final json = { 'address_record': bitcoinAddressRecord.toJSON(), 'tx_hash': hash, 'value': value, 'tx_pos': vout, }; return json; } final BaseBitcoinAddressRecord bitcoinAddressRecord; } class BitcoinSilentPaymentsUnspent extends BitcoinUnspent { BitcoinSilentPaymentsUnspent( BitcoinSilentPaymentAddressRecord addressRecord, String hash, int value, int vout, { required this.silentPaymentTweak, required this.silentPaymentLabel, }) : super(addressRecord, hash, value, vout); @override factory BitcoinSilentPaymentsUnspent.fromJSON( BitcoinSilentPaymentAddressRecord? address, Map json) => BitcoinSilentPaymentsUnspent( address ?? BitcoinSilentPaymentAddressRecord.fromJSON(json['address_record'].toString()), json['tx_hash'] as String, json['value'] as int, json['tx_pos'] as int, silentPaymentTweak: json['silent_payment_tweak'] as String?, silentPaymentLabel: json['silent_payment_label'] as String?, ); @override Map toJson() { final json = { 'address_record': bitcoinAddressRecord.toJSON(), 'tx_hash': hash, 'value': value, 'tx_pos': vout, 'silent_payment_tweak': silentPaymentTweak, 'silent_payment_label': silentPaymentLabel, }; return json; } String? silentPaymentTweak; String? silentPaymentLabel; }