dev
dart 68 lines 2.15 KB
Raw
1 import 'package:cw_bitcoin/bitcoin_address_record.dart';
2 import 'package:cw_core/unspent_transaction_output.dart';
3
4 class BitcoinUnspent extends Unspent {
5 BitcoinUnspent(BaseBitcoinAddressRecord addressRecord, String hash, int value, int vout)
6 : bitcoinAddressRecord = addressRecord,
7 super(addressRecord.address, hash, value, vout, null);
8
9 factory BitcoinUnspent.fromJSON(BaseBitcoinAddressRecord? address, Map<String, dynamic> json) =>
10 BitcoinUnspent(
11 address ?? BitcoinAddressRecord.fromJSON(json['address_record'].toString()),
12 json['tx_hash'] as String,
13 json['value'] as int,
14 json['tx_pos'] as int,
15 );
16
17 Map<String, dynamic> toJson() {
18 final json = <String, dynamic>{
19 'address_record': bitcoinAddressRecord.toJSON(),
20 'tx_hash': hash,
21 'value': value,
22 'tx_pos': vout,
23 };
24 return json;
25 }
26
27 final BaseBitcoinAddressRecord bitcoinAddressRecord;
28 bool? isPegOut;
29 }
30
31 class BitcoinSilentPaymentsUnspent extends BitcoinUnspent {
32 BitcoinSilentPaymentsUnspent(
33 BitcoinSilentPaymentAddressRecord addressRecord,
34 String hash,
35 int value,
36 int vout, {
37 required this.silentPaymentTweak,
38 required this.silentPaymentLabel,
39 }) : super(addressRecord, hash, value, vout);
40
41 @override
42 factory BitcoinSilentPaymentsUnspent.fromJSON(
43 BitcoinSilentPaymentAddressRecord? address, Map<String, dynamic> json) =>
44 BitcoinSilentPaymentsUnspent(
45 address ?? BitcoinSilentPaymentAddressRecord.fromJSON(json['address_record'].toString()),
46 json['tx_hash'] as String,
47 json['value'] as int,
48 json['tx_pos'] as int,
49 silentPaymentTweak: json['silent_payment_tweak'] as String?,
50 silentPaymentLabel: json['silent_payment_label'] as String?,
51 );
52
53 @override
54 Map<String, dynamic> toJson() {
55 final json = <String, dynamic>{
56 'address_record': bitcoinAddressRecord.toJSON(),
57 'tx_hash': hash,
58 'value': value,
59 'tx_pos': vout,
60 'silent_payment_tweak': silentPaymentTweak,
61 'silent_payment_label': silentPaymentLabel,
62 };
63 return json;
64 }
65
66 String? silentPaymentTweak;
67 String? silentPaymentLabel;
68 }