beignet 0.0.10 → 0.0.11
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/README.md +8 -0
- package/dist/shapes/wallet.js +5 -1
- package/dist/shapes/wallet.js.map +1 -1
- package/dist/transaction/index.js +45 -3
- package/dist/transaction/index.js.map +1 -1
- package/dist/types/shapes/wallet.d.ts +2 -1
- package/dist/types/transaction/index.d.ts +5 -0
- package/dist/types/transaction.js.map +1 -1
- package/dist/types/types/transaction.d.ts +2 -1
- package/dist/types/types/wallet.d.ts +29 -10
- package/dist/types/utils/helpers.d.ts +14 -1
- package/dist/types/wallet/index.d.ts +4 -1
- package/dist/types/wallet.js.map +1 -1
- package/dist/utils/helpers.js +63 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/transaction.js +41 -42
- package/dist/utils/transaction.js.map +1 -1
- package/dist/wallet/index.js +100 -33
- package/dist/wallet/index.js.map +1 -1
- package/package.json +1 -1
- package/src/shapes/wallet.ts +4 -0
- package/src/transaction/index.ts +66 -3
- package/src/types/transaction.ts +2 -1
- package/src/types/wallet.ts +34 -11
- package/src/utils/helpers.ts +99 -3
- package/src/utils/transaction.ts +65 -66
- package/src/wallet/index.ts +154 -35
- package/tests/transaction.test.ts +85 -2
- package/tests/wallet.test.ts +6 -3
package/README.md
CHANGED
|
@@ -158,6 +158,14 @@ const txs = [
|
|
|
158
158
|
{ address: 'address3', amount: 3000 },
|
|
159
159
|
];
|
|
160
160
|
const sendManyRes = await wallet.sendMany({ txs });
|
|
161
|
+
|
|
162
|
+
// Sweep from a private key
|
|
163
|
+
const sweepPrivateKeyRes = await wallet.sweepPrivateKey({
|
|
164
|
+
privateKey: 'privateKey',
|
|
165
|
+
toAddress: 'toAddress',
|
|
166
|
+
satsPerByte: 5,
|
|
167
|
+
broadcast: false
|
|
168
|
+
});
|
|
161
169
|
```
|
|
162
170
|
|
|
163
171
|
## Documentation
|
package/dist/shapes/wallet.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.defaultFeesShape = exports.defaultWalletData = exports.getDefaultHeader = exports.getAddressTypeContent = exports.getDefaultSendTransaction = exports.defaultSendTransaction = exports.defaultAddressContent = exports.addressTypes = void 0;
|
|
6
|
+
exports.getAddressTypes = exports.defaultFeesShape = exports.defaultWalletData = exports.getDefaultHeader = exports.getAddressTypeContent = exports.getDefaultSendTransaction = exports.defaultSendTransaction = exports.defaultAddressContent = exports.addressTypes = void 0;
|
|
7
7
|
const lodash_clonedeep_1 = __importDefault(require("lodash.clonedeep"));
|
|
8
8
|
const types_1 = require("../types");
|
|
9
9
|
const types_2 = require("../types");
|
|
@@ -112,4 +112,8 @@ exports.defaultFeesShape = {
|
|
|
112
112
|
minimum: 1,
|
|
113
113
|
timestamp: Date.now() - 60 * 30 * 1000 - 1
|
|
114
114
|
};
|
|
115
|
+
const getAddressTypes = () => {
|
|
116
|
+
return (0, lodash_clonedeep_1.default)(Object.values(types_1.EAddressType));
|
|
117
|
+
};
|
|
118
|
+
exports.getAddressTypes = getAddressTypes;
|
|
115
119
|
//# sourceMappingURL=wallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/shapes/wallet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/shapes/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,7 +210,12 @@ class Transaction {
|
|
|
210
210
|
const { inputs } = transactionDataRes;
|
|
211
211
|
for (const [index, input] of inputs.entries()) {
|
|
212
212
|
try {
|
|
213
|
-
|
|
213
|
+
let keyPair = input === null || input === void 0 ? void 0 : input.keyPair;
|
|
214
|
+
if (!keyPair && (input === null || input === void 0 ? void 0 : input.path)) {
|
|
215
|
+
keyPair = bip32Interface.derivePath(input.path);
|
|
216
|
+
}
|
|
217
|
+
if (!keyPair)
|
|
218
|
+
return (0, utils_1.err)('Unable to derive keyPair.');
|
|
214
219
|
psbt.signInput(index, keyPair);
|
|
215
220
|
}
|
|
216
221
|
catch (e) {
|
|
@@ -280,8 +285,13 @@ class Transaction {
|
|
|
280
285
|
const psbt = new bitcoin.Psbt({ network });
|
|
281
286
|
try {
|
|
282
287
|
for (const input of inputs) {
|
|
283
|
-
|
|
284
|
-
|
|
288
|
+
let keyPair = input === null || input === void 0 ? void 0 : input.keyPair;
|
|
289
|
+
if (!keyPair && (input === null || input === void 0 ? void 0 : input.path)) {
|
|
290
|
+
keyPair = root.derivePath(input.path);
|
|
291
|
+
}
|
|
292
|
+
if (!keyPair) {
|
|
293
|
+
return (0, utils_1.err)('Unable to derive keyPair.');
|
|
294
|
+
}
|
|
285
295
|
await this.addInput({
|
|
286
296
|
psbt,
|
|
287
297
|
keyPair,
|
|
@@ -332,6 +342,9 @@ class Transaction {
|
|
|
332
342
|
if (input.value <= constants_1.TRANSACTION_DEFAULTS.dustLimit) {
|
|
333
343
|
return (0, utils_1.err)('Input value is below dust limit.');
|
|
334
344
|
}
|
|
345
|
+
if (input === null || input === void 0 ? void 0 : input.keyPair) {
|
|
346
|
+
keyPair = input.keyPair;
|
|
347
|
+
}
|
|
335
348
|
if (type === 'p2wpkh') {
|
|
336
349
|
const p2wpkh = bitcoin.payments.p2wpkh({
|
|
337
350
|
pubkey: keyPair.publicKey,
|
|
@@ -625,6 +638,35 @@ class Transaction {
|
|
|
625
638
|
utxo.tx_pos === blacklistedUtxo.tx_pos);
|
|
626
639
|
});
|
|
627
640
|
}
|
|
641
|
+
addExternalInputs({ inputs, keyPair }) {
|
|
642
|
+
if (!inputs || !inputs.length)
|
|
643
|
+
return (0, utils_1.err)('No inputs provided.');
|
|
644
|
+
const transaction = this.data;
|
|
645
|
+
const newInputs = inputs.map((input) => {
|
|
646
|
+
return Object.assign(Object.assign({}, input), { keyPair });
|
|
647
|
+
});
|
|
648
|
+
const _inputs = [...transaction.inputs, ...newInputs];
|
|
649
|
+
const feeInfo = this.getTotalFeeObj({
|
|
650
|
+
satsPerByte: this.data.satsPerByte,
|
|
651
|
+
transaction: Object.assign(Object.assign({}, transaction), { inputs: _inputs })
|
|
652
|
+
});
|
|
653
|
+
if (feeInfo.isErr())
|
|
654
|
+
return (0, utils_1.err)(feeInfo.error.message);
|
|
655
|
+
const feeUpdateRes = this.updateFee({
|
|
656
|
+
satsPerByte: 5,
|
|
657
|
+
transaction: Object.assign(Object.assign({}, transaction), { inputs: _inputs })
|
|
658
|
+
});
|
|
659
|
+
if (feeUpdateRes.isErr())
|
|
660
|
+
return (0, utils_1.err)(feeUpdateRes.error.message);
|
|
661
|
+
const updateSendRes = this.updateSendTransaction({
|
|
662
|
+
transaction: {
|
|
663
|
+
inputs: _inputs
|
|
664
|
+
}
|
|
665
|
+
});
|
|
666
|
+
if (updateSendRes.isErr())
|
|
667
|
+
return (0, utils_1.err)(updateSendRes.error.message);
|
|
668
|
+
return (0, utils_1.ok)(_inputs);
|
|
669
|
+
}
|
|
628
670
|
updateFee({ satsPerByte, selectedFeeId = types_1.EFeeId.custom, index = 0, transaction = this.data }) {
|
|
629
671
|
var _a, _b;
|
|
630
672
|
const inputTotal = this.getTransactionInputValue({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transaction/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCASkB;AAClB,sCAAsD;AAEtD,oCAAgE;AAChE,oCAAqD;AACrD,mDAA2D;AAC3D,oCAKkB;AAQlB,iDAA+C;AAE/C,wEAA0C;AAC1C,uDAAyC;AACzC,2EAA4D;AAE5D,OAAO,CAAC,UAAU,CAAC,mBAAG,CAAC,CAAC;AAExB,MAAa,WAAW;IAIvB,YAAY,EAAE,MAAM,EAAsB;QAqK1C,gBAAW,GAAG,CAAC,EACd,WAAW,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,IAAI,CAAC,IAAI,EACvB,gBAAgB,GAAG,KAAK,EAMxB,EAAU,EAAE;YACZ,MAAM,mBAAmB,GAAG,gCAAoB,CAAC,kBAAkB,CAAC;YACpE,IAAI;gBACH,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;gBAGhD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAGhE,IAAI,aAAa,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBACtC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACpC;gBAGD,MAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,cAAc,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,IAAA,+BAAuB,EAAC,eAAe,CAAC,CAAC;gBAE7D,IAAI,gBAAgB,EAAE;oBACrB,WAAW,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnD;gBAED,IAAI,oBAAoB,GAAG,IAAA,oBAAY,EAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC1E,IAAI,WAAW,GAAG,CAAC,EAAE;oBACpB,MAAM,YAAY,GAAG,gCAAoB,CAAC,kBAAkB,CAAC;oBAC7D,IAAI,oBAAoB,GAAG,YAAY;wBACtC,oBAAoB,GAAG,YAAY,CAAC;iBACrC;gBACD,OAAO,oBAAoB,GAAG,WAAW,CAAC;aAC1C;YAAC,WAAM;gBACP,OAAO,mBAAmB,GAAG,WAAW,CAAC;aACzC;QACF,CAAC,CAAC;QAWF,mBAAc,GAAG,CAAC,EACjB,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAC9C,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,IAAI,CAAC,IAAI,EACvB,gBAAgB,GAAG,KAAK,KAMrB,EAAE,EAA2B,EAAE;;YAClC,IAAI;gBACH,IAAI,CAAC,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;oBAC1B,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACxB;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;gBAEhD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBACnB,OAAO,IAAA,UAAE,EAAC;wBACT,QAAQ,EAAE,CAAC;wBACX,oBAAoB,EAAE,CAAC;wBACvB,WAAW,EAAE,CAAC;wBACd,aAAa,EAAE,CAAC;qBAChB,CAAC,CAAC;iBACH;gBAGD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAGhE,IAAI,oBAAoB,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBAC5B,oBAAoB,EAAE,CAAC;iBACvB;gBAED,IAAI,aAAa,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBACtC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACpC;gBAGD,MAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,cAAc,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,IAAA,+BAAuB,EAAC,eAAe,EAAE;oBAC5D,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAE;iBACxE,CAAC,CAAC;gBAEH,IAAI,gBAAgB,EAAE;oBACrB,WAAW,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnD;gBAED,IAAI,oBAAoB,GAAG,IAAA,oBAAY,EAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC1E,IAAI,WAAW,GAAG,CAAC,EAAE;oBACpB,MAAM,YAAY,GAAG,gCAAoB,CAAC,kBAAkB,CAAC;oBAC7D,IAAI,oBAAoB,GAAG,YAAY;wBACtC,oBAAoB,GAAG,YAAY,CAAC;iBACrC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBAEjE,MAAM,SAAS,GACd,YAAY,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;gBACzE,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC5C,oBAAoB;oBACpB,OAAO,EAAE,SAAS;iBAClB,CAAC,CAAC;gBACH,IAAI,aAAa,GAAG,WAAW,EAAE;oBAChC,OAAO,IAAA,UAAE,EAAC;wBACT,QAAQ,EAAE,oBAAoB,GAAG,aAAa;wBAC9C,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;wBAC9D,WAAW,EAAE,aAAa;wBAC1B,aAAa;qBACb,CAAC,CAAC;iBACH;gBACD,OAAO,IAAA,UAAE,EAAC;oBACT,QAAQ,EAAE,oBAAoB,GAAG,WAAW;oBAC5C,oBAAoB;oBACpB,WAAW;oBACX,aAAa;iBACb,CAAC,CAAC;aACH;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAQF,sBAAiB,GAAG,CAAC,EACpB,oBAAoB,EACpB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAInC,EAAU,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QAQF,sBAAiB,GAAG,KAAK,EAAE,EAC1B,eAAe,GAAG,IAAI,CAAC,IAAI,EAC3B,cAAc,GAAG,IAAI,KACE,EAAE,EAAgD,EAAE;YAE3E,IAAA,yBAAiB,EAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAChD,MAAM,EAAE,eAAe,CAAC,MAAM;aAC9B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBAClD,OAAO,EAAE,eAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,IAAI,UAAU,KAAK,CAAC,EAAE;gBACrB,MAAM,OAAO,GAAG,qBAAqB,CAAC;gBACtC,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,CAAC;aACpB;YACD,MAAM,GAAG,GAAG,UAAU,GAAG,WAAW,CAAC;YAGrC,IAAI,GAAG,GAAG,UAAU,EAAE;gBACrB,MAAM,OAAO,GAAG,0CAA0C,CAAC;gBAC3D,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,CAAC;aACpB;YAED,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC,eAAe,CAAC,CAAC;YACzD,IAAI,WAAW,CAAC,KAAK,EAAE;gBAAE,OAAO,IAAA,WAAG,EAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/D,IAAI;gBACH,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBACjE,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAA,WAAG,EAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5C;gBAGD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC;oBACxD,eAAe;oBACf,cAAc,EAAE,iBAAiB,CAAC,KAAK;oBACvC,cAAc,EAAE,cAAc;iBAC9B,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE;oBACpB,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC1B;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;gBAE3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;oBACzC,IAAI;oBACJ,cAAc,EAAE,iBAAiB,CAAC,KAAK;iBACvC,CAAC,CAAC;gBAEH,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE;oBAC1B,OAAO,IAAA,WAAG,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChC;gBAED,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,IAAA,UAAE,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAMF,6BAAwB,GAAG,CAAC,EAAE,MAAM,EAAwB,EAAU,EAAE;YACvE,IAAI;gBACH,IAAI,CAAC,MAAM,EAAE;oBACZ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9B,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;iBAC5B;gBACD,IAAI,MAAM,EAAE;oBACX,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC9D,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;wBACpB,OAAO,QAAQ,CAAC,KAAK,CAAC;qBACtB;iBACD;gBACD,OAAO,CAAC,CAAC;aACT;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,CAAC,CAAC;aACT;QACF,CAAC,CAAC;QAQF,aAAQ,GAAG,KAAK,EAAE,EACjB,IAAI,EACJ,cAAc,EAId,EAAyB,EAAE;YAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC;YAErC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;YACtC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC9C,IAAI;oBACH,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;iBAC/B;gBAAC,OAAO,CAAC,EAAE;oBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;iBACd;aACD;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,OAAO,IAAA,UAAE,EAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;QASF,kCAA6B,GAAG,KAAK,EAAE,EACtC,eAAe,EACf,cAAc,EACd,cAAc,GAAG,IAAI,EAKrB,EAAyB,EAAE;YAC3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;YACtD,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;YAGjD,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAC7C,MAAM;aACN,CAAC,CAAC;YAGH,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBAClD,OAAO;aACP,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,wBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAG/C,IAAI,OAAO,GAAe,OAAO,CAAC,MAAM,EAAE,CAAC;YAG3C,IAAI,aAAa,EAAE;gBAClB,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;gBAGzD,IAAI,kBAAkB,GAAG,gCAAoB,CAAC,SAAS,EAAE;oBACxD,OAAO,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,OAAO,CAAC,MAAM;qBACrB,CAAC,CAAC;iBACH;aAGD;iBAAM,IAAI,WAAW,GAAG,GAAG,GAAG,OAAO,EAAE;gBAEvC,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;gBAChD,IAAI,SAAS,GAAG,gCAAoB,CAAC,SAAS,EAAE;oBAC/C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAC/D,IAAI,gBAAgB,CAAC,KAAK,EAAE,EAAE;wBAC7B,OAAO,IAAA,WAAG,EAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBAC3C;oBACD,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,SAAS;wBAChB,KAAK,EAAE,OAAO,CAAC,MAAM;qBACrB,CAAC,CAAC;iBACH;aACD;YAGD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;gBACrC,MAAM,SAAS,GAAG,CAAC,CAAC;gBAEpB,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,SAAS,EAAE;oBACnD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC;iBACjD;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACpC,IAAI,EAAE,CAAC,IAAI,CAAC;oBACZ,OAAO;iBACP,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;aACzE;YAED,IAAI,CAAC,cAAc,EAAE;gBACpB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBACjE,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAA,WAAG,EAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5C;gBACD,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC;aACzC;YAED,MAAM,IAAI,GAAG,cAAc,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAG3C,IAAI;gBACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACxB,MAAM,OAAO,GAAmB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACtD,MAAM,IAAI,CAAC,QAAQ,CAAC;wBACnB,IAAI;wBACJ,OAAO;wBACP,KAAK;qBACL,CAAC,CAAC;iBACH;aACD;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;YAGD,IAAA,uBAAe,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAGzC,IAAI,cAAc,EAAE;gBACnB,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;aAChC;YAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;gBAE1B,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI;oBACH,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;iBAC7B;gBAAC,OAAO,CAAC,EAAE,GAAE;gBACd,IAAI,UAAU,EAAE;oBACf,IAAI,MAAM,CAAC,MAAM,EAAE;wBAClB,IAAI,CAAC,SAAS,CAAC;4BACd,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC;yBACxB,CAAC,CAAC;qBACH;iBACD;qBAAM;oBACN,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;wBACnC,IAAI,CAAC,SAAS,CAAC;4BACd,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,KAAK,EAAE,MAAM,CAAC,KAAK;yBACnB,CAAC,CAAC;qBACH;iBACD;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,IAAA,UAAE,EAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;QAEF,aAAQ,GAAG,KAAK,EAAE,EACjB,IAAI,EACJ,OAAO,EACP,KAAK,EACM,EAA2B,EAAE;YACxC,IAAI;gBACH,MAAM,OAAO,GAAG,wBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2CAAc,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE/C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBACjB,OAAO,IAAA,WAAG,EAAC,oBAAoB,CAAC,CAAC;iBACjC;gBAED,IAAI,KAAK,CAAC,KAAK,IAAI,gCAAoB,CAAC,SAAS,EAAE;oBAClD,OAAO,IAAA,WAAG,EAAC,kCAAkC,CAAC,CAAC;iBAC/C;gBAED,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACtB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACtC,MAAM,EAAE,OAAO,CAAC,SAAS;wBACzB,OAAO;qBACP,CAAC,CAAC;oBACH,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;wBACpB,OAAO,IAAA,WAAG,EAAC,6BAA6B,CAAC,CAAC;qBAC1C;oBACD,IAAI,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,WAAW,EAAE;4BACZ,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,KAAK,EAAE,KAAK,CAAC,KAAK;yBAClB;qBACD,CAAC,CAAC;iBACH;gBAED,IAAI,IAAI,KAAK,MAAM,EAAE;oBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACtC,MAAM,EAAE,OAAO,CAAC,SAAS;wBACzB,OAAO;qBACP,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;oBAChE,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE;wBAClB,OAAO,IAAA,WAAG,EAAC,2BAA2B,CAAC,CAAC;qBACxC;oBACD,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE;wBAClB,OAAO,IAAA,WAAG,EAAC,kCAAkC,CAAC,CAAC;qBAC/C;oBACD,IAAI,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,WAAW,EAAE;4BACZ,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,KAAK,CAAC,KAAK;yBAClB;wBACD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;qBAChC,CAAC,CAAC;iBACH;gBAED,IAAI,IAAI,KAAK,OAAO,EAAE;oBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;wBAC/D,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;qBACtC,CAAC,CAAC;oBACH,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;wBACxB,OAAO,IAAA,WAAG,EAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBACtC;oBACD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,cAAc;qBACd,CAAC,CAAC;iBACH;gBACD,OAAO,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;aACrB;YAAC,WAAM;gBACP,OAAO,IAAA,WAAG,EAAC,sBAAsB,CAAC,CAAC;aACnC;QACF,CAAC,CAAC;QASF,cAAS,GAAG,KAAK,EAAE,EAClB,OAAO,EACP,KAAK,EACL,KAAK,GAAG,CAAC,EACA,EAA2B,EAAE;;YACtC,IAAI,KAAK,IAAI,gCAAoB,CAAC,SAAS,EAAE;gBAC5C,OAAO,IAAA,WAAG,EAAC,mCAAmC,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;gBAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAAE,OAAO,IAAA,WAAG,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACzD;YACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;gBACjC,WAAW,EAAE;oBACZ,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;iBACpC;aACD,CAAC,CAAC;QACJ,CAAC,CAAC;QAOF,8BAAyB,GAAG,CAAC,EAC5B,OAAO,KAGJ,EAAE,EAAU,EAAE;YACjB,IAAI;gBACH,IAAI,CAAC,OAAO,EAAE;oBACb,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9B,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;iBAC9B;gBACD,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/D,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;oBACpB,OAAO,QAAQ,CAAC,KAAK,CAAC;iBACtB;gBACD,OAAO,CAAC,CAAC;aACT;YAAC,WAAM;gBACP,OAAO,CAAC,CAAC;aACT;QACF,CAAC,CAAC;QAOF,0BAAqB,GAAG,CAAC,EACxB,WAAW,EAGX,EAAkB,EAAE;YACpB,IAAI;gBAEH,IAAI,WAAW,CAAC,OAAO,EAAE;oBACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACpD,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;oBAChC,CAAC,CAAC,CAAC;oBACH,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;iBAC9B;gBAED,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,GACV,WAAW,CACd,CAAC;gBAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE7D,OAAO,IAAA,UAAE,EAAC,qBAAqB,CAAC,CAAC;aACjC;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAoFF,YAAO,GAAG,KAAK,EAAE,EAChB,OAAO,EACP,WAAW,EACX,KAAK,GAAG,CAAC,EACT,WAAW,EACX,GAAG,GAAG,KAAK,KAOR,EAAE,EAA2B,EAAE;;YAClC,IAAI;gBACH,IAAI,CAAC,WAAW,EAAE;oBACjB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACxB;gBACD,IAAI,CAAC,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;oBAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtD,IAAI,QAAQ,CAAC,KAAK,EAAE;wBAAE,OAAO,IAAA,WAAG,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACzD;gBACD,MAAM,OAAO,GAAG,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;gBAE1C,IAAI,CAAC,OAAO,EAAE;oBACb,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC;iBACxC;gBAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAC/C,WAAW,EAAE,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,mCAAI,CAAC;oBACzD,aAAa,EAAE,WAAW,CAAC,aAAa;oBACxC,WAAW;iBACX,CAAC,CAAC;gBACH,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAA,WAAG,EAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBACpC;gBACD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC;gBAEhD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBACrB,IAAI,CAAC,qBAAqB,CAAC;wBAC1B,WAAW,EAAE;4BACZ,GAAG,EAAE,IAAI;4BACT,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;4BAC5C,GAAG;yBACH;qBACD,CAAC,CAAC;iBACH;qBAAM;oBACN,IAAI,CAAC,qBAAqB,CAAC;wBAC1B,WAAW,EAAE;4BACZ,GAAG,EAAE,KAAK;yBACV;qBACD,CAAC,CAAC;iBACH;gBAED,OAAO,IAAA,UAAE,EAAC,0CAA0C,CAAC,CAAC;aACtD;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAQF,6BAAwB,GAAG,CAAC,EAC3B,WAAW,EACX,aAAa,EAIb,EAAgE,EAAE;;YAClE,IAAI;gBACH,IAAI,CAAC,WAAW,EAAE;oBACjB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACxB;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC;gBAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;oBAChD,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;gBAEzE,IAAI,KAAK,GAAY,EAAE,CAAC;gBAExB,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,IAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAC,MAAM,CAAA,EAAE;oBAC5D,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;iBAC3B;qBAAM;oBACN,KAAK,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,mCAAI,EAAE,CAAC;iBACnC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAA,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,CAAC,aAAa,CAAC,mCAAI,CAAC,CAAC;gBAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC5B,WAAW;oBACX,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,WAAW,kCACP,WAAW,KACd,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,KAAK,EACb,aAAa;wBACb,WAAW,GACX;iBACD,CAAC,CAAC;gBAEH,IAAI,MAAM,IAAI,GAAG,EAAE;oBAClB,OAAO,IAAA,WAAG,EACT,gBAAgB,MAAM,gDAAgD,GAAG,OAAO,WAAW,gBAAgB,CAC3G,CAAC;iBACF;gBAED,MAAM,SAAS,GAAG;oBACjB,MAAM,EAAE,MAAM,GAAG,GAAG;oBACpB,GAAG;oBACH,WAAW;iBACX,CAAC;gBAEF,OAAO,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;aACrB;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QA57BD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAA,kCAAyB,GAAE,CAAC;IAC1C,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAWM,KAAK,CAAC,gBAAgB,CAAC,EAC7B,aAAa,EACb,KAAK,EACL,GAAG,GAAG,KAAK,EACX,WAAW,GAAG,CAAC,EACf,OAAO,KACe,EAAE;;QACxB,IAAI;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAElD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAExC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YAG9C,IAAI,MAAM,GAAY,EAAE,CAAC;YACzB,IAAI,aAAa,EAAE;gBAElB,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC5C,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;aACH;iBAAM,IAAI,KAAK,EAAE;gBACjB,MAAM,GAAG,KAAK,CAAC;aACf;iBAAM;gBACN,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;aAC7B;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAEnB,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;iBAC5B;qBAAM;oBAEN,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAC1D;aACD;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAA,WAAG,EAAC,0CAA0C,CAAC,CAAC;aACvD;YAED,MAAM,sBAAsB,GAAG,aAAa,CAAC,eAAe,CAAC;YAE7D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;YACpD,IAAI,eAAe,GAAe,EAAE,CAAC;YACrC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,eAAe,mCACX,eAAe,GACf,sBAAsB,CAAC,GAAG,CAAC,CAC9B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAC5D,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CACxB,CAAC;YAEF,MAAM,yBAAyB,GAC9B,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAE/C,MAAM,aAAa,GAAG,yBAAyB,CAAC,OAAO,CAAC;YACxD,IAAI,CAAC,aAAa,EAAE;gBACnB,OAAO,IAAA,WAAG,EAAC,mDAAmD,CAAC,CAAC;aAChE;YAED,MAAM,gBAAgB,GAAG,MAAA,aAAa,CAAC,WAAW,0CAAE,gBAAgB,CAAC;YAErE,OAAO,GAAG,OAAO,KAAI,MAAA,aAAa,CAAC,WAAW,0CAAE,OAAO,CAAA,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,gBAAgB,EAAE;gBAEtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;oBACnC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACnE,OAAO,MAAM,CAAC;qBACd;gBACF,CAAC,CAAC,CAAC;aACH;YAGD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC5B,WAAW;gBACX,OAAO,EAAE,EAAE;gBACX,WAAW,kCACP,WAAW,KACd,MAAM;oBACN,OAAO,GACP;aACD,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG;gBACf,MAAM;gBACN,aAAa;gBACb,GAAG;gBACH,OAAO;gBACP,GAAG;gBACH,WAAW;aACX,CAAC;YAEF,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,GACV,OAAO,CACV,CAAC;YAGF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAE7D,OAAO,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;SACd;IACF,CAAC;IAMD,KAAK,CAAC,oBAAoB;QACzB,IAAI,CAAC,KAAK,GAAG,IAAA,kCAAyB,GAAE,CAAC;QACzC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,IAAA,UAAE,EAAC,oBAAoB,CAAC,CAAC;IACjC,CAAC;IAMD,sBAAsB,CAAC,KAAe;QACrC,IAAI,CAAC,KAAK,EAAE;YACX,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SAChC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC5B,CAAC,eAAe,EAAE,EAAE,CACnB,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO;gBACxC,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;gBACtC,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO;gBACxC,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,CACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IA6lBM,SAAS,CAAC,EAChB,WAAW,EACX,aAAa,GAAG,cAAM,CAAC,MAAM,EAC7B,KAAK,GAAG,CAAC,EACT,WAAW,GAAG,IAAI,CAAC,IAAI,EAMvB;;QACA,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAChD,MAAM,EAAE,WAAW,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAC9C,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE;YAC3B,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC;SACxC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAGvE,IAAI,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAA,WAAG,EACT,mGAAmG,CACnG,CAAC;SACF;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAC5D,OAAO;SACP,CAAC,CAAC;QAGH,IAAI,MAAM,IAAI,qBAAqB,GAAG,CAAC,EAAE;YACxC,OAAO,IAAA,WAAG,EACT,2GAA2G,CAC3G,CAAC;SACF;QAED,MAAM,cAAc,GAAG,qBAAqB,GAAG,MAAM,CAAC;QACtD,MAAM,YAAY,GAA8B;YAC/C,WAAW;YACX,GAAG,EAAE,MAAM;YACX,aAAa;SACb,CAAC;QAEF,IAAI,GAAG,EAAE;YAER,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SACxE;QAGD,IAAI,GAAG,IAAI,cAAc,IAAI,UAAU,EAAE;YACxC,IAAI,CAAC,qBAAqB,CAAC;gBAC1B,WAAW,EAAE,YAAY;aACzB,CAAC,CAAC;YACH,OAAO,IAAA,UAAE,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;SAC3B;QAED,OAAO,IAAA,WAAG,EACT,uFAAuF,CACvF,CAAC;IACH,CAAC;IA8ID,gBAAgB,CAAC,EAChB,WAAW,EACX,aAAa,GAAG,cAAM,CAAC,IAAI,EAC3B,WAAW,GAAG,IAAI,CAAC,IAAI,EAKvB;;QACA,IAAI;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAChD,MAAM,EAAE,WAAW,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC;YAE1B,MAAM,MAAM,GAAG,MAAA,WAAW,CAAC,MAAM,mCAAI,EAAE,CAAC;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC5B,WAAW;gBACX,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,WAAW,kCACP,WAAW,KACd,GAAG,EAAE,IAAI,EACT,MAAM;oBACN,aAAa;oBACb,WAAW,GACX;aACD,CAAC,CAAC;YAEH,IAAI,MAAM,IAAI,GAAG,EAAE;gBAClB,OAAO,IAAA,WAAG,EACT,gBAAgB,MAAM,gDAAgD,GAAG,OAAO,WAAW,gBAAgB,CAC3G,CAAC;aACF;YAED,MAAM,SAAS,GAAG;gBACjB,MAAM,EAAE,MAAM,GAAG,GAAG;gBACpB,GAAG;aACH,CAAC;YAEF,OAAO,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;SACrB;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;SACd;IACF,CAAC;IAOD,KAAK,CAAC,SAAS,CAAC,EACf,IAAI,EACJ,WAAW,EAIX;;QACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC5C,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACxC,GAAG,EAAE,IAAI;SACT,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,cAAc,CAAC,KAAK,EAAE,EAAE;YAC3B,OAAO,IAAA,WAAG,EAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,KAAK,iDACN,IAAI,CAAC,KAAK,GACV,QAAQ,KACX,WAAW,EAAE,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,mCAAI,CAAC,EACvD,SAAS,EAAE,kBAAU,CAAC,IAAI,GAC1B,CAAC;QAGF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,cAAc,CAAC,KAAK;SAC7B,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,IAAA,WAAG,EAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC1C;QAED,OAAO,IAAA,UAAE,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACD;AA/hCD,kCA+hCC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transaction/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCASkB;AAClB,sCAAsD;AAEtD,oCAAgE;AAChE,oCAAqD;AACrD,mDAA2D;AAC3D,oCAKkB;AAQlB,iDAA+C;AAE/C,wEAA0C;AAC1C,uDAAyC;AACzC,2EAA4D;AAG5D,OAAO,CAAC,UAAU,CAAC,mBAAG,CAAC,CAAC;AAExB,MAAa,WAAW;IAIvB,YAAY,EAAE,MAAM,EAAsB;QAsK1C,gBAAW,GAAG,CAAC,EACd,WAAW,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,IAAI,CAAC,IAAI,EACvB,gBAAgB,GAAG,KAAK,EAMxB,EAAU,EAAE;YACZ,MAAM,mBAAmB,GAAG,gCAAoB,CAAC,kBAAkB,CAAC;YACpE,IAAI;gBACH,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;gBAGhD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAGhE,IAAI,aAAa,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBACtC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACpC;gBAGD,MAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,cAAc,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,IAAA,+BAAuB,EAAC,eAAe,CAAC,CAAC;gBAE7D,IAAI,gBAAgB,EAAE;oBACrB,WAAW,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnD;gBAED,IAAI,oBAAoB,GAAG,IAAA,oBAAY,EAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC1E,IAAI,WAAW,GAAG,CAAC,EAAE;oBACpB,MAAM,YAAY,GAAG,gCAAoB,CAAC,kBAAkB,CAAC;oBAC7D,IAAI,oBAAoB,GAAG,YAAY;wBACtC,oBAAoB,GAAG,YAAY,CAAC;iBACrC;gBACD,OAAO,oBAAoB,GAAG,WAAW,CAAC;aAC1C;YAAC,WAAM;gBACP,OAAO,mBAAmB,GAAG,WAAW,CAAC;aACzC;QACF,CAAC,CAAC;QAWF,mBAAc,GAAG,CAAC,EACjB,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAC9C,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,IAAI,CAAC,IAAI,EACvB,gBAAgB,GAAG,KAAK,KAMrB,EAAE,EAA2B,EAAE;;YAClC,IAAI;gBACH,IAAI,CAAC,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;oBAC1B,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACxB;gBACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;gBACxC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;gBAEhD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBACnB,OAAO,IAAA,UAAE,EAAC;wBACT,QAAQ,EAAE,CAAC;wBACX,oBAAoB,EAAE,CAAC;wBACvB,WAAW,EAAE,CAAC;wBACd,aAAa,EAAE,CAAC;qBAChB,CAAC,CAAC;iBACH;gBAGD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAGhE,IAAI,oBAAoB,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;oBAC5B,oBAAoB,EAAE,CAAC;iBACvB;gBAED,IAAI,aAAa,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBACtC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACpC;gBAGD,MAAM,UAAU,GAAG,IAAA,+BAAuB,EAAC,cAAc,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,IAAA,+BAAuB,EAAC,eAAe,EAAE;oBAC5D,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAE;iBACxE,CAAC,CAAC;gBAEH,IAAI,gBAAgB,EAAE;oBACrB,WAAW,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnD;gBAED,IAAI,oBAAoB,GAAG,IAAA,oBAAY,EAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC1E,IAAI,WAAW,GAAG,CAAC,EAAE;oBACpB,MAAM,YAAY,GAAG,gCAAoB,CAAC,kBAAkB,CAAC;oBAC7D,IAAI,oBAAoB,GAAG,YAAY;wBACtC,oBAAoB,GAAG,YAAY,CAAC;iBACrC;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBAEjE,MAAM,SAAS,GACd,YAAY,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;gBACzE,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC5C,oBAAoB;oBACpB,OAAO,EAAE,SAAS;iBAClB,CAAC,CAAC;gBACH,IAAI,aAAa,GAAG,WAAW,EAAE;oBAChC,OAAO,IAAA,UAAE,EAAC;wBACT,QAAQ,EAAE,oBAAoB,GAAG,aAAa;wBAC9C,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;wBAC9D,WAAW,EAAE,aAAa;wBAC1B,aAAa;qBACb,CAAC,CAAC;iBACH;gBACD,OAAO,IAAA,UAAE,EAAC;oBACT,QAAQ,EAAE,oBAAoB,GAAG,WAAW;oBAC5C,oBAAoB;oBACpB,WAAW;oBACX,aAAa;iBACb,CAAC,CAAC;aACH;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAQF,sBAAiB,GAAG,CAAC,EACpB,oBAAoB,EACpB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAInC,EAAU,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QAQF,sBAAiB,GAAG,KAAK,EAAE,EAC1B,eAAe,GAAG,IAAI,CAAC,IAAI,EAC3B,cAAc,GAAG,IAAI,KACE,EAAE,EAAgD,EAAE;YAE3E,IAAA,yBAAiB,EAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAChD,MAAM,EAAE,eAAe,CAAC,MAAM;aAC9B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBAClD,OAAO,EAAE,eAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,IAAI,UAAU,KAAK,CAAC,EAAE;gBACrB,MAAM,OAAO,GAAG,qBAAqB,CAAC;gBACtC,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,CAAC;aACpB;YACD,MAAM,GAAG,GAAG,UAAU,GAAG,WAAW,CAAC;YAGrC,IAAI,GAAG,GAAG,UAAU,EAAE;gBACrB,MAAM,OAAO,GAAG,0CAA0C,CAAC;gBAC3D,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,CAAC;aACpB;YAED,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC,eAAe,CAAC,CAAC;YACzD,IAAI,WAAW,CAAC,KAAK,EAAE;gBAAE,OAAO,IAAA,WAAG,EAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/D,IAAI;gBACH,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBACjE,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAA,WAAG,EAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5C;gBAGD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC;oBACxD,eAAe;oBACf,cAAc,EAAE,iBAAiB,CAAC,KAAK;oBACvC,cAAc,EAAE,cAAc;iBAC9B,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE;oBACpB,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC1B;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;gBAE3B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;oBACzC,IAAI;oBACJ,cAAc,EAAE,iBAAiB,CAAC,KAAK;iBACvC,CAAC,CAAC;gBAEH,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE;oBAC1B,OAAO,IAAA,WAAG,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAChC;gBAED,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;gBACvB,OAAO,IAAA,UAAE,EAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAMF,6BAAwB,GAAG,CAAC,EAAE,MAAM,EAAwB,EAAU,EAAE;YACvE,IAAI;gBACH,IAAI,CAAC,MAAM,EAAE;oBACZ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9B,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;iBAC5B;gBACD,IAAI,MAAM,EAAE;oBACX,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC9D,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;wBACpB,OAAO,QAAQ,CAAC,KAAK,CAAC;qBACtB;iBACD;gBACD,OAAO,CAAC,CAAC;aACT;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,CAAC,CAAC;aACT;QACF,CAAC,CAAC;QAQF,aAAQ,GAAG,KAAK,EAAE,EACjB,IAAI,EACJ,cAAc,EAId,EAAyB,EAAE;YAC3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC;YAErC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;YACtC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC9C,IAAI;oBACH,IAAI,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;oBAC7B,IAAI,CAAC,OAAO,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA,EAAE;wBAC5B,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAChD;oBACD,IAAI,CAAC,OAAO;wBAAE,OAAO,IAAA,WAAG,EAAC,2BAA2B,CAAC,CAAC;oBACtD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;iBAC/B;gBAAC,OAAO,CAAC,EAAE;oBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;iBACd;aACD;YAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,OAAO,IAAA,UAAE,EAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;QASF,kCAA6B,GAAG,KAAK,EAAE,EACtC,eAAe,EACf,cAAc,EACd,cAAc,GAAG,IAAI,EAKrB,EAAyB,EAAE;YAC3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;YACtD,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;YAGjD,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAC7C,MAAM;aACN,CAAC,CAAC;YAGH,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC;gBAClD,OAAO;aACP,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,wBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAG/C,IAAI,OAAO,GAAe,OAAO,CAAC,MAAM,EAAE,CAAC;YAG3C,IAAI,aAAa,EAAE;gBAClB,MAAM,kBAAkB,GAAG,OAAO,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;gBAGzD,IAAI,kBAAkB,GAAG,gCAAoB,CAAC,SAAS,EAAE;oBACxD,OAAO,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,OAAO,CAAC,MAAM;qBACrB,CAAC,CAAC;iBACH;aAGD;iBAAM,IAAI,WAAW,GAAG,GAAG,GAAG,OAAO,EAAE;gBAEvC,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;gBAChD,IAAI,SAAS,GAAG,gCAAoB,CAAC,SAAS,EAAE;oBAC/C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;oBAC/D,IAAI,gBAAgB,CAAC,KAAK,EAAE,EAAE;wBAC7B,OAAO,IAAA,WAAG,EAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBAC3C;oBACD,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,SAAS;wBAChB,KAAK,EAAE,OAAO,CAAC,MAAM;qBACrB,CAAC,CAAC;iBACH;aACD;YAGD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;gBACrC,MAAM,SAAS,GAAG,CAAC,CAAC;gBAEpB,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,SAAS,EAAE;oBACnD,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC;iBACjD;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACpC,IAAI,EAAE,CAAC,IAAI,CAAC;oBACZ,OAAO;iBACP,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;aACzE;YAED,IAAI,CAAC,cAAc,EAAE;gBACpB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBACjE,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAA,WAAG,EAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBAC5C;gBACD,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC;aACzC;YAED,MAAM,IAAI,GAAG,cAAc,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAG3C,IAAI;gBACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC3B,IAAI,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;oBAC7B,IAAI,CAAC,OAAO,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA,EAAE;wBAC5B,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBACtC;oBACD,IAAI,CAAC,OAAO,EAAE;wBACb,OAAO,IAAA,WAAG,EAAC,2BAA2B,CAAC,CAAC;qBACxC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC;wBACnB,IAAI;wBACJ,OAAO;wBACP,KAAK;qBACL,CAAC,CAAC;iBACH;aACD;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;YAGD,IAAA,uBAAe,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAGzC,IAAI,cAAc,EAAE;gBACnB,OAAO,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;aAChC;YAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;gBAE1B,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI;oBACH,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;iBAC7B;gBAAC,OAAO,CAAC,EAAE,GAAE;gBACd,IAAI,UAAU,EAAE;oBACf,IAAI,MAAM,CAAC,MAAM,EAAE;wBAClB,IAAI,CAAC,SAAS,CAAC;4BACd,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,CAAC;yBACxB,CAAC,CAAC;qBACH;iBACD;qBAAM;oBACN,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE;wBACnC,IAAI,CAAC,SAAS,CAAC;4BACd,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,KAAK,EAAE,MAAM,CAAC,KAAK;yBACnB,CAAC,CAAC;qBACH;iBACD;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,IAAA,UAAE,EAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;QAEF,aAAQ,GAAG,KAAK,EAAE,EACjB,IAAI,EACJ,OAAO,EACP,KAAK,EACM,EAA2B,EAAE;YACxC,IAAI;gBACH,MAAM,OAAO,GAAG,wBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2CAAc,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE/C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBACjB,OAAO,IAAA,WAAG,EAAC,oBAAoB,CAAC,CAAC;iBACjC;gBAED,IAAI,KAAK,CAAC,KAAK,IAAI,gCAAoB,CAAC,SAAS,EAAE;oBAClD,OAAO,IAAA,WAAG,EAAC,kCAAkC,CAAC,CAAC;iBAC/C;gBAGD,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE;oBACnB,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;iBACxB;gBAED,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACtB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACtC,MAAM,EAAE,OAAO,CAAC,SAAS;wBACzB,OAAO;qBACP,CAAC,CAAC;oBACH,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;wBACpB,OAAO,IAAA,WAAG,EAAC,6BAA6B,CAAC,CAAC;qBAC1C;oBACD,IAAI,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,WAAW,EAAE;4BACZ,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,KAAK,EAAE,KAAK,CAAC,KAAK;yBAClB;qBACD,CAAC,CAAC;iBACH;gBAED,IAAI,IAAI,KAAK,MAAM,EAAE;oBACpB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACtC,MAAM,EAAE,OAAO,CAAC,SAAS;wBACzB,OAAO;qBACP,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;oBAChE,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE;wBAClB,OAAO,IAAA,WAAG,EAAC,2BAA2B,CAAC,CAAC;qBACxC;oBACD,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE;wBAClB,OAAO,IAAA,WAAG,EAAC,kCAAkC,CAAC,CAAC;qBAC/C;oBACD,IAAI,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,WAAW,EAAE;4BACZ,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,KAAK,CAAC,KAAK;yBAClB;wBACD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;qBAChC,CAAC,CAAC;iBACH;gBAED,IAAI,IAAI,KAAK,OAAO,EAAE;oBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;wBAC/D,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;qBACtC,CAAC,CAAC;oBACH,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;wBACxB,OAAO,IAAA,WAAG,EAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBACtC;oBACD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,OAAO;wBACnB,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,cAAc;qBACd,CAAC,CAAC;iBACH;gBACD,OAAO,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;aACrB;YAAC,WAAM;gBACP,OAAO,IAAA,WAAG,EAAC,sBAAsB,CAAC,CAAC;aACnC;QACF,CAAC,CAAC;QAwDF,cAAS,GAAG,KAAK,EAAE,EAClB,OAAO,EACP,KAAK,EACL,KAAK,GAAG,CAAC,EACA,EAA2B,EAAE;;YACtC,IAAI,KAAK,IAAI,gCAAoB,CAAC,SAAS,EAAE;gBAC5C,OAAO,IAAA,WAAG,EAAC,mCAAmC,CAAC,CAAC;aAChD;YACD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;gBAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAAE,OAAO,IAAA,WAAG,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACzD;YACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;gBACjC,WAAW,EAAE;oBACZ,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;iBACpC;aACD,CAAC,CAAC;QACJ,CAAC,CAAC;QAOF,8BAAyB,GAAG,CAAC,EAC5B,OAAO,KAGJ,EAAE,EAAU,EAAE;YACjB,IAAI;gBACH,IAAI,CAAC,OAAO,EAAE;oBACb,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9B,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;iBAC9B;gBACD,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/D,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;oBACpB,OAAO,QAAQ,CAAC,KAAK,CAAC;iBACtB;gBACD,OAAO,CAAC,CAAC;aACT;YAAC,WAAM;gBACP,OAAO,CAAC,CAAC;aACT;QACF,CAAC,CAAC;QAOF,0BAAqB,GAAG,CAAC,EACxB,WAAW,EAGX,EAAkB,EAAE;YACpB,IAAI;gBAEH,IAAI,WAAW,CAAC,OAAO,EAAE;oBACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACpD,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAEtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;oBAChC,CAAC,CAAC,CAAC;oBACH,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;iBAC9B;gBAED,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,GACV,WAAW,CACd,CAAC;gBAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE7D,OAAO,IAAA,UAAE,EAAC,qBAAqB,CAAC,CAAC;aACjC;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAoFF,YAAO,GAAG,KAAK,EAAE,EAChB,OAAO,EACP,WAAW,EACX,KAAK,GAAG,CAAC,EACT,WAAW,EACX,GAAG,GAAG,KAAK,KAOR,EAAE,EAA2B,EAAE;;YAClC,IAAI;gBACH,IAAI,CAAC,WAAW,EAAE;oBACjB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACxB;gBACD,IAAI,CAAC,CAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE;oBAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBACtD,IAAI,QAAQ,CAAC,KAAK,EAAE;wBAAE,OAAO,IAAA,WAAG,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACzD;gBACD,MAAM,OAAO,GAAG,MAAA,WAAW,CAAC,OAAO,mCAAI,EAAE,CAAC;gBAE1C,IAAI,CAAC,OAAO,EAAE;oBACb,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC;iBACxC;gBAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAC/C,WAAW,EAAE,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,mCAAI,CAAC;oBACzD,aAAa,EAAE,WAAW,CAAC,aAAa;oBACxC,WAAW;iBACX,CAAC,CAAC;gBACH,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE;oBAC9B,OAAO,IAAA,WAAG,EAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBACpC;gBACD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC;gBAEhD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;oBACrB,IAAI,CAAC,qBAAqB,CAAC;wBAC1B,WAAW,EAAE;4BACZ,GAAG,EAAE,IAAI;4BACT,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;4BAC5C,GAAG;yBACH;qBACD,CAAC,CAAC;iBACH;qBAAM;oBACN,IAAI,CAAC,qBAAqB,CAAC;wBAC1B,WAAW,EAAE;4BACZ,GAAG,EAAE,KAAK;yBACV;qBACD,CAAC,CAAC;iBACH;gBAED,OAAO,IAAA,UAAE,EAAC,0CAA0C,CAAC,CAAC;aACtD;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QAQF,6BAAwB,GAAG,CAAC,EAC3B,WAAW,EACX,aAAa,EAIb,EAAgE,EAAE;;YAClE,IAAI;gBACH,IAAI,CAAC,WAAW,EAAE;oBACjB,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;iBACxB;gBAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC;gBAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;oBAChD,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;gBAEzE,IAAI,KAAK,GAAY,EAAE,CAAC;gBAExB,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,IAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAC,MAAM,CAAA,EAAE;oBAC5D,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;iBAC3B;qBAAM;oBACN,KAAK,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,mCAAI,EAAE,CAAC;iBACnC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAA,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,CAAC,aAAa,CAAC,mCAAI,CAAC,CAAC;gBAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC5B,WAAW;oBACX,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,WAAW,kCACP,WAAW,KACd,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,KAAK,EACb,aAAa;wBACb,WAAW,GACX;iBACD,CAAC,CAAC;gBAEH,IAAI,MAAM,IAAI,GAAG,EAAE;oBAClB,OAAO,IAAA,WAAG,EACT,gBAAgB,MAAM,gDAAgD,GAAG,OAAO,WAAW,gBAAgB,CAC3G,CAAC;iBACF;gBAED,MAAM,SAAS,GAAG;oBACjB,MAAM,EAAE,MAAM,GAAG,GAAG;oBACpB,GAAG;oBACH,WAAW;iBACX,CAAC;gBAEF,OAAO,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;aACrB;YAAC,OAAO,CAAC,EAAE;gBACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;aACd;QACF,CAAC,CAAC;QA1/BD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAA,kCAAyB,GAAE,CAAC;IAC1C,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAYM,KAAK,CAAC,gBAAgB,CAAC,EAC7B,aAAa,EACb,KAAK,EACL,GAAG,GAAG,KAAK,EACX,WAAW,GAAG,CAAC,EACf,OAAO,KACe,EAAE;;QACxB,IAAI;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAElD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAExC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YAG9C,IAAI,MAAM,GAAY,EAAE,CAAC;YACzB,IAAI,aAAa,EAAE;gBAElB,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC5C,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;aACH;iBAAM,IAAI,KAAK,EAAE;gBACjB,MAAM,GAAG,KAAK,CAAC;aACf;iBAAM;gBACN,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;aAC7B;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAEnB,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;iBAC5B;qBAAM;oBAEN,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBAC1D;aACD;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAA,WAAG,EAAC,0CAA0C,CAAC,CAAC;aACvD;YAED,MAAM,sBAAsB,GAAG,aAAa,CAAC,eAAe,CAAC;YAE7D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAC,CAAC;YACpD,IAAI,eAAe,GAAe,EAAE,CAAC;YACrC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/B,eAAe,mCACX,eAAe,GACf,sBAAsB,CAAC,GAAG,CAAC,CAC9B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAC5D,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CACxB,CAAC;YAEF,MAAM,yBAAyB,GAC9B,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAE/C,MAAM,aAAa,GAAG,yBAAyB,CAAC,OAAO,CAAC;YACxD,IAAI,CAAC,aAAa,EAAE;gBACnB,OAAO,IAAA,WAAG,EAAC,mDAAmD,CAAC,CAAC;aAChE;YAED,MAAM,gBAAgB,GAAG,MAAA,aAAa,CAAC,WAAW,0CAAE,gBAAgB,CAAC;YAErE,OAAO,GAAG,OAAO,KAAI,MAAA,aAAa,CAAC,WAAW,0CAAE,OAAO,CAAA,IAAI,EAAE,CAAC;YAC9D,IAAI,CAAC,gBAAgB,EAAE;gBAEtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;oBACnC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACnE,OAAO,MAAM,CAAC;qBACd;gBACF,CAAC,CAAC,CAAC;aACH;YAGD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC5B,WAAW;gBACX,OAAO,EAAE,EAAE;gBACX,WAAW,kCACP,WAAW,KACd,MAAM;oBACN,OAAO,GACP;aACD,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG;gBACf,MAAM;gBACN,aAAa;gBACb,GAAG;gBACH,OAAO;gBACP,GAAG;gBACH,WAAW;aACX,CAAC;YAEF,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,GACV,OAAO,CACV,CAAC;YAGF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAE7D,OAAO,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;SACd;IACF,CAAC;IAMD,KAAK,CAAC,oBAAoB;QACzB,IAAI,CAAC,KAAK,GAAG,IAAA,kCAAyB,GAAE,CAAC;QACzC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,IAAA,UAAE,EAAC,oBAAoB,CAAC,CAAC;IACjC,CAAC;IAMD,sBAAsB,CAAC,KAAe;QACrC,IAAI,CAAC,KAAK,EAAE;YACX,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SAChC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC5D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAC5B,CAAC,eAAe,EAAE,EAAE,CACnB,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO;gBACxC,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;gBACtC,IAAI,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO;gBACxC,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,CACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAmhBM,iBAAiB,CAAC,EACxB,MAAM,EACN,OAAO,EAIP;QACA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAA,WAAG,EAAC,qBAAqB,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,uCACI,KAAK,KACR,OAAO,IACN;QACH,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;YACnC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,WAAW,kCACP,WAAW,KACd,MAAM,EAAE,OAAO,GACf;SACD,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO,IAAA,WAAG,EAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,WAAW,EAAE,CAAC;YACd,WAAW,kCACP,WAAW,KACd,MAAM,EAAE,OAAO,GACf;SACD,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,KAAK,EAAE;YAAE,OAAO,IAAA,WAAG,EAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAChD,WAAW,EAAE;gBACZ,MAAM,EAAE,OAAO;aACf;SACD,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,KAAK,EAAE;YAAE,OAAO,IAAA,WAAG,EAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAgGM,SAAS,CAAC,EAChB,WAAW,EACX,aAAa,GAAG,cAAM,CAAC,MAAM,EAC7B,KAAK,GAAG,CAAC,EACT,WAAW,GAAG,IAAI,CAAC,IAAI,EAMvB;;QACA,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAChD,MAAM,EAAE,WAAW,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAC9C,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE;YAC3B,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,KAAK,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC;SACxC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAGvE,IAAI,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAA,WAAG,EACT,mGAAmG,CACnG,CAAC;SACF;QAED,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,CAAC;YAC5D,OAAO;SACP,CAAC,CAAC;QAGH,IAAI,MAAM,IAAI,qBAAqB,GAAG,CAAC,EAAE;YACxC,OAAO,IAAA,WAAG,EACT,2GAA2G,CAC3G,CAAC;SACF;QAED,MAAM,cAAc,GAAG,qBAAqB,GAAG,MAAM,CAAC;QACtD,MAAM,YAAY,GAA8B;YAC/C,WAAW;YACX,GAAG,EAAE,MAAM;YACX,aAAa;SACb,CAAC;QAEF,IAAI,GAAG,EAAE;YAER,YAAY,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SACxE;QAGD,IAAI,GAAG,IAAI,cAAc,IAAI,UAAU,EAAE;YACxC,IAAI,CAAC,qBAAqB,CAAC;gBAC1B,WAAW,EAAE,YAAY;aACzB,CAAC,CAAC;YACH,OAAO,IAAA,UAAE,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;SAC3B;QAED,OAAO,IAAA,WAAG,EACT,uFAAuF,CACvF,CAAC;IACH,CAAC;IA8ID,gBAAgB,CAAC,EAChB,WAAW,EACX,aAAa,GAAG,cAAM,CAAC,IAAI,EAC3B,WAAW,GAAG,IAAI,CAAC,IAAI,EAKvB;;QACA,IAAI;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAChD,MAAM,EAAE,WAAW,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC;YAE1B,MAAM,MAAM,GAAG,MAAA,WAAW,CAAC,MAAM,mCAAI,EAAE,CAAC;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC5B,WAAW;gBACX,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,WAAW,kCACP,WAAW,KACd,GAAG,EAAE,IAAI,EACT,MAAM;oBACN,aAAa;oBACb,WAAW,GACX;aACD,CAAC,CAAC;YAEH,IAAI,MAAM,IAAI,GAAG,EAAE;gBAClB,OAAO,IAAA,WAAG,EACT,gBAAgB,MAAM,gDAAgD,GAAG,OAAO,WAAW,gBAAgB,CAC3G,CAAC;aACF;YAED,MAAM,SAAS,GAAG;gBACjB,MAAM,EAAE,MAAM,GAAG,GAAG;gBACpB,GAAG;aACH,CAAC;YAEF,OAAO,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;SACrB;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAA,WAAG,EAAC,CAAC,CAAC,CAAC;SACd;IACF,CAAC;IAOD,KAAK,CAAC,SAAS,CAAC,EACf,IAAI,EACJ,WAAW,EAIX;;QACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC5C,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACxC,GAAG,EAAE,IAAI;SACT,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,cAAc,CAAC,KAAK,EAAE,EAAE;YAC3B,OAAO,IAAA,WAAG,EAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,KAAK,iDACN,IAAI,CAAC,KAAK,GACV,QAAQ,KACX,WAAW,EAAE,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,mCAAI,CAAC,EACvD,SAAS,EAAE,kBAAU,CAAC,IAAI,GAC1B,CAAC;QAGF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,cAAc,CAAC,KAAK;SAC7B,CAAC,CAAC;QACH,IAAI,eAAe,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,IAAA,WAAG,EAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC1C;QAED,OAAO,IAAA,UAAE,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACD;AA7lCD,kCA6lCC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TAddressTypeContent, IHeader, TAddressTypes, IOnchainFees } from '../types';
|
|
2
|
-
import { IAddress, ISendTransaction, IWalletData } from '../types';
|
|
2
|
+
import { IAddress, ISendTransaction, IWalletData, EAddressType } from '../types';
|
|
3
3
|
export declare const addressTypes: Readonly<TAddressTypes>;
|
|
4
4
|
export declare const defaultAddressContent: Readonly<IAddress>;
|
|
5
5
|
export declare const defaultSendTransaction: ISendTransaction;
|
|
@@ -8,3 +8,4 @@ export declare const getAddressTypeContent: <T>(data: T) => Readonly<TAddressTyp
|
|
|
8
8
|
export declare const getDefaultHeader: () => IHeader;
|
|
9
9
|
export declare const defaultWalletData: Readonly<IWalletData>;
|
|
10
10
|
export declare const defaultFeesShape: IOnchainFees;
|
|
11
|
+
export declare const getAddressTypes: () => EAddressType[];
|
|
@@ -4,6 +4,7 @@ import { Result } from '../utils';
|
|
|
4
4
|
import { IAddInput, ICreateTransaction, ISetupTransaction, TSetupTransactionResponse } from '../types';
|
|
5
5
|
import { Psbt } from 'bitcoinjs-lib';
|
|
6
6
|
import { BIP32Interface } from 'bip32';
|
|
7
|
+
import { ECPairInterface } from 'ecpair';
|
|
7
8
|
export declare class Transaction {
|
|
8
9
|
private _data;
|
|
9
10
|
private readonly _wallet;
|
|
@@ -47,6 +48,10 @@ export declare class Transaction {
|
|
|
47
48
|
shuffleTargets?: boolean | undefined;
|
|
48
49
|
}) => Promise<Result<Psbt>>;
|
|
49
50
|
addInput: ({ psbt, keyPair, input }: IAddInput) => Promise<Result<string>>;
|
|
51
|
+
addExternalInputs({ inputs, keyPair }: {
|
|
52
|
+
inputs: IUtxo[];
|
|
53
|
+
keyPair: BIP32Interface | ECPairInterface;
|
|
54
|
+
}): Result<IUtxo[]>;
|
|
50
55
|
addOutput: ({ address, value, index }: IOutput) => Promise<Result<string>>;
|
|
51
56
|
getTransactionOutputValue: ({ outputs }?: {
|
|
52
57
|
outputs?: IOutput[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":";;;AAgCA,IAAY,MAMX;AAND,WAAY,MAAM;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,uBAAa,CAAA;AACd,CAAC,EANW,MAAM,GAAN,cAAM,KAAN,cAAM,QAMjB"}
|
|
@@ -3,13 +3,14 @@ import { IOutput, ISendTransaction, IUtxo, IVin, IVout } from './wallet';
|
|
|
3
3
|
import { BIP32Interface } from 'bip32';
|
|
4
4
|
import { Psbt } from 'bitcoinjs-lib';
|
|
5
5
|
import { Result } from '../utils';
|
|
6
|
+
import { ECPairInterface } from 'ecpair';
|
|
6
7
|
export interface ICreateTransaction {
|
|
7
8
|
transactionData?: ISendTransaction;
|
|
8
9
|
shuffleOutputs?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export interface IAddInput {
|
|
11
12
|
psbt: Psbt;
|
|
12
|
-
keyPair: BIP32Interface;
|
|
13
|
+
keyPair: BIP32Interface | ECPairInterface;
|
|
13
14
|
input: IUtxo;
|
|
14
15
|
}
|
|
15
16
|
export interface ITargets {
|
|
@@ -5,6 +5,8 @@ import { EElectrumNetworks, IHeader, INewBlock, TServer, TTxResult } from './ele
|
|
|
5
5
|
import { EFeeId } from './transaction';
|
|
6
6
|
import { TLSSocket } from 'tls';
|
|
7
7
|
import { Server } from 'net';
|
|
8
|
+
import { ECPairInterface } from 'ecpair';
|
|
9
|
+
import { BIP32Interface } from 'bip32';
|
|
8
10
|
export type TAvailableNetworks = 'bitcoin' | 'testnet' | 'regtest';
|
|
9
11
|
export type TAddressType = 'p2wpkh' | 'p2sh' | 'p2pkh';
|
|
10
12
|
export type TAddressLabel = 'bech32' | 'segwit' | 'legacy';
|
|
@@ -54,6 +56,7 @@ export interface IUtxo {
|
|
|
54
56
|
tx_hash: string;
|
|
55
57
|
tx_pos: number;
|
|
56
58
|
value: number;
|
|
59
|
+
keyPair?: BIP32Interface | ECPairInterface;
|
|
57
60
|
}
|
|
58
61
|
export interface IVin {
|
|
59
62
|
scriptSig: {
|
|
@@ -211,16 +214,6 @@ export interface IGetAddressBalanceRes {
|
|
|
211
214
|
confirmed: number;
|
|
212
215
|
unconfirmed: number;
|
|
213
216
|
}
|
|
214
|
-
export interface IUtxo {
|
|
215
|
-
address: string;
|
|
216
|
-
index: number;
|
|
217
|
-
path: string;
|
|
218
|
-
scriptHash: string;
|
|
219
|
-
height: number;
|
|
220
|
-
tx_hash: string;
|
|
221
|
-
tx_pos: number;
|
|
222
|
-
value: number;
|
|
223
|
-
}
|
|
224
217
|
export interface IGenerateAddresses {
|
|
225
218
|
addressAmount?: number;
|
|
226
219
|
changeAddressAmount?: number;
|
|
@@ -243,6 +236,14 @@ export interface IGetAddressResponse {
|
|
|
243
236
|
path: string;
|
|
244
237
|
publicKey: string;
|
|
245
238
|
}
|
|
239
|
+
export interface IGetAddressesFromPrivateKey {
|
|
240
|
+
keyPair: BIP32Interface | ECPairInterface;
|
|
241
|
+
addresses: IGetAddressesFromKeyPair[];
|
|
242
|
+
}
|
|
243
|
+
export interface IGetAddressesFromKeyPair {
|
|
244
|
+
address: string;
|
|
245
|
+
publicKey: string;
|
|
246
|
+
}
|
|
246
247
|
export interface IGetNextAvailableAddressResponse {
|
|
247
248
|
addressIndex: IAddress;
|
|
248
249
|
lastUsedAddressIndex: IAddress;
|
|
@@ -399,3 +400,21 @@ export interface IBoostedTransaction {
|
|
|
399
400
|
export interface IBoostedTransactions {
|
|
400
401
|
[txId: string]: IBoostedTransaction;
|
|
401
402
|
}
|
|
403
|
+
export interface IPrivateKeyInfo {
|
|
404
|
+
balance: number;
|
|
405
|
+
utxos: IUtxo[];
|
|
406
|
+
keyPair: ECPairInterface | BIP32Interface;
|
|
407
|
+
addresses: IGetAddressesFromKeyPair[];
|
|
408
|
+
}
|
|
409
|
+
export interface ISweepPrivateKey {
|
|
410
|
+
privateKey: string;
|
|
411
|
+
toAddress: string;
|
|
412
|
+
satsPerByte?: number;
|
|
413
|
+
broadcast?: boolean;
|
|
414
|
+
combineWithWalletUtxos?: boolean;
|
|
415
|
+
}
|
|
416
|
+
export interface ISweepPrivateKeyRes {
|
|
417
|
+
balance: number;
|
|
418
|
+
id: string;
|
|
419
|
+
hex: string;
|
|
420
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { EAddressType, EAvailableNetworks, IKeyDerivationPath } from '../types';
|
|
2
|
+
import { EAddressType, EAvailableNetworks, IGetAddressesFromKeyPair, IGetAddressesFromPrivateKey, IKeyDerivationPath } from '../types';
|
|
3
|
+
import { Network } from 'bitcoinjs-lib';
|
|
3
4
|
import { Result } from './result';
|
|
5
|
+
import { ECPairInterface } from 'ecpair';
|
|
6
|
+
import { BIP32Interface } from 'bip32';
|
|
4
7
|
export declare const getAddressFromScriptPubKey: (scriptPubKey: string, selectedNetwork: EAvailableNetworks) => string;
|
|
5
8
|
export declare const getSha256: (str: string) => string;
|
|
6
9
|
export declare const validateAddress: ({ address, network }: {
|
|
@@ -21,3 +24,13 @@ export declare const getScriptHash: ({ address, network }: {
|
|
|
21
24
|
export declare const generateMnemonic: (strength?: number, rng?: ((size: number) => Buffer) | undefined, wordlist?: string[]) => string;
|
|
22
25
|
export declare const validateMnemonic: (mnemonic?: string) => boolean;
|
|
23
26
|
export declare const objectsMatch: (obj1: any, obj2: any) => boolean;
|
|
27
|
+
export declare const getAddressFromKeyPair: ({ keyPair, addressType, network }: {
|
|
28
|
+
keyPair: BIP32Interface | ECPairInterface;
|
|
29
|
+
addressType: EAddressType;
|
|
30
|
+
network: Network;
|
|
31
|
+
}) => IGetAddressesFromKeyPair;
|
|
32
|
+
export declare const getAddressesFromPrivateKey: ({ privateKey, addrTypes, network }: {
|
|
33
|
+
privateKey: string;
|
|
34
|
+
addrTypes?: EAddressType[] | undefined;
|
|
35
|
+
network?: Network | undefined;
|
|
36
|
+
}) => Result<IGetAddressesFromPrivateKey>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { BIP32Interface } from 'bip32';
|
|
4
|
-
import { EAddressType, EAvailableNetworks, EBoostType, EFeeId, IAddress, IBoostedTransaction, IBoostedTransactions, IExchangeRates, IFormattedTransaction, IFormattedTransactions, IGenerateAddresses, IGenerateAddressesResponse, IGetAddress, IGetAddressBalanceRes, IGetAddressByPath, IGetAddressResponse, IGetNextAvailableAddressResponse, IGetUtxosResponse, IHeader, IKeyDerivationPath, InputData, IOnchainFees, IRbfData, ISendTransaction, ISendTx, ISetupTransaction, ITransaction, ITxHash, IUtxo, IWallet, IWalletData, TAddressIndexInfo, TGetTotalFeeObj, TOnMessage, TServer, TSetupTransactionResponse, TWalletDataKeys } from '../types';
|
|
4
|
+
import { EAddressType, EAvailableNetworks, EBoostType, EFeeId, IAddress, IBoostedTransaction, IBoostedTransactions, IExchangeRates, IFormattedTransaction, IFormattedTransactions, IGenerateAddresses, IGenerateAddressesResponse, IGetAddress, IGetAddressBalanceRes, IGetAddressByPath, IGetAddressesFromPrivateKey, IGetAddressResponse, IGetNextAvailableAddressResponse, IGetUtxosResponse, IHeader, IKeyDerivationPath, InputData, IOnchainFees, IPrivateKeyInfo, IRbfData, ISendTransaction, ISendTx, ISetupTransaction, ISweepPrivateKey, ISweepPrivateKeyRes, ITransaction, ITxHash, IUtxo, IWallet, IWalletData, TAddressIndexInfo, TGetTotalFeeObj, TOnMessage, TServer, TSetupTransactionResponse, TWalletDataKeys } from '../types';
|
|
5
5
|
import { Result } from '../utils';
|
|
6
6
|
import { Electrum } from '../electrum';
|
|
7
7
|
import { Transaction } from '../transaction';
|
|
@@ -218,4 +218,7 @@ export declare class Wallet {
|
|
|
218
218
|
}): Result<string>;
|
|
219
219
|
updateExchangeRates(): Promise<Result<IExchangeRates>>;
|
|
220
220
|
updateFeeEstimates(forceUpdate?: boolean): Promise<Result<IOnchainFees>>;
|
|
221
|
+
getAddressesFromPrivateKey(privateKey: string, _addressTypes?: EAddressType[]): Result<IGetAddressesFromPrivateKey>;
|
|
222
|
+
getPrivateKeyInfo(privateKey: string): Promise<Result<IPrivateKeyInfo>>;
|
|
223
|
+
sweepPrivateKey({ privateKey, toAddress, satsPerByte, broadcast, combineWithWalletUtxos }: ISweepPrivateKey): Promise<Result<ISweepPrivateKeyRes>>;
|
|
221
224
|
}
|
package/dist/types/wallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/types/wallet.ts"],"names":[],"mappings":";;;AAyBA,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC7B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,gDAA0B,CAAA;IAC1B,yCAAmB,CAAA;IACnB,gDAA0B,CAAA;IAC1B,yCAAmB,CAAA;IACnB,gDAA0B,CAAA;AAC3B,CAAC,EARW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAQ7B;AACD,IAAY,YAMX;AAND,WAAY,YAAY;IACvB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,+BAAe,CAAA;AAGhB,CAAC,EANW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAMvB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACvB,6BAAa,CAAA;IACb,qCAAqB,CAAA;AACtB,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAsED,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,yBAAW,CAAA;IACX,2BAAa,CAAA;AACd,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAuPD,IAAY,KAIX;AAJD,WAAY,KAAK;IAChB,4BAAmB,CAAA;IACnB,oBAAW,CAAA;IACX,sBAAa,CAAA;AACd,CAAC,EAJW,KAAK,GAAL,aAAK,KAAL,aAAK,QAIhB"}
|
package/dist/utils/helpers.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.objectsMatch = exports.validateMnemonic = exports.generateMnemonic = exports.getScriptHash = exports.getKeyDerivationPath = exports.validateAddress = exports.getSha256 = exports.getAddressFromScriptPubKey = void 0;
|
|
26
|
+
exports.getAddressesFromPrivateKey = exports.getAddressFromKeyPair = exports.objectsMatch = exports.validateMnemonic = exports.generateMnemonic = exports.getScriptHash = exports.getKeyDerivationPath = exports.validateAddress = exports.getSha256 = exports.getAddressFromScriptPubKey = void 0;
|
|
27
27
|
const types_1 = require("../types");
|
|
28
28
|
const bitcoinjs_lib_1 = require("bitcoinjs-lib");
|
|
29
29
|
const bip39 = __importStar(require("bip39"));
|
|
@@ -32,6 +32,9 @@ const wallet_1 = require("./wallet");
|
|
|
32
32
|
const result_1 = require("./result");
|
|
33
33
|
const shapes_1 = require("../shapes");
|
|
34
34
|
const derivation_path_1 = require("./derivation-path");
|
|
35
|
+
const ecpair_1 = require("ecpair");
|
|
36
|
+
const ecc = __importStar(require("@bitcoinerlab/secp256k1"));
|
|
37
|
+
const ECPair = (0, ecpair_1.ECPairFactory)(ecc);
|
|
35
38
|
const getAddressFromScriptPubKey = (scriptPubKey, selectedNetwork) => {
|
|
36
39
|
const network = bitcoinjs_lib_1.networks[selectedNetwork];
|
|
37
40
|
return bitcoin.address.fromOutputScript(Buffer.from(scriptPubKey, 'hex'), network);
|
|
@@ -134,4 +137,63 @@ const objectsMatch = (obj1, obj2) => {
|
|
|
134
137
|
}
|
|
135
138
|
};
|
|
136
139
|
exports.objectsMatch = objectsMatch;
|
|
140
|
+
const getAddressFromKeyPair = ({ keyPair, addressType, network }) => {
|
|
141
|
+
var _a, _b, _c;
|
|
142
|
+
let address = '';
|
|
143
|
+
switch (addressType) {
|
|
144
|
+
case types_1.EAddressType.p2wpkh:
|
|
145
|
+
address =
|
|
146
|
+
(_a = bitcoin.payments.p2wpkh({
|
|
147
|
+
pubkey: keyPair.publicKey,
|
|
148
|
+
network
|
|
149
|
+
}).address) !== null && _a !== void 0 ? _a : '';
|
|
150
|
+
break;
|
|
151
|
+
case types_1.EAddressType.p2sh:
|
|
152
|
+
address =
|
|
153
|
+
(_b = bitcoin.payments.p2sh({
|
|
154
|
+
redeem: bitcoin.payments.p2wpkh({
|
|
155
|
+
pubkey: keyPair.publicKey,
|
|
156
|
+
network
|
|
157
|
+
}),
|
|
158
|
+
network
|
|
159
|
+
}).address) !== null && _b !== void 0 ? _b : '';
|
|
160
|
+
break;
|
|
161
|
+
case types_1.EAddressType.p2pkh:
|
|
162
|
+
address =
|
|
163
|
+
(_c = bitcoin.payments.p2pkh({
|
|
164
|
+
pubkey: keyPair.publicKey,
|
|
165
|
+
network
|
|
166
|
+
}).address) !== null && _c !== void 0 ? _c : '';
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
address,
|
|
171
|
+
publicKey: keyPair.publicKey.toString('hex')
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
exports.getAddressFromKeyPair = getAddressFromKeyPair;
|
|
175
|
+
const getAddressesFromPrivateKey = ({ privateKey, addrTypes = (0, shapes_1.getAddressTypes)(), network = bitcoin.networks.bitcoin }) => {
|
|
176
|
+
try {
|
|
177
|
+
if (!privateKey)
|
|
178
|
+
return (0, result_1.err)('No private key provided.');
|
|
179
|
+
const keyPair = ECPair.fromWIF(privateKey, network);
|
|
180
|
+
const response = addrTypes.map((addressType) => {
|
|
181
|
+
return (0, exports.getAddressFromKeyPair)({
|
|
182
|
+
keyPair,
|
|
183
|
+
addressType,
|
|
184
|
+
network
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
if (!response)
|
|
188
|
+
return (0, result_1.err)('Unable to get addresses from private key.');
|
|
189
|
+
return (0, result_1.ok)({
|
|
190
|
+
keyPair,
|
|
191
|
+
addresses: response
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
return (0, result_1.err)(e);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
exports.getAddressesFromPrivateKey = getAddressesFromPrivateKey;
|
|
137
199
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,78 +138,77 @@ const constructByteCountParam = (addresses, increaseAddressCount = []) => {
|
|
|
138
138
|
exports.constructByteCountParam = constructByteCountParam;
|
|
139
139
|
const getByteCount = (inputs, outputs, message, minByteCount = 166) => {
|
|
140
140
|
try {
|
|
141
|
-
let totalWeight =
|
|
141
|
+
let totalWeight = 0;
|
|
142
142
|
let hasWitness = false;
|
|
143
|
+
let inputCount = 0;
|
|
144
|
+
let outputCount = 0;
|
|
143
145
|
const types = {
|
|
144
146
|
inputs: {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
'MULTISIG-P2SH': 51 * 4,
|
|
148
|
+
'MULTISIG-P2WSH': 8 + 41 * 4,
|
|
149
|
+
'MULTISIG-P2SH-P2WSH': 8 + 76 * 4,
|
|
147
150
|
P2PKH: 148 * 4,
|
|
148
|
-
|
|
149
|
-
P2SH: 108 + 64 * 4
|
|
150
|
-
p2sh: 108 + 64 * 4 + 1,
|
|
151
|
-
'P2SH-P2WPKH': 108 + 64 * 4,
|
|
152
|
-
P2TR: 57.5 * 4,
|
|
153
|
-
p2tr: 57.5 * 4 + 1
|
|
154
|
-
},
|
|
155
|
-
multiSigInputs: {
|
|
156
|
-
'MULTISIG-P2SH': 49 * 4,
|
|
157
|
-
'MULTISIG-P2WSH': 6 + 41 * 4,
|
|
158
|
-
'MULTISIG-P2SH-P2WSH': 6 + 76 * 4
|
|
151
|
+
P2WPKH: 108 + 41 * 4,
|
|
152
|
+
'P2SH-P2WPKH': 108 + 64 * 4
|
|
159
153
|
},
|
|
160
154
|
outputs: {
|
|
161
155
|
P2SH: 32 * 4,
|
|
162
156
|
P2PKH: 34 * 4,
|
|
163
157
|
P2WPKH: 31 * 4,
|
|
164
|
-
P2WSH: 43 * 4
|
|
165
|
-
p2wpkh: 31 * 4 + 1,
|
|
166
|
-
p2sh: 32 * 4 + 1,
|
|
167
|
-
p2pkh: 34 * 4 + 1,
|
|
168
|
-
P2TR: 43 * 4,
|
|
169
|
-
p2tr: 43 * 4 + 1
|
|
158
|
+
P2WSH: 43 * 4
|
|
170
159
|
}
|
|
171
160
|
};
|
|
172
161
|
const checkUInt53 = (n) => {
|
|
173
|
-
if (n < 0 || n > Number.MAX_SAFE_INTEGER || n % 1 !== 0)
|
|
162
|
+
if (n < 0 || n > Number.MAX_SAFE_INTEGER || n % 1 !== 0)
|
|
174
163
|
throw new RangeError('value out of range');
|
|
175
|
-
}
|
|
176
164
|
};
|
|
177
|
-
const
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
165
|
+
const varIntLength = (number) => {
|
|
166
|
+
checkUInt53(number);
|
|
167
|
+
return number < 0xfd
|
|
168
|
+
? 1
|
|
169
|
+
: number <= 0xffff
|
|
170
|
+
? 3
|
|
171
|
+
: number <= 0xffffffff
|
|
172
|
+
? 5
|
|
173
|
+
: 9;
|
|
174
|
+
};
|
|
175
|
+
Object.keys(inputs).forEach(function (key) {
|
|
176
|
+
key = key.toUpperCase();
|
|
177
|
+
checkUInt53(inputs[key]);
|
|
182
178
|
if (key.slice(0, 8) === 'MULTISIG') {
|
|
183
179
|
const keyParts = key.split(':');
|
|
184
|
-
if (keyParts.length !== 2)
|
|
180
|
+
if (keyParts.length !== 2)
|
|
185
181
|
throw new Error('invalid input: ' + key);
|
|
186
|
-
}
|
|
187
182
|
const newKey = keyParts[0];
|
|
188
|
-
const mAndN = keyParts[1].split('-').map((item)
|
|
189
|
-
|
|
183
|
+
const mAndN = keyParts[1].split('-').map(function (item) {
|
|
184
|
+
return parseInt(item);
|
|
185
|
+
});
|
|
186
|
+
totalWeight += types.inputs[newKey] * inputs[key];
|
|
190
187
|
const multiplyer = newKey === 'MULTISIG-P2SH' ? 4 : 1;
|
|
191
188
|
totalWeight +=
|
|
192
|
-
(73 * mAndN[0] + 34 * mAndN[1]) * multiplyer *
|
|
189
|
+
(73 * mAndN[0] + 34 * mAndN[1]) * multiplyer * inputs[key];
|
|
193
190
|
}
|
|
194
191
|
else {
|
|
195
|
-
totalWeight += types.inputs[key] *
|
|
192
|
+
totalWeight += types.inputs[key] * inputs[key];
|
|
196
193
|
}
|
|
197
|
-
|
|
194
|
+
inputCount += inputs[key];
|
|
195
|
+
if (key.indexOf('W') >= 0)
|
|
198
196
|
hasWitness = true;
|
|
199
|
-
}
|
|
200
197
|
});
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
198
|
+
Object.keys(outputs).forEach(function (key) {
|
|
199
|
+
key = key.toUpperCase();
|
|
200
|
+
checkUInt53(outputs[key]);
|
|
201
|
+
totalWeight += types.outputs[key] * outputs[key];
|
|
202
|
+
outputCount += outputs[key];
|
|
206
203
|
});
|
|
207
|
-
if (hasWitness)
|
|
204
|
+
if (hasWitness)
|
|
208
205
|
totalWeight += 2;
|
|
209
|
-
}
|
|
210
206
|
if (message === null || message === void 0 ? void 0 : message.length) {
|
|
211
207
|
totalWeight += message.length * 2;
|
|
212
208
|
}
|
|
209
|
+
totalWeight += 8 * 4;
|
|
210
|
+
totalWeight += varIntLength(inputCount) * 4;
|
|
211
|
+
totalWeight += varIntLength(outputCount) * 4;
|
|
213
212
|
const totalVsize = Math.ceil(totalWeight / 4);
|
|
214
213
|
return totalVsize < minByteCount ? minByteCount : totalVsize;
|
|
215
214
|
}
|