@atomicfinance/client 2.5.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -0
- package/.turbo/turbo-test.log +1 -0
- package/CHANGELOG.md +31 -0
- package/dist/Cfd.d.ts +2 -2
- package/dist/Cfd.js +8 -11
- package/dist/Cfd.js.map +1 -1
- package/dist/Chain.d.ts +29 -0
- package/dist/Chain.js +110 -0
- package/dist/Chain.js.map +1 -0
- package/dist/Client.d.ts +44 -7
- package/dist/Client.js +120 -32
- package/dist/Client.js.map +1 -1
- package/dist/Dlc.d.ts +5 -2
- package/dist/Dlc.js +113 -95
- package/dist/Dlc.js.map +1 -1
- package/dist/Wallet.d.ts +59 -4
- package/dist/Wallet.js +100 -17
- package/dist/Wallet.js.map +1 -1
- package/dist/index.d.ts +0 -0
- package/dist/index.js +11 -23
- package/dist/index.js.map +0 -0
- package/dist/schema/Block.json +45 -0
- package/dist/schema/Transaction.json +45 -0
- package/dist/schema/index.d.ts +3 -0
- package/dist/schema/index.js +11 -0
- package/dist/schema/index.js.map +1 -0
- package/lib/Cfd.ts +2 -1
- package/lib/Chain.ts +173 -0
- package/lib/Client.ts +153 -11
- package/lib/Dlc.ts +24 -1
- package/lib/Wallet.ts +129 -10
- package/lib/schema/Block.json +45 -0
- package/lib/schema/Transaction.json +45 -0
- package/lib/schema/index.ts +4 -0
- package/package.json +9 -11
- package/LICENSE +0 -674
- package/README.md +0 -11
package/dist/Dlc.js
CHANGED
|
@@ -1,129 +1,142 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Dlc {
|
|
4
|
+
constructor(client) {
|
|
5
|
+
this.client = client;
|
|
6
|
+
}
|
|
6
7
|
/**
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
* Check whether wallet is offerer of DlcOffer or DlcAccept
|
|
9
|
+
* @param dlcOffer Dlc Offer Message
|
|
10
|
+
* @param dlcAccept Dlc Accept Message
|
|
11
|
+
* @returns {Promise<boolean>}
|
|
12
|
+
*/
|
|
13
|
+
async isOfferer(dlcOffer, dlcAccept) {
|
|
12
14
|
return this.client.getMethod('isOfferer')(dlcOffer, dlcAccept);
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
* Create DlcTxs object from DlcOffer and DlcAccept
|
|
18
|
+
* @param dlcOffer Dlc Offer Message
|
|
19
|
+
* @param dlcAccept Dlc Accept Message
|
|
20
|
+
* @returns {Promise<CreateDlcTxsResponse>}
|
|
21
|
+
*/
|
|
22
|
+
async createDlcTxs(dlcOffer, dlcAccept) {
|
|
20
23
|
return this.client.getMethod('createDlcTxs')(dlcOffer, dlcAccept);
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
* Create DLC Offer Message
|
|
27
|
+
* @param contractInfo ContractInfo TLV (V0 or V1)
|
|
28
|
+
* @param offerCollateralSatoshis Amount DLC Initiator is putting into the contract
|
|
29
|
+
* @param feeRatePerVb Fee rate in satoshi per virtual byte that both sides use to compute fees in funding tx
|
|
30
|
+
* @param cetLocktime The nLockTime to be put on CETs
|
|
31
|
+
* @param refundLocktime The nLockTime to be put on the refund transaction
|
|
32
|
+
* @returns {Promise<DlcOffer>}
|
|
33
|
+
*/
|
|
34
|
+
async createDlcOffer(contractInfo, offerCollateralSatoshis, feeRatePerVb, cetLocktime, refundLocktime, fixedInputs) {
|
|
31
35
|
return this.client.getMethod('createDlcOffer')(contractInfo, offerCollateralSatoshis, feeRatePerVb, cetLocktime, refundLocktime, fixedInputs);
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
* Accept DLC Offer
|
|
39
|
+
* @param dlcOffer Dlc Offer Message
|
|
40
|
+
* @param fixedInputs Optional inputs to use for Funding Inputs
|
|
41
|
+
* @returns {Promise<AcceptDlcOfferResponse}
|
|
42
|
+
*/
|
|
43
|
+
async acceptDlcOffer(dlcOffer, fixedInputs) {
|
|
39
44
|
return this.client.getMethod('acceptDlcOffer')(dlcOffer, fixedInputs);
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
* Sign Dlc Accept Message
|
|
48
|
+
* @param dlcOffer Dlc Offer Message
|
|
49
|
+
* @param dlcAccept Dlc Accept Message
|
|
50
|
+
* @returns {Promise<SignDlcAcceptResponse}
|
|
51
|
+
*/
|
|
52
|
+
async signDlcAccept(dlcOffer, dlcAccept) {
|
|
47
53
|
return this.client.getMethod('signDlcAccept')(dlcOffer, dlcAccept);
|
|
48
54
|
}
|
|
49
55
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
* Finalize Dlc Sign
|
|
57
|
+
* @param dlcOffer Dlc Offer Message
|
|
58
|
+
* @param dlcAccept Dlc Accept Message
|
|
59
|
+
* @param dlcSign Dlc Sign Message
|
|
60
|
+
* @param dlcTxs Dlc Transactions Message
|
|
61
|
+
* @returns {Promise<Tx>}
|
|
62
|
+
*/
|
|
63
|
+
async finalizeDlcSign(dlcOffer, dlcAccept, dlcSign, dlcTxs) {
|
|
57
64
|
return this.client.getMethod('finalizeDlcSign')(dlcOffer, dlcAccept, dlcSign, dlcTxs);
|
|
58
65
|
}
|
|
59
66
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
* Execute DLC
|
|
68
|
+
* @param dlcOffer Dlc Offer Message
|
|
69
|
+
* @param dlcAccept Dlc Accept Message
|
|
70
|
+
* @param dlcSign Dlc Sign Message
|
|
71
|
+
* @param dlcTxs Dlc Transactions Message
|
|
72
|
+
* @param oracleAttestation Oracle Attestations TLV (V0)
|
|
73
|
+
* @param isOfferer Whether party is Dlc Offerer
|
|
74
|
+
* @returns {Promise<Tx>}
|
|
75
|
+
*/
|
|
76
|
+
async execute(dlcOffer, dlcAccept, dlcSign, dlcTxs, oracleAttestation, isOfferer) {
|
|
69
77
|
return this.client.getMethod('execute')(dlcOffer, dlcAccept, dlcSign, dlcTxs, oracleAttestation, isOfferer);
|
|
70
78
|
}
|
|
71
79
|
/**
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
* Refund DLC
|
|
81
|
+
* @param dlcOffer Dlc Offer Message
|
|
82
|
+
* @param dlcAccept Dlc Accept Message
|
|
83
|
+
* @param dlcSign Dlc Sign Message
|
|
84
|
+
* @param dlcTxs Dlc Transactions message
|
|
85
|
+
* @returns {Promise<Tx>}
|
|
86
|
+
*/
|
|
87
|
+
async refund(dlcOffer, dlcAccept, dlcSign, dlcTxs) {
|
|
79
88
|
return this.client.getMethod('refund')(dlcOffer, dlcAccept, dlcSign, dlcTxs);
|
|
80
89
|
}
|
|
81
90
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
* Generate DlcClose messagetype for closing DLC with Mutual Consent
|
|
92
|
+
* @param dlcOffer DlcOffer TLV (V0)
|
|
93
|
+
* @param dlcAccept DlcAccept TLV (V0)
|
|
94
|
+
* @param dlcTxs DlcTransactions TLV (V0)
|
|
95
|
+
* @param initiatorPayoutSatoshis Amount initiator expects as a payout
|
|
96
|
+
* @param isOfferer Whether offerer or not
|
|
97
|
+
* @param inputs Optionally specified closing inputs
|
|
98
|
+
* @returns {Promise<DlcClose>}
|
|
99
|
+
*/
|
|
100
|
+
async createDlcClose(dlcOffer, dlcAccept, dlcTxs, initiatorPayoutSatoshis, isOfferer, inputs) {
|
|
91
101
|
return this.client.getMethod('createDlcClose')(dlcOffer, dlcAccept, dlcTxs, initiatorPayoutSatoshis, isOfferer, inputs);
|
|
92
102
|
}
|
|
93
103
|
/**
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
* Generate multiple DlcClose messagetypes for closing DLC with Mutual Consent
|
|
105
|
+
* @param dlcOffer DlcOffer TLV (V0)
|
|
106
|
+
* @param dlcAccept DlcAccept TLV (V0)
|
|
107
|
+
* @param dlcTxs DlcTransactions TLV (V0)
|
|
108
|
+
* @param initiatorPayouts Array of amounts initiator expects as payouts
|
|
109
|
+
* @param isOfferer Whether offerer or not
|
|
110
|
+
* @param inputs Optionally specified closing inputs
|
|
111
|
+
* @returns {Promise<DlcClose[]>}
|
|
112
|
+
*/
|
|
113
|
+
async createBatchDlcClose(dlcOffer, dlcAccept, dlcTxs, initiatorPayouts, isOfferer, inputs) {
|
|
103
114
|
return this.client.getMethod('createBatchDlcClose')(dlcOffer, dlcAccept, dlcTxs, initiatorPayouts, isOfferer, inputs);
|
|
104
115
|
}
|
|
105
116
|
async verifyBatchDlcCloseUsingMetadata(dlcCloseMetadata, _dlcCloses, isOfferer) {
|
|
106
117
|
return this.client.getMethod('verifyBatchDlcCloseUsingMetadata')(dlcCloseMetadata, _dlcCloses, isOfferer);
|
|
107
118
|
}
|
|
108
119
|
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
120
|
+
* Verify multiple DlcClose messagetypes for closing DLC with Mutual Consent
|
|
121
|
+
* @param dlcOffer DlcOffer TLV (V0)
|
|
122
|
+
* @param dlcAccept DlcAccept TLV (V0)
|
|
123
|
+
* @param dlcTxs DlcTransactions TLV (V0)
|
|
124
|
+
* @param dlcCloses DlcClose[] TLV (V0)
|
|
125
|
+
* @param isOfferer Whether offerer or not
|
|
126
|
+
* @returns {Promise<void>}
|
|
127
|
+
*/
|
|
128
|
+
async verifyBatchDlcClose(dlcOffer, dlcAccept, dlcTxs, dlcCloses, isOfferer) {
|
|
117
129
|
return this.client.getMethod('verifyBatchDlcClose')(dlcOffer, dlcAccept, dlcTxs, dlcCloses, isOfferer);
|
|
118
130
|
}
|
|
119
131
|
/**
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
132
|
+
* Finalize Dlc Close
|
|
133
|
+
* @param dlcOffer Dlc Offer Message
|
|
134
|
+
* @param dlcAccept Dlc Accept Message
|
|
135
|
+
* @param dlcClose Dlc Close Message
|
|
136
|
+
* @param dlcTxs Dlc Transactions Message
|
|
137
|
+
* @returns {Promise<string>}
|
|
138
|
+
*/
|
|
139
|
+
finalizeDlcClose(dlcOffer, dlcAccept, dlcClose, dlcTxs) {
|
|
127
140
|
return this.client.getMethod('finalizeDlcClose')(dlcOffer, dlcAccept, dlcClose, dlcTxs);
|
|
128
141
|
}
|
|
129
142
|
async AddSignatureToFundTransaction(jsonObject) {
|
|
@@ -165,6 +178,15 @@ let Dlc = class Dlc {
|
|
|
165
178
|
async VerifyCetAdaptorSignature(jsonObject) {
|
|
166
179
|
return this.client.getMethod('VerifyCetAdaptorSignature')(jsonObject);
|
|
167
180
|
}
|
|
181
|
+
async VerifyCetAdaptorSignatures(jsonObject) {
|
|
182
|
+
return this.client.getMethod('VerifyCetAdaptorSignatures')(jsonObject);
|
|
183
|
+
}
|
|
184
|
+
async GetInputsForAmount(amount, feeRatePerVb, fixedInputs) {
|
|
185
|
+
return this.client.getMethod('GetInputsForAmount')(amount, feeRatePerVb, fixedInputs);
|
|
186
|
+
}
|
|
187
|
+
async SignCet(jsonObject) {
|
|
188
|
+
return this.client.getMethod('SignCet')(jsonObject);
|
|
189
|
+
}
|
|
168
190
|
async VerifyCetAdaptorSignaturesRequest(jsonObject) {
|
|
169
191
|
return this.client.getMethod('VerifyCetAdaptorSignatures')(jsonObject);
|
|
170
192
|
}
|
|
@@ -180,10 +202,6 @@ let Dlc = class Dlc {
|
|
|
180
202
|
async inputToFundingInput(input) {
|
|
181
203
|
return this.client.getMethod('inputToFundingInput')(input);
|
|
182
204
|
}
|
|
183
|
-
|
|
184
|
-
this.client = client;
|
|
185
|
-
}
|
|
186
|
-
};
|
|
205
|
+
}
|
|
187
206
|
exports.default = Dlc;
|
|
188
|
-
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9EbGMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWRkU2lnbmF0dXJlc1RvUmVmdW5kVHhSZXF1ZXN0LFxuICBBZGRTaWduYXR1cmVzVG9SZWZ1bmRUeFJlc3BvbnNlLFxuICBBZGRTaWduYXR1cmVUb0Z1bmRUcmFuc2FjdGlvblJlcXVlc3QsXG4gIEFkZFNpZ25hdHVyZVRvRnVuZFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIENyZWF0ZUNldEFkYXB0b3JTaWduYXR1cmVSZXF1ZXN0LFxuICBDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlUmVzcG9uc2UsXG4gIENyZWF0ZUNldEFkYXB0b3JTaWduYXR1cmVzUmVxdWVzdCxcbiAgQ3JlYXRlQ2V0QWRhcHRvclNpZ25hdHVyZXNSZXNwb25zZSxcbiAgQ3JlYXRlQ2V0UmVxdWVzdCxcbiAgQ3JlYXRlQ2V0UmVzcG9uc2UsXG4gIENyZWF0ZURsY1RyYW5zYWN0aW9uc1JlcXVlc3QsXG4gIENyZWF0ZURsY1RyYW5zYWN0aW9uc1Jlc3BvbnNlLFxuICBDcmVhdGVEbGNUeHNSZXNwb25zZSxcbiAgQ3JlYXRlRnVuZFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgQ3JlYXRlRnVuZFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIENyZWF0ZVJlZnVuZFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgQ3JlYXRlUmVmdW5kVHJhbnNhY3Rpb25SZXNwb25zZSxcbiAgR2V0UmF3RnVuZFR4U2lnbmF0dXJlUmVxdWVzdCxcbiAgR2V0UmF3RnVuZFR4U2lnbmF0dXJlUmVzcG9uc2UsXG4gIEdldFJhd1JlZnVuZFR4U2lnbmF0dXJlUmVxdWVzdCxcbiAgR2V0UmF3UmVmdW5kVHhTaWduYXR1cmVSZXNwb25zZSxcbiAgSW5wdXQsXG4gIFNpZ25DZXRSZXF1ZXN0LFxuICBTaWduQ2V0UmVzcG9uc2UsXG4gIFNpZ25GdW5kVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICBTaWduRnVuZFRyYW5zYWN0aW9uUmVzcG9uc2UsXG4gIFZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmVSZXF1ZXN0LFxuICBWZXJpZnlDZXRBZGFwdG9yU2lnbmF0dXJlUmVzcG9uc2UsXG4gIFZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmVzUmVxdWVzdCxcbiAgVmVyaWZ5Q2V0QWRhcHRvclNpZ25hdHVyZXNSZXNwb25zZSxcbiAgVmVyaWZ5RnVuZFR4U2lnbmF0dXJlUmVxdWVzdCxcbiAgVmVyaWZ5RnVuZFR4U2lnbmF0dXJlUmVzcG9uc2UsXG4gIFZlcmlmeVJlZnVuZFR4U2lnbmF0dXJlUmVxdWVzdCxcbiAgVmVyaWZ5UmVmdW5kVHhTaWduYXR1cmVSZXNwb25zZSxcbn0gZnJvbSAnQGF0b21pY2ZpbmFuY2UvdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ29udHJhY3RJbmZvLFxuICBEbGNBY2NlcHQsXG4gIERsY0Nsb3NlLFxuICBEbGNDbG9zZU1ldGFkYXRhLFxuICBEbGNPZmZlcixcbiAgRGxjU2lnbixcbiAgRGxjVHJhbnNhY3Rpb25zLFxuICBGdW5kaW5nSW5wdXQsXG4gIE9yYWNsZUF0dGVzdGF0aW9uVjAsXG59IGZyb20gJ0Bub2RlLWRsYy9tZXNzYWdpbmcnO1xuaW1wb3J0IHsgVHggfSBmcm9tICdAbm9kZS1saWdodG5pbmcvYml0Y29pbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERsYyB7XG4gIGNsaWVudDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogYW55KSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB3YWxsZXQgaXMgb2ZmZXJlciBvZiBEbGNPZmZlciBvciBEbGNBY2NlcHRcbiAgICogQHBhcmFtIGRsY09mZmVyIERsYyBPZmZlciBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNBY2NlcHQgRGxjIEFjY2VwdCBNZXNzYWdlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fVxuICAgKi9cbiAgYXN5bmMgaXNPZmZlcmVyKGRsY09mZmVyOiBEbGNPZmZlciwgZGxjQWNjZXB0OiBEbGNBY2NlcHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdpc09mZmVyZXInKShkbGNPZmZlciwgZGxjQWNjZXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgRGxjVHhzIG9iamVjdCBmcm9tIERsY09mZmVyIGFuZCBEbGNBY2NlcHRcbiAgICogQHBhcmFtIGRsY09mZmVyIERsYyBPZmZlciBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNBY2NlcHQgRGxjIEFjY2VwdCBNZXNzYWdlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPENyZWF0ZURsY1R4c1Jlc3BvbnNlPn1cbiAgICovXG4gIGFzeW5jIGNyZWF0ZURsY1R4cyhcbiAgICBkbGNPZmZlcjogRGxjT2ZmZXIsXG4gICAgZGxjQWNjZXB0OiBEbGNBY2NlcHQsXG4gICk6IFByb21pc2U8Q3JlYXRlRGxjVHhzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdjcmVhdGVEbGNUeHMnKShkbGNPZmZlciwgZGxjQWNjZXB0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgRExDIE9mZmVyIE1lc3NhZ2VcbiAgICogQHBhcmFtIGNvbnRyYWN0SW5mbyBDb250cmFjdEluZm8gVExWIChWMCBvciBWMSlcbiAgICogQHBhcmFtIG9mZmVyQ29sbGF0ZXJhbFNhdG9zaGlzIEFtb3VudCBETEMgSW5pdGlhdG9yIGlzIHB1dHRpbmcgaW50byB0aGUgY29udHJhY3RcbiAgICogQHBhcmFtIGZlZVJhdGVQZXJWYiBGZWUgcmF0ZSBpbiBzYXRvc2hpIHBlciB2aXJ0dWFsIGJ5dGUgdGhhdCBib3RoIHNpZGVzIHVzZSB0byBjb21wdXRlIGZlZXMgaW4gZnVuZGluZyB0eFxuICAgKiBAcGFyYW0gY2V0TG9ja3RpbWUgVGhlIG5Mb2NrVGltZSB0byBiZSBwdXQgb24gQ0VUc1xuICAgKiBAcGFyYW0gcmVmdW5kTG9ja3RpbWUgVGhlIG5Mb2NrVGltZSB0byBiZSBwdXQgb24gdGhlIHJlZnVuZCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEbGNPZmZlcj59XG4gICAqL1xuICBhc3luYyBjcmVhdGVEbGNPZmZlcihcbiAgICBjb250cmFjdEluZm86IENvbnRyYWN0SW5mbyxcbiAgICBvZmZlckNvbGxhdGVyYWxTYXRvc2hpczogYmlnaW50LFxuICAgIGZlZVJhdGVQZXJWYjogYmlnaW50LFxuICAgIGNldExvY2t0aW1lOiBudW1iZXIsXG4gICAgcmVmdW5kTG9ja3RpbWU6IG51bWJlcixcbiAgICBmaXhlZElucHV0cz86IElJbnB1dFtdLFxuICApOiBQcm9taXNlPERsY09mZmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnY3JlYXRlRGxjT2ZmZXInKShcbiAgICAgIGNvbnRyYWN0SW5mbyxcbiAgICAgIG9mZmVyQ29sbGF0ZXJhbFNhdG9zaGlzLFxuICAgICAgZmVlUmF0ZVBlclZiLFxuICAgICAgY2V0TG9ja3RpbWUsXG4gICAgICByZWZ1bmRMb2NrdGltZSxcbiAgICAgIGZpeGVkSW5wdXRzLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXB0IERMQyBPZmZlclxuICAgKiBAcGFyYW0gZGxjT2ZmZXIgRGxjIE9mZmVyIE1lc3NhZ2VcbiAgICogQHBhcmFtIGZpeGVkSW5wdXRzIE9wdGlvbmFsIGlucHV0cyB0byB1c2UgZm9yIEZ1bmRpbmcgSW5wdXRzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFjY2VwdERsY09mZmVyUmVzcG9uc2V9XG4gICAqL1xuICBhc3luYyBhY2NlcHREbGNPZmZlcihcbiAgICBkbGNPZmZlcjogRGxjT2ZmZXIsXG4gICAgZml4ZWRJbnB1dHM/OiBJSW5wdXRbXSxcbiAgKTogUHJvbWlzZTxBY2NlcHREbGNPZmZlclJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnYWNjZXB0RGxjT2ZmZXInKShkbGNPZmZlciwgZml4ZWRJbnB1dHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gRGxjIEFjY2VwdCBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNPZmZlciBEbGMgT2ZmZXIgTWVzc2FnZVxuICAgKiBAcGFyYW0gZGxjQWNjZXB0IERsYyBBY2NlcHQgTWVzc2FnZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxTaWduRGxjQWNjZXB0UmVzcG9uc2V9XG4gICAqL1xuICBhc3luYyBzaWduRGxjQWNjZXB0KFxuICAgIGRsY09mZmVyOiBEbGNPZmZlcixcbiAgICBkbGNBY2NlcHQ6IERsY0FjY2VwdCxcbiAgKTogUHJvbWlzZTxTaWduRGxjQWNjZXB0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdzaWduRGxjQWNjZXB0JykoZGxjT2ZmZXIsIGRsY0FjY2VwdCk7XG4gIH1cblxuICAvKipcbiAgICogRmluYWxpemUgRGxjIFNpZ25cbiAgICogQHBhcmFtIGRsY09mZmVyIERsYyBPZmZlciBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNBY2NlcHQgRGxjIEFjY2VwdCBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNTaWduIERsYyBTaWduIE1lc3NhZ2VcbiAgICogQHBhcmFtIGRsY1R4cyBEbGMgVHJhbnNhY3Rpb25zIE1lc3NhZ2VcbiAgICogQHJldHVybnMge1Byb21pc2U8VHg+fVxuICAgKi9cbiAgYXN5bmMgZmluYWxpemVEbGNTaWduKFxuICAgIGRsY09mZmVyOiBEbGNPZmZlcixcbiAgICBkbGNBY2NlcHQ6IERsY0FjY2VwdCxcbiAgICBkbGNTaWduOiBEbGNTaWduLFxuICAgIGRsY1R4czogRGxjVHJhbnNhY3Rpb25zLFxuICApOiBQcm9taXNlPFR4PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnZmluYWxpemVEbGNTaWduJykoXG4gICAgICBkbGNPZmZlcixcbiAgICAgIGRsY0FjY2VwdCxcbiAgICAgIGRsY1NpZ24sXG4gICAgICBkbGNUeHMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIERMQ1xuICAgKiBAcGFyYW0gZGxjT2ZmZXIgRGxjIE9mZmVyIE1lc3NhZ2VcbiAgICogQHBhcmFtIGRsY0FjY2VwdCBEbGMgQWNjZXB0IE1lc3NhZ2VcbiAgICogQHBhcmFtIGRsY1NpZ24gRGxjIFNpZ24gTWVzc2FnZVxuICAgKiBAcGFyYW0gZGxjVHhzIERsYyBUcmFuc2FjdGlvbnMgTWVzc2FnZVxuICAgKiBAcGFyYW0gb3JhY2xlQXR0ZXN0YXRpb24gT3JhY2xlIEF0dGVzdGF0aW9ucyBUTFYgKFYwKVxuICAgKiBAcGFyYW0gaXNPZmZlcmVyIFdoZXRoZXIgcGFydHkgaXMgRGxjIE9mZmVyZXJcbiAgICogQHJldHVybnMge1Byb21pc2U8VHg+fVxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBkbGNPZmZlcjogRGxjT2ZmZXIsXG4gICAgZGxjQWNjZXB0OiBEbGNBY2NlcHQsXG4gICAgZGxjU2lnbjogRGxjU2lnbixcbiAgICBkbGNUeHM6IERsY1RyYW5zYWN0aW9ucyxcbiAgICBvcmFjbGVBdHRlc3RhdGlvbjogT3JhY2xlQXR0ZXN0YXRpb25WMCxcbiAgICBpc09mZmVyZXI/OiBib29sZWFuLFxuICApOiBQcm9taXNlPFR4PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnZXhlY3V0ZScpKFxuICAgICAgZGxjT2ZmZXIsXG4gICAgICBkbGNBY2NlcHQsXG4gICAgICBkbGNTaWduLFxuICAgICAgZGxjVHhzLFxuICAgICAgb3JhY2xlQXR0ZXN0YXRpb24sXG4gICAgICBpc09mZmVyZXIsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZ1bmQgRExDXG4gICAqIEBwYXJhbSBkbGNPZmZlciBEbGMgT2ZmZXIgTWVzc2FnZVxuICAgKiBAcGFyYW0gZGxjQWNjZXB0IERsYyBBY2NlcHQgTWVzc2FnZVxuICAgKiBAcGFyYW0gZGxjU2lnbiBEbGMgU2lnbiBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNUeHMgRGxjIFRyYW5zYWN0aW9ucyBtZXNzYWdlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4Pn1cbiAgICovXG4gIGFzeW5jIHJlZnVuZChcbiAgICBkbGNPZmZlcjogRGxjT2ZmZXIsXG4gICAgZGxjQWNjZXB0OiBEbGNBY2NlcHQsXG4gICAgZGxjU2lnbjogRGxjU2lnbixcbiAgICBkbGNUeHM6IERsY1RyYW5zYWN0aW9ucyxcbiAgKTogUHJvbWlzZTxUeD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ3JlZnVuZCcpKFxuICAgICAgZGxjT2ZmZXIsXG4gICAgICBkbGNBY2NlcHQsXG4gICAgICBkbGNTaWduLFxuICAgICAgZGxjVHhzLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgRGxjQ2xvc2UgbWVzc2FnZXR5cGUgZm9yIGNsb3NpbmcgRExDIHdpdGggTXV0dWFsIENvbnNlbnRcbiAgICogQHBhcmFtIGRsY09mZmVyIERsY09mZmVyIFRMViAoVjApXG4gICAqIEBwYXJhbSBkbGNBY2NlcHQgRGxjQWNjZXB0IFRMViAoVjApXG4gICAqIEBwYXJhbSBkbGNUeHMgRGxjVHJhbnNhY3Rpb25zIFRMViAoVjApXG4gICAqIEBwYXJhbSBpbml0aWF0b3JQYXlvdXRTYXRvc2hpcyBBbW91bnQgaW5pdGlhdG9yIGV4cGVjdHMgYXMgYSBwYXlvdXRcbiAgICogQHBhcmFtIGlzT2ZmZXJlciBXaGV0aGVyIG9mZmVyZXIgb3Igbm90XG4gICAqIEBwYXJhbSBpbnB1dHMgT3B0aW9uYWxseSBzcGVjaWZpZWQgY2xvc2luZyBpbnB1dHNcbiAgICogQHJldHVybnMge1Byb21pc2U8RGxjQ2xvc2U+fVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlRGxjQ2xvc2UoXG4gICAgZGxjT2ZmZXI6IERsY09mZmVyLFxuICAgIGRsY0FjY2VwdDogRGxjQWNjZXB0LFxuICAgIGRsY1R4czogRGxjVHJhbnNhY3Rpb25zLFxuICAgIGluaXRpYXRvclBheW91dFNhdG9zaGlzOiBiaWdpbnQsXG4gICAgaXNPZmZlcmVyPzogYm9vbGVhbixcbiAgICBpbnB1dHM/OiBJbnB1dFtdLFxuICApOiBQcm9taXNlPERsY0Nsb3NlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnY3JlYXRlRGxjQ2xvc2UnKShcbiAgICAgIGRsY09mZmVyLFxuICAgICAgZGxjQWNjZXB0LFxuICAgICAgZGxjVHhzLFxuICAgICAgaW5pdGlhdG9yUGF5b3V0U2F0b3NoaXMsXG4gICAgICBpc09mZmVyZXIsXG4gICAgICBpbnB1dHMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBtdWx0aXBsZSBEbGNDbG9zZSBtZXNzYWdldHlwZXMgZm9yIGNsb3NpbmcgRExDIHdpdGggTXV0dWFsIENvbnNlbnRcbiAgICogQHBhcmFtIGRsY09mZmVyIERsY09mZmVyIFRMViAoVjApXG4gICAqIEBwYXJhbSBkbGNBY2NlcHQgRGxjQWNjZXB0IFRMViAoVjApXG4gICAqIEBwYXJhbSBkbGNUeHMgRGxjVHJhbnNhY3Rpb25zIFRMViAoVjApXG4gICAqIEBwYXJhbSBpbml0aWF0b3JQYXlvdXRzIEFycmF5IG9mIGFtb3VudHMgaW5pdGlhdG9yIGV4cGVjdHMgYXMgcGF5b3V0c1xuICAgKiBAcGFyYW0gaXNPZmZlcmVyIFdoZXRoZXIgb2ZmZXJlciBvciBub3RcbiAgICogQHBhcmFtIGlucHV0cyBPcHRpb25hbGx5IHNwZWNpZmllZCBjbG9zaW5nIGlucHV0c1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxEbGNDbG9zZVtdPn1cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUJhdGNoRGxjQ2xvc2UoXG4gICAgZGxjT2ZmZXI6IERsY09mZmVyLFxuICAgIGRsY0FjY2VwdDogRGxjQWNjZXB0LFxuICAgIGRsY1R4czogRGxjVHJhbnNhY3Rpb25zLFxuICAgIGluaXRpYXRvclBheW91dHM6IGJpZ2ludFtdLFxuICAgIGlzT2ZmZXJlcj86IGJvb2xlYW4sXG4gICAgaW5wdXRzPzogSW5wdXRbXSxcbiAgKTogUHJvbWlzZTxEbGNDbG9zZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnY3JlYXRlQmF0Y2hEbGNDbG9zZScpKFxuICAgICAgZGxjT2ZmZXIsXG4gICAgICBkbGNBY2NlcHQsXG4gICAgICBkbGNUeHMsXG4gICAgICBpbml0aWF0b3JQYXlvdXRzLFxuICAgICAgaXNPZmZlcmVyLFxuICAgICAgaW5wdXRzLFxuICAgICk7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlCYXRjaERsY0Nsb3NlVXNpbmdNZXRhZGF0YShcbiAgICBkbGNDbG9zZU1ldGFkYXRhOiBEbGNDbG9zZU1ldGFkYXRhLFxuICAgIF9kbGNDbG9zZXM6IERsY0Nsb3NlW10sXG4gICAgaXNPZmZlcmVyPzogYm9vbGVhbixcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgndmVyaWZ5QmF0Y2hEbGNDbG9zZVVzaW5nTWV0YWRhdGEnKShcbiAgICAgIGRsY0Nsb3NlTWV0YWRhdGEsXG4gICAgICBfZGxjQ2xvc2VzLFxuICAgICAgaXNPZmZlcmVyLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IG11bHRpcGxlIERsY0Nsb3NlIG1lc3NhZ2V0eXBlcyBmb3IgY2xvc2luZyBETEMgd2l0aCBNdXR1YWwgQ29uc2VudFxuICAgKiBAcGFyYW0gZGxjT2ZmZXIgRGxjT2ZmZXIgVExWIChWMClcbiAgICogQHBhcmFtIGRsY0FjY2VwdCBEbGNBY2NlcHQgVExWIChWMClcbiAgICogQHBhcmFtIGRsY1R4cyBEbGNUcmFuc2FjdGlvbnMgVExWIChWMClcbiAgICogQHBhcmFtIGRsY0Nsb3NlcyBEbGNDbG9zZVtdIFRMViAoVjApXG4gICAqIEBwYXJhbSBpc09mZmVyZXIgV2hldGhlciBvZmZlcmVyIG9yIG5vdFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHZlcmlmeUJhdGNoRGxjQ2xvc2UoXG4gICAgZGxjT2ZmZXI6IERsY09mZmVyLFxuICAgIGRsY0FjY2VwdDogRGxjQWNjZXB0LFxuICAgIGRsY1R4czogRGxjVHJhbnNhY3Rpb25zLFxuICAgIGRsY0Nsb3NlczogRGxjQ2xvc2VbXSxcbiAgICBpc09mZmVyZXI/OiBib29sZWFuLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCd2ZXJpZnlCYXRjaERsY0Nsb3NlJykoXG4gICAgICBkbGNPZmZlcixcbiAgICAgIGRsY0FjY2VwdCxcbiAgICAgIGRsY1R4cyxcbiAgICAgIGRsY0Nsb3NlcyxcbiAgICAgIGlzT2ZmZXJlcixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmFsaXplIERsYyBDbG9zZVxuICAgKiBAcGFyYW0gZGxjT2ZmZXIgRGxjIE9mZmVyIE1lc3NhZ2VcbiAgICogQHBhcmFtIGRsY0FjY2VwdCBEbGMgQWNjZXB0IE1lc3NhZ2VcbiAgICogQHBhcmFtIGRsY0Nsb3NlIERsYyBDbG9zZSBNZXNzYWdlXG4gICAqIEBwYXJhbSBkbGNUeHMgRGxjIFRyYW5zYWN0aW9ucyBNZXNzYWdlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59XG4gICAqL1xuICBmaW5hbGl6ZURsY0Nsb3NlKFxuICAgIGRsY09mZmVyOiBEbGNPZmZlcixcbiAgICBkbGNBY2NlcHQ6IERsY0FjY2VwdCxcbiAgICBkbGNDbG9zZTogRGxjQ2xvc2UsXG4gICAgZGxjVHhzOiBEbGNUcmFuc2FjdGlvbnMsXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnZmluYWxpemVEbGNDbG9zZScpKFxuICAgICAgZGxjT2ZmZXIsXG4gICAgICBkbGNBY2NlcHQsXG4gICAgICBkbGNDbG9zZSxcbiAgICAgIGRsY1R4cyxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgQWRkU2lnbmF0dXJlVG9GdW5kVHJhbnNhY3Rpb24oXG4gICAganNvbk9iamVjdDogQWRkU2lnbmF0dXJlVG9GdW5kVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICApOiBQcm9taXNlPEFkZFNpZ25hdHVyZVRvRnVuZFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdBZGRTaWduYXR1cmVUb0Z1bmRUcmFuc2FjdGlvbicpKGpzb25PYmplY3QpO1xuICB9XG5cbiAgYXN5bmMgQ3JlYXRlQ2V0QWRhcHRvclNpZ25hdHVyZShcbiAgICBqc29uT2JqZWN0OiBDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlUmVxdWVzdCxcbiAgKTogUHJvbWlzZTxDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlJykoanNvbk9iamVjdCk7XG4gIH1cblxuICBhc3luYyBDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlcyhcbiAgICBqc29uT2JqZWN0OiBDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlc1JlcXVlc3QsXG4gICk6IFByb21pc2U8Q3JlYXRlQ2V0QWRhcHRvclNpZ25hdHVyZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ0NyZWF0ZUNldEFkYXB0b3JTaWduYXR1cmVzJykoanNvbk9iamVjdCk7XG4gIH1cblxuICBhc3luYyBBZGRTaWduYXR1cmVzVG9SZWZ1bmRUeChcbiAgICBqc29uT2JqZWN0OiBBZGRTaWduYXR1cmVzVG9SZWZ1bmRUeFJlcXVlc3QsXG4gICk6IFByb21pc2U8QWRkU2lnbmF0dXJlc1RvUmVmdW5kVHhSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ0FkZFNpZ25hdHVyZXNUb1JlZnVuZFR4JykoanNvbk9iamVjdCk7XG4gIH1cblxuICBhc3luYyBDcmVhdGVDZXQoanNvbk9iamVjdDogQ3JlYXRlQ2V0UmVxdWVzdCk6IFByb21pc2U8Q3JlYXRlQ2V0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdDcmVhdGVDZXQnKShqc29uT2JqZWN0KTtcbiAgfVxuXG4gIGFzeW5jIENyZWF0ZURsY1RyYW5zYWN0aW9ucyhcbiAgICBqc29uT2JqZWN0OiBDcmVhdGVEbGNUcmFuc2FjdGlvbnNSZXF1ZXN0LFxuICApOiBQcm9taXNlPENyZWF0ZURsY1RyYW5zYWN0aW9uc1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnQ3JlYXRlRGxjVHJhbnNhY3Rpb25zJykoanNvbk9iamVjdCk7XG4gIH1cblxuICBhc3luYyBDcmVhdGVGdW5kVHJhbnNhY3Rpb24oXG4gICAganNvbk9iamVjdDogQ3JlYXRlRnVuZFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgKTogUHJvbWlzZTxDcmVhdGVGdW5kVHJhbnNhY3Rpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ0NyZWF0ZUZ1bmRUcmFuc2FjdGlvbicpKGpzb25PYmplY3QpO1xuICB9XG5cbiAgYXN5bmMgQ3JlYXRlUmVmdW5kVHJhbnNhY3Rpb24oXG4gICAganNvbk9iamVjdDogQ3JlYXRlUmVmdW5kVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICApOiBQcm9taXNlPENyZWF0ZVJlZnVuZFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdDcmVhdGVSZWZ1bmRUcmFuc2FjdGlvbicpKGpzb25PYmplY3QpO1xuICB9XG5cbiAgYXN5bmMgR2V0UmF3RnVuZFR4U2lnbmF0dXJlKFxuICAgIGpzb25PYmplY3Q6IEdldFJhd0Z1bmRUeFNpZ25hdHVyZVJlcXVlc3QsXG4gICk6IFByb21pc2U8R2V0UmF3RnVuZFR4U2lnbmF0dXJlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdHZXRSYXdGdW5kVHhTaWduYXR1cmUnKShqc29uT2JqZWN0KTtcbiAgfVxuXG4gIGFzeW5jIEdldFJhd1JlZnVuZFR4U2lnbmF0dXJlKFxuICAgIGpzb25PYmplY3Q6IEdldFJhd1JlZnVuZFR4U2lnbmF0dXJlUmVxdWVzdCxcbiAgKTogUHJvbWlzZTxHZXRSYXdSZWZ1bmRUeFNpZ25hdHVyZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnR2V0UmF3UmVmdW5kVHhTaWduYXR1cmUnKShqc29uT2JqZWN0KTtcbiAgfVxuXG4gIGFzeW5jIFNpZ25DZXRSZXF1ZXN0KGpzb25PYmplY3Q6IFNpZ25DZXRSZXF1ZXN0KTogUHJvbWlzZTxTaWduQ2V0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdTaWduQ2V0UmVxdWVzdCcpKGpzb25PYmplY3QpO1xuICB9XG5cbiAgYXN5bmMgU2lnbkZ1bmRUcmFuc2FjdGlvbihcbiAgICBqc29uT2JqZWN0OiBTaWduRnVuZFRyYW5zYWN0aW9uUmVxdWVzdCxcbiAgKTogUHJvbWlzZTxTaWduRnVuZFRyYW5zYWN0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdTaWduRnVuZFRyYW5zYWN0aW9uJykoanNvbk9iamVjdCk7XG4gIH1cblxuICBhc3luYyBWZXJpZnlDZXRBZGFwdG9yU2lnbmF0dXJlKFxuICAgIGpzb25PYmplY3Q6IFZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmVSZXF1ZXN0LFxuICApOiBQcm9taXNlPFZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ1ZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmUnKShqc29uT2JqZWN0KTtcbiAgfVxuXG4gIGFzeW5jIFZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmVzUmVxdWVzdChcbiAgICBqc29uT2JqZWN0OiBWZXJpZnlDZXRBZGFwdG9yU2lnbmF0dXJlc1JlcXVlc3QsXG4gICk6IFByb21pc2U8VmVyaWZ5Q2V0QWRhcHRvclNpZ25hdHVyZXNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ1ZlcmlmeUNldEFkYXB0b3JTaWduYXR1cmVzJykoanNvbk9iamVjdCk7XG4gIH1cblxuICBhc3luYyBWZXJpZnlGdW5kVHhTaWduYXR1cmUoXG4gICAganNvbk9iamVjdDogVmVyaWZ5RnVuZFR4U2lnbmF0dXJlUmVxdWVzdCxcbiAgKTogUHJvbWlzZTxWZXJpZnlGdW5kVHhTaWduYXR1cmVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ1ZlcmlmeUZ1bmRUeFNpZ25hdHVyZScpKGpzb25PYmplY3QpO1xuICB9XG5cbiAgYXN5bmMgVmVyaWZ5UmVmdW5kVHhTaWduYXR1cmUoXG4gICAganNvbk9iamVjdDogVmVyaWZ5UmVmdW5kVHhTaWduYXR1cmVSZXF1ZXN0LFxuICApOiBQcm9taXNlPFZlcmlmeVJlZnVuZFR4U2lnbmF0dXJlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdWZXJpZnlSZWZ1bmRUeFNpZ25hdHVyZScpKGpzb25PYmplY3QpO1xuICB9XG5cbiAgYXN5bmMgZnVuZGluZ0lucHV0VG9JbnB1dChfaW5wdXQ6IEZ1bmRpbmdJbnB1dCk6IFByb21pc2U8SUlucHV0PiB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnZnVuZGluZ0lucHV0VG9JbnB1dCcpKF9pbnB1dCk7XG4gIH1cblxuICBhc3luYyBpbnB1dFRvRnVuZGluZ0lucHV0KGlucHV0OiBJSW5wdXQpOiBQcm9taXNlPEZ1bmRpbmdJbnB1dD4ge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ2lucHV0VG9GdW5kaW5nSW5wdXQnKShpbnB1dCk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2NlcHREbGNPZmZlclJlc3BvbnNlIHtcbiAgZGxjQWNjZXB0OiBEbGNBY2NlcHQ7XG4gIGRsY1RyYW5zYWN0aW9uczogRGxjVHJhbnNhY3Rpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25EbGNBY2NlcHRSZXNwb25zZSB7XG4gIGRsY1NpZ246IERsY1NpZ247XG4gIGRsY1RyYW5zYWN0aW9uczogRGxjVHJhbnNhY3Rpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElJbnB1dCB7XG4gIHR4aWQ6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogbnVtYmVyOyAvLyBpbiBCVENcbiAgdmFsdWU6IG51bWJlcjsgLy8gaW4gc2F0c1xuICBkZXJpdmF0aW9uUGF0aD86IHN0cmluZztcbiAgbWF4V2l0bmVzc0xlbmd0aD86IG51bWJlcjtcbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICBpbnB1dFNlcmlhbElkPzogYmlnaW50O1xuICBzY3JpcHRQdWJLZXk/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBjb25maXJtYXRpb25zPzogbnVtYmVyO1xuICBzcGVuZGFibGU/OiBib29sZWFuO1xuICBzb2x2YWJsZT86IGJvb2xlYW47XG4gIHNhZmU/OiBib29sZWFuO1xuICB0b1V0eG86IGFueTtcbn1cbiJdLCJuYW1lcyI6WyJEbGMiLCJpc09mZmVyZXIiLCJkbGNPZmZlciIsImRsY0FjY2VwdCIsImNsaWVudCIsImdldE1ldGhvZCIsImNyZWF0ZURsY1R4cyIsImNyZWF0ZURsY09mZmVyIiwiY29udHJhY3RJbmZvIiwib2ZmZXJDb2xsYXRlcmFsU2F0b3NoaXMiLCJmZWVSYXRlUGVyVmIiLCJjZXRMb2NrdGltZSIsInJlZnVuZExvY2t0aW1lIiwiZml4ZWRJbnB1dHMiLCJhY2NlcHREbGNPZmZlciIsInNpZ25EbGNBY2NlcHQiLCJmaW5hbGl6ZURsY1NpZ24iLCJkbGNTaWduIiwiZGxjVHhzIiwiZXhlY3V0ZSIsIm9yYWNsZUF0dGVzdGF0aW9uIiwicmVmdW5kIiwiY3JlYXRlRGxjQ2xvc2UiLCJpbml0aWF0b3JQYXlvdXRTYXRvc2hpcyIsImlucHV0cyIsImNyZWF0ZUJhdGNoRGxjQ2xvc2UiLCJpbml0aWF0b3JQYXlvdXRzIiwidmVyaWZ5QmF0Y2hEbGNDbG9zZVVzaW5nTWV0YWRhdGEiLCJkbGNDbG9zZU1ldGFkYXRhIiwiX2RsY0Nsb3NlcyIsInZlcmlmeUJhdGNoRGxjQ2xvc2UiLCJkbGNDbG9zZXMiLCJmaW5hbGl6ZURsY0Nsb3NlIiwiZGxjQ2xvc2UiLCJBZGRTaWduYXR1cmVUb0Z1bmRUcmFuc2FjdGlvbiIsImpzb25PYmplY3QiLCJDcmVhdGVDZXRBZGFwdG9yU2lnbmF0dXJlIiwiQ3JlYXRlQ2V0QWRhcHRvclNpZ25hdHVyZXMiLCJBZGRTaWduYXR1cmVzVG9SZWZ1bmRUeCIsIkNyZWF0ZUNldCIsIkNyZWF0ZURsY1RyYW5zYWN0aW9ucyIsIkNyZWF0ZUZ1bmRUcmFuc2FjdGlvbiIsIkNyZWF0ZVJlZnVuZFRyYW5zYWN0aW9uIiwiR2V0UmF3RnVuZFR4U2lnbmF0dXJlIiwiR2V0UmF3UmVmdW5kVHhTaWduYXR1cmUiLCJTaWduQ2V0UmVxdWVzdCIsIlNpZ25GdW5kVHJhbnNhY3Rpb24iLCJWZXJpZnlDZXRBZGFwdG9yU2lnbmF0dXJlIiwiVmVyaWZ5Q2V0QWRhcHRvclNpZ25hdHVyZXNSZXF1ZXN0IiwiVmVyaWZ5RnVuZFR4U2lnbmF0dXJlIiwiVmVyaWZ5UmVmdW5kVHhTaWduYXR1cmUiLCJmdW5kaW5nSW5wdXRUb0lucHV0IiwiX2lucHV0IiwiaW5wdXRUb0Z1bmRpbmdJbnB1dCIsImlucHV0IiwiY29uc3RydWN0b3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBaURlLElBQUEsQUFBTUEsR0FBRyxHQUFULE1BQU1BLEdBQUc7SUFPdEI7Ozs7O0tBS0csQ0FDSCxNQUFNQyxTQUFTLENBQUNDLFFBQWtCLEVBQUVDLFNBQW9CLEVBQW9CO1FBQzFFLE9BQU8sSUFBSSxDQUFDQyxNQUFNLENBQUNDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQ0gsUUFBUSxFQUFFQyxTQUFTLENBQUMsQ0FBQztLQUNoRTtJQUVEOzs7OztLQUtHLENBQ0gsTUFBTUcsWUFBWSxDQUNoQkos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
|
|
207
|
+
//# sourceMappingURL=Dlc.js.map
|
package/dist/Dlc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dlc.js","sourceRoot":"","sources":["../lib/Dlc.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Dlc.js","sourceRoot":"","sources":["../lib/Dlc.ts"],"names":[],"mappings":"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"}
|
package/dist/Wallet.d.ts
CHANGED
|
@@ -1,14 +1,69 @@
|
|
|
1
|
-
import { CreateMultisigResponse, Input, Output } from '@atomicfinance/types';
|
|
1
|
+
import { Address, CreateMultisigResponse, Input, Output, WalletProvider } from '@atomicfinance/types';
|
|
2
2
|
import { Transaction } from 'bitcoinjs-lib';
|
|
3
|
-
export default class Wallet {
|
|
3
|
+
export default class Wallet implements WalletProvider {
|
|
4
4
|
client: any;
|
|
5
5
|
constructor(client: any);
|
|
6
|
+
/**
|
|
7
|
+
* Get addresses/accounts of the user.
|
|
8
|
+
* @param {number} [startingIndex] - Index to start
|
|
9
|
+
* @param {number} [numAddresses] - Number of addresses to retrieve
|
|
10
|
+
* @param {boolean} [change] - True for change addresses
|
|
11
|
+
* @return {Promise<Address[], InvalidProviderResponseError>} Resolves with a list
|
|
12
|
+
* of addresses.
|
|
13
|
+
* Rejects with InvalidProviderResponseError if provider's response is invalid.
|
|
14
|
+
*/
|
|
15
|
+
getAddresses(startingIndex?: number, numAddresses?: number, change?: boolean): Promise<Address[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Get used addresses/accounts of the user.
|
|
18
|
+
* @param {number} [numAddressPerCall] - Number of addresses to retrieve per call
|
|
19
|
+
* @return {Promise<Address[], InvalidProviderResponseError>} Resolves with a list
|
|
20
|
+
* of addresses.
|
|
21
|
+
* Rejects with InvalidProviderResponseError if provider's response is invalid.
|
|
22
|
+
*/
|
|
23
|
+
getUsedAddresses(numAddressPerCall?: number): Promise<Address[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Get unused address/account of the user.
|
|
26
|
+
* @param {boolean} [change] - True for change addresses
|
|
27
|
+
* @param {number} [numAddressPerCall] - Number of addresses to retrieve per call
|
|
28
|
+
* @return {Promise<Address, InvalidProviderResponseError>} Resolves with a address
|
|
29
|
+
* object.
|
|
30
|
+
* Rejects with InvalidProviderResponseError if provider's response is invalid.
|
|
31
|
+
*/
|
|
32
|
+
getUnusedAddress(change?: boolean, numAddressPerCall?: number): Promise<Address>;
|
|
33
|
+
/**
|
|
34
|
+
* Sign a message.
|
|
35
|
+
* @param {!string} message - Message to be signed.
|
|
36
|
+
* @param {!string} from - The address from which the message is signed.
|
|
37
|
+
* @return {Promise<string>} Resolves with a signed message.
|
|
38
|
+
*/
|
|
39
|
+
signMessage(message: string, from: string): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Retrieve the network connected to by the wallet
|
|
42
|
+
* @return {Promise<any>} Resolves with the network object
|
|
43
|
+
*/
|
|
44
|
+
getConnectedNetwork(): Promise<any>;
|
|
45
|
+
/**
|
|
46
|
+
* Retrieve the availability status of the wallet
|
|
47
|
+
* @return {Promise<Boolean>} True if the wallet is available to use
|
|
48
|
+
*/
|
|
49
|
+
isWalletAvailable(): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Flag indicating if the wallet allows apps to update transaction fees
|
|
52
|
+
* @return {Promise<Boolean>} True if wallet accepts fee updating
|
|
53
|
+
*/
|
|
54
|
+
get canUpdateFee(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Retrieve the private key for the account
|
|
57
|
+
* @return {Promise<string>} Resolves with the key as a string
|
|
58
|
+
*/
|
|
59
|
+
exportPrivateKey(): Promise<string>;
|
|
60
|
+
findAddress(addresses: string[]): any;
|
|
61
|
+
setUnusedAddressesBlacklist(unusedAddressesBlacklist: any): any;
|
|
62
|
+
getUnusedAddressesBlacklist(): any;
|
|
6
63
|
createMultisig(m: number, pubkeys: string[]): CreateMultisigResponse;
|
|
7
64
|
buildMultisigPSBT(m: number, pubkeys: string[], inputs: Input[], outputs: Output[]): string;
|
|
8
65
|
walletProcessPSBT(psbtString: string): Promise<string>;
|
|
9
66
|
finalizePSBT(psbtString: string): Transaction;
|
|
10
67
|
buildSweepTransactionWithSetOutputs(externalChangeAddress: string, feePerByte: number, outputs: Output[], fixedInputs: Input[]): Promise<any>;
|
|
11
68
|
sendSweepTransactionWithSetOutputs(externalChangeAddress: string, feePerByte: number, outputs: Output[], fixedInputs: Input[]): Promise<any>;
|
|
12
|
-
getUnusedAddress(change?: boolean, numAddressPerCall?: number): Promise<any>;
|
|
13
|
-
quickFindAddress(addresses: string[]): Promise<any>;
|
|
14
69
|
}
|
package/dist/Wallet.js
CHANGED
|
@@ -1,8 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const errors_1 = require("@atomicfinance/errors");
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
class Wallet {
|
|
6
|
+
constructor(client) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get addresses/accounts of the user.
|
|
11
|
+
* @param {number} [startingIndex] - Index to start
|
|
12
|
+
* @param {number} [numAddresses] - Number of addresses to retrieve
|
|
13
|
+
* @param {boolean} [change] - True for change addresses
|
|
14
|
+
* @return {Promise<Address[], InvalidProviderResponseError>} Resolves with a list
|
|
15
|
+
* of addresses.
|
|
16
|
+
* Rejects with InvalidProviderResponseError if provider's response is invalid.
|
|
17
|
+
*/
|
|
18
|
+
async getAddresses(startingIndex, numAddresses, change) {
|
|
19
|
+
const addresses = await this.client.getMethod('getAddresses')(startingIndex, numAddresses, change);
|
|
20
|
+
if (!lodash_1.isArray(addresses)) {
|
|
21
|
+
throw new errors_1.InvalidProviderResponseError('Provider returned an invalid response');
|
|
22
|
+
}
|
|
23
|
+
return addresses;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get used addresses/accounts of the user.
|
|
27
|
+
* @param {number} [numAddressPerCall] - Number of addresses to retrieve per call
|
|
28
|
+
* @return {Promise<Address[], InvalidProviderResponseError>} Resolves with a list
|
|
29
|
+
* of addresses.
|
|
30
|
+
* Rejects with InvalidProviderResponseError if provider's response is invalid.
|
|
31
|
+
*/
|
|
32
|
+
async getUsedAddresses(numAddressPerCall) {
|
|
33
|
+
return this.client.getMethod('getUsedAddresses')(numAddressPerCall);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get unused address/account of the user.
|
|
37
|
+
* @param {boolean} [change] - True for change addresses
|
|
38
|
+
* @param {number} [numAddressPerCall] - Number of addresses to retrieve per call
|
|
39
|
+
* @return {Promise<Address, InvalidProviderResponseError>} Resolves with a address
|
|
40
|
+
* object.
|
|
41
|
+
* Rejects with InvalidProviderResponseError if provider's response is invalid.
|
|
42
|
+
*/
|
|
43
|
+
async getUnusedAddress(change, numAddressPerCall) {
|
|
44
|
+
return this.client.getMethod('getUnusedAddress')(change, numAddressPerCall);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Sign a message.
|
|
48
|
+
* @param {!string} message - Message to be signed.
|
|
49
|
+
* @param {!string} from - The address from which the message is signed.
|
|
50
|
+
* @return {Promise<string>} Resolves with a signed message.
|
|
51
|
+
*/
|
|
52
|
+
async signMessage(message, from) {
|
|
53
|
+
return this.client.getMethod('signMessage')(message, from);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Retrieve the network connected to by the wallet
|
|
57
|
+
* @return {Promise<any>} Resolves with the network object
|
|
58
|
+
*/
|
|
59
|
+
async getConnectedNetwork() {
|
|
60
|
+
return this.client.getMethod('getConnectedNetwork')();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieve the availability status of the wallet
|
|
64
|
+
* @return {Promise<Boolean>} True if the wallet is available to use
|
|
65
|
+
*/
|
|
66
|
+
async isWalletAvailable() {
|
|
67
|
+
return this.client.getMethod('isWalletAvailable')();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Flag indicating if the wallet allows apps to update transaction fees
|
|
71
|
+
* @return {Promise<Boolean>} True if wallet accepts fee updating
|
|
72
|
+
*/
|
|
73
|
+
get canUpdateFee() {
|
|
74
|
+
try {
|
|
75
|
+
return this.client.getMethod('canUpdateFee')();
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
if (!(e instanceof errors_1.UnimplementedMethodError))
|
|
79
|
+
throw e;
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Retrieve the private key for the account
|
|
85
|
+
* @return {Promise<string>} Resolves with the key as a string
|
|
86
|
+
*/
|
|
87
|
+
exportPrivateKey() {
|
|
88
|
+
return this.client.getMethod('exportPrivateKey')();
|
|
89
|
+
}
|
|
90
|
+
findAddress(addresses) {
|
|
91
|
+
return this.client.getMethod('findAddress')(addresses);
|
|
92
|
+
}
|
|
93
|
+
setUnusedAddressesBlacklist(unusedAddressesBlacklist) {
|
|
94
|
+
return this.client.getMethod('setUnusedAddressesBlacklist')(unusedAddressesBlacklist);
|
|
95
|
+
}
|
|
96
|
+
getUnusedAddressesBlacklist() {
|
|
97
|
+
return this.client.getMethod('getUnusedAddressesBlacklist')();
|
|
98
|
+
}
|
|
6
99
|
createMultisig(m, pubkeys) {
|
|
7
100
|
return this.client.getMethod('createMultisig')(m, pubkeys);
|
|
8
101
|
}
|
|
@@ -21,16 +114,6 @@ let Wallet = class Wallet {
|
|
|
21
114
|
async sendSweepTransactionWithSetOutputs(externalChangeAddress, feePerByte, outputs, fixedInputs) {
|
|
22
115
|
return this.client.getMethod('sendSweepTransactionWithSetOutputs')(externalChangeAddress, feePerByte, outputs, fixedInputs);
|
|
23
116
|
}
|
|
24
|
-
|
|
25
|
-
return this.client.getMethod('getUnusedAddress')(change, numAddressPerCall);
|
|
26
|
-
}
|
|
27
|
-
async quickFindAddress(addresses) {
|
|
28
|
-
return this.client.getMethod('quickFindAddress')(addresses);
|
|
29
|
-
}
|
|
30
|
-
constructor(client){
|
|
31
|
-
this.client = client;
|
|
32
|
-
}
|
|
33
|
-
};
|
|
117
|
+
}
|
|
34
118
|
exports.default = Wallet;
|
|
35
|
-
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9XYWxsZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlYXRlTXVsdGlzaWdSZXNwb25zZSwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0BhdG9taWNmaW5hbmNlL3R5cGVzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdhbGxldCB7XG4gIGNsaWVudDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogYW55KSB7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gIH1cblxuICBjcmVhdGVNdWx0aXNpZyhtOiBudW1iZXIsIHB1YmtleXM6IHN0cmluZ1tdKTogQ3JlYXRlTXVsdGlzaWdSZXNwb25zZSB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnY3JlYXRlTXVsdGlzaWcnKShtLCBwdWJrZXlzKTtcbiAgfVxuXG4gIGJ1aWxkTXVsdGlzaWdQU0JUKFxuICAgIG06IG51bWJlcixcbiAgICBwdWJrZXlzOiBzdHJpbmdbXSxcbiAgICBpbnB1dHM6IElucHV0W10sXG4gICAgb3V0cHV0czogT3V0cHV0W10sXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnYnVpbGRNdWx0aXNpZ1BTQlQnKShcbiAgICAgIG0sXG4gICAgICBwdWJrZXlzLFxuICAgICAgaW5wdXRzLFxuICAgICAgb3V0cHV0cyxcbiAgICApO1xuICB9XG5cbiAgd2FsbGV0UHJvY2Vzc1BTQlQocHNidFN0cmluZzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCd3YWxsZXRQcm9jZXNzUFNCVCcpKHBzYnRTdHJpbmcpO1xuICB9XG5cbiAgZmluYWxpemVQU0JUKHBzYnRTdHJpbmc6IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdmaW5hbGl6ZVBTQlQnKShwc2J0U3RyaW5nKTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkU3dlZXBUcmFuc2FjdGlvbldpdGhTZXRPdXRwdXRzKFxuICAgIGV4dGVybmFsQ2hhbmdlQWRkcmVzczogc3RyaW5nLFxuICAgIGZlZVBlckJ5dGU6IG51bWJlcixcbiAgICBvdXRwdXRzOiBPdXRwdXRbXSxcbiAgICBmaXhlZElucHV0czogSW5wdXRbXSxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50LmdldE1ldGhvZCgnYnVpbGRTd2VlcFRyYW5zYWN0aW9uV2l0aFNldE91dHB1dHMnKShcbiAgICAgIGV4dGVybmFsQ2hhbmdlQWRkcmVzcyxcbiAgICAgIGZlZVBlckJ5dGUsXG4gICAgICBvdXRwdXRzLFxuICAgICAgZml4ZWRJbnB1dHMsXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRTd2VlcFRyYW5zYWN0aW9uV2l0aFNldE91dHB1dHMoXG4gICAgZXh0ZXJuYWxDaGFuZ2VBZGRyZXNzOiBzdHJpbmcsXG4gICAgZmVlUGVyQnl0ZTogbnVtYmVyLFxuICAgIG91dHB1dHM6IE91dHB1dFtdLFxuICAgIGZpeGVkSW5wdXRzOiBJbnB1dFtdLFxuICApIHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0TWV0aG9kKCdzZW5kU3dlZXBUcmFuc2FjdGlvbldpdGhTZXRPdXRwdXRzJykoXG4gICAgICBleHRlcm5hbENoYW5nZUFkZHJlc3MsXG4gICAgICBmZWVQZXJCeXRlLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIGZpeGVkSW5wdXRzLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRVbnVzZWRBZGRyZXNzKGNoYW5nZSA9IGZhbHNlLCBudW1BZGRyZXNzUGVyQ2FsbCA9IDEwMCkge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ2dldFVudXNlZEFkZHJlc3MnKShjaGFuZ2UsIG51bUFkZHJlc3NQZXJDYWxsKTtcbiAgfVxuXG4gIGFzeW5jIHF1aWNrRmluZEFkZHJlc3MoYWRkcmVzc2VzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXRNZXRob2QoJ3F1aWNrRmluZEFkZHJlc3MnKShhZGRyZXNzZXMpO1xuICB9XG59XG4iXSwibmFtZXMiOlsiV2FsbGV0IiwiY3JlYXRlTXVsdGlzaWciLCJtIiwicHVia2V5cyIsImNsaWVudCIsImdldE1ldGhvZCIsImJ1aWxkTXVsdGlzaWdQU0JUIiwiaW5wdXRzIiwib3V0cHV0cyIsIndhbGxldFByb2Nlc3NQU0JUIiwicHNidFN0cmluZyIsImZpbmFsaXplUFNCVCIsImJ1aWxkU3dlZXBUcmFuc2FjdGlvbldpdGhTZXRPdXRwdXRzIiwiZXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIiwiZmVlUGVyQnl0ZSIsImZpeGVkSW5wdXRzIiwic2VuZFN3ZWVwVHJhbnNhY3Rpb25XaXRoU2V0T3V0cHV0cyIsImdldFVudXNlZEFkZHJlc3MiLCJjaGFuZ2UiLCJudW1BZGRyZXNzUGVyQ2FsbCIsInF1aWNrRmluZEFkZHJlc3MiLCJhZGRyZXNzZXMiLCJjb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFHZSxJQUFBLEFBQU1BLE1BQU0sR0FBWixNQUFNQSxNQUFNO0lBT3pCQyxjQUFjLENBQUNDLENBQVMsRUFBRUMsT0FBaUIsRUFBMEI7UUFDbkUsT0FBTyxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUNILENBQUMsRUFBRUMsT0FBTyxDQUFDLENBQUM7S0FDNUQ7SUFFREcsaUJBQWlCLENBQ2ZKLENBQVMsRUFDVEMsT0FBaUIsRUFDakJJLE1BQWUsRUFDZkMsT0FBaUIsRUFDVDtRQUNSLE9BQU8sSUFBSSxDQUFDSixNQUFNLENBQUNDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUMvQ0gsQ0FBQyxFQUNEQyxPQUFPLEVBQ1BJLE1BQU0sRUFDTkMsT0FBTyxDQUNSLENBQUM7S0FDSDtJQUVEQyxpQkFBaUIsQ0FBQ0MsVUFBa0IsRUFBbUI7UUFDckQsT0FBTyxJQUFJLENBQUNOLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUNLLFVBQVUsQ0FBQyxDQUFDO0tBQy9EO0lBRURDLFlBQVksQ0FBQ0QsVUFBa0IsRUFBZTtRQUM1QyxPQUFPLElBQUksQ0FBQ04sTUFBTSxDQUFDQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUNLLFVBQVUsQ0FBQyxDQUFDO0tBQzFEO0lBRUQsTUFBTUUsbUNBQW1DLENBQ3ZDQyxxQkFBNkIsRUFDN0JDLFVBQWtCLEVBQ2xCTixPQUFpQixFQUNqQk8sV0FBb0IsRUFDcEI7UUFDQSxPQUFPLElBQUksQ0FBQ1gsTUFBTSxDQUFDQyxTQUFTLENBQUMscUNBQXFDLENBQUMsQ0FDakVRLHFCQUFxQixFQUNyQkMsVUFBVSxFQUNWTixPQUFPLEVBQ1BPLFdBQVcsQ0FDWixDQUFDO0tBQ0g7SUFFRCxNQUFNQyxrQ0FBa0MsQ0FDdENILHFCQUE2QixFQUM3QkMsVUFBa0IsRUFDbEJOLE9BQWlCLEVBQ2pCTyxXQUFvQixFQUNwQjtRQUNBLE9BQU8sSUFBSSxDQUFDWCxNQUFNLENBQUNDLFNBQVMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUNoRVEscUJBQXFCLEVBQ3JCQyxVQUFVLEVBQ1ZOLE9BQU8sRUFDUE8sV0FBVyxDQUNaLENBQUM7S0FDSDtJQUVELE1BQU1FLGdCQUFnQixDQUFDQyxNQUFNLEdBQUcsS0FBSyxFQUFFQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUU7UUFDOUQsT0FBTyxJQUFJLENBQUNmLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUNhLE1BQU0sRUFBRUMsaUJBQWlCLENBQUMsQ0FBQztLQUM3RTtJQUVELE1BQU1DLGdCQUFnQixDQUFDQyxTQUFtQixFQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDakIsTUFBTSxDQUFDQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQ2dCLFNBQVMsQ0FBQyxDQUFDO0tBQzdEO0lBaEVEQyxZQUFZbEIsTUFBVyxDQUFFO1FBQ3ZCLElBQUksQ0FBQ0EsTUFBTSxHQUFHQSxNQUFNLENBQUM7S0FDdEI7Q0ErREY7a0JBcEVvQkosTUFBTSJ9
|
|
119
|
+
//# sourceMappingURL=Wallet.js.map
|
package/dist/Wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../lib/Wallet.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../lib/Wallet.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Object.defineProperty(exports, "default", {
|
|
11
|
-
|
|
12
|
-
get: function() {
|
|
13
|
-
return _client.default;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
var _client = _interopRequireDefault(require("./Client"));
|
|
17
|
-
function _interopRequireDefault(obj) {
|
|
18
|
-
return obj && obj.__esModule ? obj : {
|
|
19
|
-
default: obj
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIENsaWVudCB9IGZyb20gJy4vQ2xpZW50JztcbmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL0NsaWVudCc7XG4iXSwibmFtZXMiOlsiQ2xpZW50IiwiZGVmYXVsdCJdLCJtYXBwaW5ncyI6IkFBQUE7OzsrQkFBb0JBLFFBQU07Ozt1QkFBakJDLE9BQU87OzsrQkFDUEEsU0FBTzs7O3VCQUFQQSxPQUFPOzs7NkNBRGtCLFVBQVUifQ==
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = exports.Client = void 0;
|
|
7
|
+
var Client_1 = require("./Client");
|
|
8
|
+
Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return __importDefault(Client_1).default; } });
|
|
9
|
+
var Client_2 = require("./Client");
|
|
10
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Client_2).default; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
File without changes
|