@bitgo-beta/utxo-core 1.8.1-beta.48 → 1.8.1-beta.480

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.
Files changed (79) hide show
  1. package/dist/src/bip322/index.d.ts +5 -0
  2. package/dist/src/bip322/index.d.ts.map +1 -0
  3. package/dist/src/bip322/index.js +21 -0
  4. package/dist/src/bip322/toSign.d.ts +25 -0
  5. package/dist/src/bip322/toSign.d.ts.map +1 -0
  6. package/dist/src/bip322/toSign.js +126 -0
  7. package/dist/src/bip322/toSpend.d.ts +22 -0
  8. package/dist/src/bip322/toSpend.d.ts.map +1 -0
  9. package/dist/src/bip322/toSpend.js +72 -0
  10. package/dist/src/bip322/utils.d.ts +18 -0
  11. package/dist/src/bip322/utils.d.ts.map +1 -0
  12. package/dist/src/bip322/utils.js +115 -0
  13. package/dist/src/bip322/verify.d.ts +12 -0
  14. package/dist/src/bip322/verify.d.ts.map +1 -0
  15. package/dist/src/bip322/verify.js +115 -0
  16. package/dist/src/bip32utils.d.ts +16 -0
  17. package/dist/src/bip32utils.d.ts.map +1 -0
  18. package/dist/src/bip32utils.js +71 -0
  19. package/dist/src/descriptor/fromFixedScriptWallet.d.ts +7 -2
  20. package/dist/src/descriptor/fromFixedScriptWallet.d.ts.map +1 -1
  21. package/dist/src/descriptor/fromFixedScriptWallet.js +14 -3
  22. package/dist/src/descriptor/index.d.ts +2 -0
  23. package/dist/src/descriptor/index.d.ts.map +1 -1
  24. package/dist/src/descriptor/index.js +3 -1
  25. package/dist/src/descriptor/parse/PatternMatcher.d.ts +14 -0
  26. package/dist/src/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  27. package/dist/src/descriptor/parse/PatternMatcher.js +60 -0
  28. package/dist/src/descriptor/psbt/createPsbt.d.ts +4 -0
  29. package/dist/src/descriptor/psbt/createPsbt.d.ts.map +1 -1
  30. package/dist/src/descriptor/psbt/createPsbt.js +34 -9
  31. package/dist/src/descriptor/psbt/sign.d.ts +2 -2
  32. package/dist/src/descriptor/psbt/sign.d.ts.map +1 -1
  33. package/dist/src/descriptor/psbt/sign.js +1 -1
  34. package/dist/src/index.d.ts +2 -0
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +4 -2
  37. package/dist/src/paygo/attestation.d.ts +11 -0
  38. package/dist/src/paygo/attestation.d.ts.map +1 -0
  39. package/dist/src/paygo/attestation.js +58 -0
  40. package/dist/src/paygo/index.d.ts +2 -1
  41. package/dist/src/paygo/index.d.ts.map +1 -1
  42. package/dist/src/paygo/index.js +3 -2
  43. package/dist/src/paygo/{ExtractAddressPayGoAttestation.d.ts → parsePayGoAttestation.d.ts} +8 -3
  44. package/dist/src/paygo/parsePayGoAttestation.d.ts.map +1 -0
  45. package/dist/src/paygo/parsePayGoAttestation.js +50 -0
  46. package/dist/src/paygo/psbt/Errors.d.ts +22 -0
  47. package/dist/src/paygo/psbt/Errors.d.ts.map +1 -0
  48. package/dist/src/paygo/psbt/Errors.js +44 -0
  49. package/dist/src/paygo/psbt/index.d.ts +2 -0
  50. package/dist/src/paygo/psbt/index.d.ts.map +1 -0
  51. package/dist/src/paygo/psbt/index.js +18 -0
  52. package/dist/src/paygo/psbt/payGoAddressProof.d.ts +29 -0
  53. package/dist/src/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  54. package/dist/src/paygo/psbt/payGoAddressProof.js +124 -0
  55. package/dist/src/testutil/descriptor/descriptors.d.ts +4 -1
  56. package/dist/src/testutil/descriptor/descriptors.d.ts.map +1 -1
  57. package/dist/src/testutil/descriptor/descriptors.js +40 -3
  58. package/dist/src/testutil/descriptor/mock.utils.d.ts +3 -1
  59. package/dist/src/testutil/descriptor/mock.utils.d.ts.map +1 -1
  60. package/dist/src/testutil/descriptor/mock.utils.js +2 -1
  61. package/dist/src/testutil/descriptor/psbt.utils.d.ts.map +1 -1
  62. package/dist/src/testutil/descriptor/psbt.utils.js +2 -1
  63. package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts +1 -1
  64. package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -1
  65. package/dist/src/testutil/generatePayGoAttestationProof.utils.js +8 -13
  66. package/dist/src/testutil/index.d.ts +1 -0
  67. package/dist/src/testutil/index.d.ts.map +1 -1
  68. package/dist/src/testutil/index.js +2 -1
  69. package/dist/src/testutil/key.utils.d.ts +1 -1
  70. package/dist/src/testutil/key.utils.d.ts.map +1 -1
  71. package/dist/src/testutil/key.utils.js +3 -2
  72. package/dist/src/testutil/toPlainObject.utils.d.ts.map +1 -1
  73. package/dist/src/testutil/toPlainObject.utils.js +16 -2
  74. package/dist/src/testutil/trimMessagePrefix.d.ts +11 -0
  75. package/dist/src/testutil/trimMessagePrefix.d.ts.map +1 -0
  76. package/dist/src/testutil/trimMessagePrefix.js +60 -0
  77. package/package.json +11 -7
  78. package/dist/src/paygo/ExtractAddressPayGoAttestation.d.ts.map +0 -1
  79. package/dist/src/paygo/ExtractAddressPayGoAttestation.js +0 -44
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.assertBaseTx = assertBaseTx;
37
+ exports.assertTxInput = assertTxInput;
38
+ exports.assertBip322TxProof = assertBip322TxProof;
39
+ exports.assertBip322PsbtProof = assertBip322PsbtProof;
40
+ const assert = __importStar(require("assert"));
41
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
42
+ const toSpend_1 = require("./toSpend");
43
+ function assertBaseTx(tx) {
44
+ assert.deepStrictEqual(tx.version, 0, 'Transaction version must be 0.');
45
+ assert.deepStrictEqual(tx.locktime, 0, 'Transaction locktime must be 0.');
46
+ assert.deepStrictEqual(tx.outs.length, 1, 'Transaction must have exactly 1 output.');
47
+ assert.deepStrictEqual(tx.outs[0].value, BigInt(0), 'Transaction output value must be 0.');
48
+ assert.deepStrictEqual(tx.outs[0].script.toString('hex'), '6a', 'Transaction output script must be OP_RETURN.');
49
+ }
50
+ function assertTxInput(tx, inputIndex, prevOuts, info, checkSignature) {
51
+ assert.ok(inputIndex < tx.ins.length, `inputIndex ${inputIndex} is out of range for tx with ${tx.ins.length} inputs.`);
52
+ const input = tx.ins[inputIndex];
53
+ assert.deepStrictEqual(input.index, 0, `transaction input ${inputIndex} must have index=0.`);
54
+ assert.deepStrictEqual(input.sequence, 0, `transaction input ${inputIndex} sequence must be 0.`);
55
+ // Make sure that the message is correctly encoded into the input of the transaction and
56
+ // verify that the message info corresponds
57
+ const scriptPubKey = utxolib.bitgo.outputScripts.createOutputScript2of3(info.pubkeys.map((pubkey) => Buffer.from(pubkey, 'hex')), info.scriptType, tx.network).scriptPubKey;
58
+ assert.deepStrictEqual(info.address, utxolib.address.fromOutputScript(scriptPubKey, tx.network).toString(), `Address does not match derived scriptPubKey for input ${inputIndex}.`);
59
+ const txid = utxolib.bitgo.getOutputIdForInput(input).txid;
60
+ const toSpendTx = (0, toSpend_1.buildToSpendTransaction)(scriptPubKey, info.message);
61
+ assert.deepStrictEqual(txid, toSpendTx.getId(), `Input ${inputIndex} derived to_spend transaction is not encoded in the input.`);
62
+ if (checkSignature) {
63
+ const signatureScript = utxolib.bitgo.parseSignatureScript2Of3(input);
64
+ const scriptType = signatureScript.scriptType === 'taprootKeyPathSpend'
65
+ ? 'p2trMusig2'
66
+ : signatureScript.scriptType === 'taprootScriptPathSpend'
67
+ ? 'p2tr'
68
+ : signatureScript.scriptType;
69
+ assert.deepStrictEqual(scriptType, info.scriptType, 'Script type does not match.');
70
+ utxolib.bitgo.verifySignatureWithPublicKeys(tx, inputIndex, prevOuts, info.pubkeys.map((pubkey) => Buffer.from(pubkey, 'hex')));
71
+ }
72
+ }
73
+ function assertBip322TxProof(tx, messageInfo) {
74
+ assertBaseTx(tx);
75
+ assert.deepStrictEqual(tx.ins.length, messageInfo.length, 'Transaction must have the same number of inputs as messageInfo entries.');
76
+ const prevOuts = messageInfo.map((info) => {
77
+ return {
78
+ value: 0n,
79
+ script: utxolib.bitgo.outputScripts.createOutputScript2of3(info.pubkeys.map((pubkey) => Buffer.from(pubkey, 'hex')), info.scriptType, tx.network).scriptPubKey,
80
+ };
81
+ });
82
+ tx.ins.forEach((input, inputIndex) => assertTxInput(tx, inputIndex, prevOuts, messageInfo[inputIndex], true));
83
+ }
84
+ function assertBip322PsbtProof(psbt, messageInfo) {
85
+ const unsignedTx = psbt.getUnsignedTx();
86
+ assertBaseTx(unsignedTx);
87
+ assert.deepStrictEqual(psbt.data.inputs.length, messageInfo.length, 'PSBT must have the same number of inputs as messageInfo entries.');
88
+ const prevOuts = psbt.data.inputs.map((input, inputIndex) => {
89
+ assert.ok(input.witnessUtxo, `PSBT input ${inputIndex} is missing witnessUtxo`);
90
+ return input.witnessUtxo;
91
+ });
92
+ psbt.data.inputs.forEach((input, inputIndex) => {
93
+ // Check that the metadata in the PSBT matches the messageInfo, then check the input data
94
+ const info = messageInfo[inputIndex];
95
+ // Check that the to_spend transaction is encoded in the nonWitnessUtxo
96
+ assert.ok(input.nonWitnessUtxo, `PSBT input ${inputIndex} is missing nonWitnessUtxo`);
97
+ const toSpendTx = (0, toSpend_1.buildToSpendTransaction)(prevOuts[inputIndex].script, info.message);
98
+ assert.deepStrictEqual(input.nonWitnessUtxo.toString('hex'), toSpendTx.toHex());
99
+ if (input.bip32Derivation) {
100
+ input.bip32Derivation.forEach((b) => {
101
+ const pubkey = b.pubkey.toString('hex');
102
+ assert.ok(info.pubkeys.includes(pubkey), `PSBT input ${inputIndex} has a pubkey in (tap)bip32Derivation that is not in messageInfo`);
103
+ });
104
+ }
105
+ else if (!input.tapBip32Derivation) {
106
+ throw new Error(`PSBT input ${inputIndex} is missing (tap)bip32Derivation when it should have it.`);
107
+ }
108
+ // Verify the signature on the input
109
+ assert.ok(psbt.validateSignaturesOfInputCommon(inputIndex), `PSBT input ${inputIndex} has an invalid signature.`);
110
+ // Do not check the signature when using the PSBT, the signature is not there. We are going
111
+ // to signatures in the PSBT.
112
+ assertTxInput(unsignedTx, inputIndex, prevOuts, info, false);
113
+ });
114
+ }
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpcDMyMi92ZXJpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxvQ0FNQztBQUVELHNDQW9EQztBQUVELGtEQWtCQztBQUVELHNEQTJDQztBQTNJRCwrQ0FBaUM7QUFFakMsOERBQWdEO0FBRWhELHVDQUFvRDtBQVVwRCxTQUFnQixZQUFZLENBQUMsRUFBeUM7SUFDcEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztJQUMxRSxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7SUFDM0YsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLDhDQUE4QyxDQUFDLENBQUM7QUFDbEgsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FDM0IsRUFBeUMsRUFDekMsVUFBa0IsRUFDbEIsUUFBb0MsRUFDcEMsSUFBaUIsRUFDakIsY0FBdUI7SUFFdkIsTUFBTSxDQUFDLEVBQUUsQ0FDUCxVQUFVLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQzFCLGNBQWMsVUFBVSxnQ0FBZ0Ms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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgYnVpbGRUb1NwZW5kVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RvU3BlbmQnO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlSW5mbyA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIC8vIEhleCBlbmNvZGVkIHB1YmtleXNcbiAgcHVia2V5czogc3RyaW5nW107XG4gIHNjcmlwdFR5cGU6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mMztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRCYXNlVHgodHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4pOiB2b2lkIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0eC52ZXJzaW9uLCAwLCAnVHJhbnNhY3Rpb24gdmVyc2lvbiBtdXN0IGJlIDAuJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodHgubG9ja3RpbWUsIDAsICdUcmFuc2FjdGlvbiBsb2NrdGltZSBtdXN0IGJlIDAuJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodHgub3V0cy5sZW5ndGgsIDEsICdUcmFuc2FjdGlvbiBtdXN0IGhhdmUgZXhhY3RseSAxIG91dHB1dC4nKTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0eC5vdXRzWzBdLnZhbHVlLCBCaWdJbnQoMCksICdUcmFuc2FjdGlvbiBvdXRwdXQgdmFsdWUgbXVzdCBiZSAwLicpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHR4Lm91dHNbMF0uc2NyaXB0LnRvU3RyaW5nKCdoZXgnKSwgJzZhJywgJ1RyYW5zYWN0aW9uIG91dHB1dCBzY3JpcHQgbXVzdCBiZSBPUF9SRVRVUk4uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRUeElucHV0KFxuICB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBwcmV2T3V0czogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+W10sXG4gIGluZm86IE1lc3NhZ2VJbmZvLFxuICBjaGVja1NpZ25hdHVyZTogYm9vbGVhblxuKTogdm9pZCB7XG4gIGFzc2VydC5vayhcbiAgICBpbnB1dEluZGV4IDwgdHguaW5zLmxlbmd0aCxcbiAgICBgaW5wdXRJbmRleCAke2lucHV0SW5kZXh9IGlzIG91dCBvZiByYW5nZSBmb3IgdHggd2l0aCAke3R4Lmlucy5sZW5ndGh9IGlucHV0cy5gXG4gICk7XG4gIGNvbnN0IGlucHV0ID0gdHguaW5zW2lucHV0SW5kZXhdO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlucHV0LmluZGV4LCAwLCBgdHJhbnNhY3Rpb24gaW5wdXQgJHtpbnB1dEluZGV4fSBtdXN0IGhhdmUgaW5kZXg9MC5gKTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnB1dC5zZXF1ZW5jZSwgMCwgYHRyYW5zYWN0aW9uIGlucHV0ICR7aW5wdXRJbmRleH0gc2VxdWVuY2UgbXVzdCBiZSAwLmApO1xuXG4gIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBtZXNzYWdlIGlzIGNvcnJlY3RseSBlbmNvZGVkIGludG8gdGhlIGlucHV0IG9mIHRoZSB0cmFuc2FjdGlvbiBhbmRcbiAgLy8gdmVyaWZ5IHRoYXQgdGhlIG1lc3NhZ2UgaW5mbyBjb3JyZXNwb25kc1xuICBjb25zdCBzY3JpcHRQdWJLZXkgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICBpbmZvLnB1YmtleXMubWFwKChwdWJrZXkpID0+IEJ1ZmZlci5mcm9tKHB1YmtleSwgJ2hleCcpKSxcbiAgICBpbmZvLnNjcmlwdFR5cGUsXG4gICAgdHgubmV0d29ya1xuICApLnNjcmlwdFB1YktleTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChcbiAgICBpbmZvLmFkZHJlc3MsXG4gICAgdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0UHViS2V5LCB0eC5uZXR3b3JrKS50b1N0cmluZygpLFxuICAgIGBBZGRyZXNzIGRvZXMgbm90IG1hdGNoIGRlcml2ZWQgc2NyaXB0UHViS2V5IGZvciBpbnB1dCAke2lucHV0SW5kZXh9LmBcbiAgKTtcblxuICBjb25zdCB0eGlkID0gdXR4b2xpYi5iaXRnby5nZXRPdXRwdXRJZEZvcklucHV0KGlucHV0KS50eGlkO1xuICBjb25zdCB0b1NwZW5kVHggPSBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbihzY3JpcHRQdWJLZXksIGluZm8ubWVzc2FnZSk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgdHhpZCxcbiAgICB0b1NwZW5kVHguZ2V0SWQoKSxcbiAgICBgSW5wdXQgJHtpbnB1dEluZGV4fSBkZXJpdmVkIHRvX3NwZW5kIHRyYW5zYWN0aW9uIGlzIG5vdCBlbmNvZGVkIGluIHRoZSBpbnB1dC5gXG4gICk7XG5cbiAgaWYgKGNoZWNrU2lnbmF0dXJlKSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5wYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMoaW5wdXQpO1xuICAgIGNvbnN0IHNjcmlwdFR5cGUgPVxuICAgICAgc2lnbmF0dXJlU2NyaXB0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJ1xuICAgICAgICA/ICdwMnRyTXVzaWcyJ1xuICAgICAgICA6IHNpZ25hdHVyZVNjcmlwdC5zY3JpcHRUeXBlID09PSAndGFwcm9vdFNjcmlwdFBhdGhTcGVuZCdcbiAgICAgICAgPyAncDJ0cidcbiAgICAgICAgOiBzaWduYXR1cmVTY3JpcHQuc2NyaXB0VHlwZTtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNjcmlwdFR5cGUsIGluZm8uc2NyaXB0VHlwZSwgJ1NjcmlwdCB0eXBlIGRvZXMgbm90IG1hdGNoLicpO1xuICAgIHV0eG9saWIuYml0Z28udmVyaWZ5U2lnbmF0dXJlV2l0aFB1YmxpY0tleXMoXG4gICAgICB0eCxcbiAgICAgIGlucHV0SW5kZXgsXG4gICAgICBwcmV2T3V0cyxcbiAgICAgIGluZm8ucHVia2V5cy5tYXAoKHB1YmtleSkgPT4gQnVmZmVyLmZyb20ocHVia2V5LCAnaGV4JykpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QmlwMzIyVHhQcm9vZih0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PiwgbWVzc2FnZUluZm86IE1lc3NhZ2VJbmZvW10pOiB2b2lkIHtcbiAgYXNzZXJ0QmFzZVR4KHR4KTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChcbiAgICB0eC5pbnMubGVuZ3RoLFxuICAgIG1lc3NhZ2VJbmZvLmxlbmd0aCxcbiAgICAnVHJhbnNhY3Rpb24gbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBpbnB1dHMgYXMgbWVzc2FnZUluZm8gZW50cmllcy4nXG4gICk7XG4gIGNvbnN0IHByZXZPdXRzID0gbWVzc2FnZUluZm8ubWFwKChpbmZvKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiAwbixcbiAgICAgIHNjcmlwdDogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAgICAgIGluZm8ucHVia2V5cy5tYXAoKHB1YmtleSkgPT4gQnVmZmVyLmZyb20ocHVia2V5LCAnaGV4JykpLFxuICAgICAgICBpbmZvLnNjcmlwdFR5cGUsXG4gICAgICAgIHR4Lm5ldHdvcmtcbiAgICAgICkuc2NyaXB0UHViS2V5LFxuICAgIH07XG4gIH0pO1xuICB0eC5pbnMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IGFzc2VydFR4SW5wdXQodHgsIGlucHV0SW5kZXgsIHByZXZPdXRzLCBtZXNzYWdlSW5mb1tpbnB1dEluZGV4XSwgdHJ1ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QmlwMzIyUHNidFByb29mKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIG1lc3NhZ2VJbmZvOiBNZXNzYWdlSW5mb1tdKTogdm9pZCB7XG4gIGNvbnN0IHVuc2lnbmVkVHggPSBwc2J0LmdldFVuc2lnbmVkVHgoKTtcblxuICBhc3NlcnRCYXNlVHgodW5zaWduZWRUeCk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgcHNidC5kYXRhLmlucHV0cy5sZW5ndGgsXG4gICAgbWVzc2FnZUluZm8ubGVuZ3RoLFxuICAgICdQU0JUIG11c3QgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgaW5wdXRzIGFzIG1lc3NhZ2VJbmZvIGVudHJpZXMuJ1xuICApO1xuXG4gIGNvbnN0IHByZXZPdXRzID0gcHNidC5kYXRhLmlucHV0cy5tYXAoKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgYXNzZXJ0Lm9rKGlucHV0LndpdG5lc3NVdHhvLCBgUFNCVCBpbnB1dCAke2lucHV0SW5kZXh9IGlzIG1pc3Npbmcgd2l0bmVzc1V0eG9gKTtcbiAgICByZXR1cm4gaW5wdXQud2l0bmVzc1V0eG87XG4gIH0pO1xuXG4gIHBzYnQuZGF0YS5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBtZXRhZGF0YSBpbiB0aGUgUFNCVCBtYXRjaGVzIHRoZSBtZXNzYWdlSW5mbywgdGhlbiBjaGVjayB0aGUgaW5wdXQgZGF0YVxuICAgIGNvbnN0IGluZm8gPSBtZXNzYWdlSW5mb1tpbnB1dEluZGV4XTtcblxuICAgIC8vIENoZWNrIHRoYXQgdGhlIHRvX3NwZW5kIHRyYW5zYWN0aW9uIGlzIGVuY29kZWQgaW4gdGhlIG5vbldpdG5lc3NVdHhvXG4gICAgYXNzZXJ0Lm9rKGlucHV0Lm5vbldpdG5lc3NVdHhvLCBgUFNCVCBpbnB1dCAke2lucHV0SW5kZXh9IGlzIG1pc3Npbmcgbm9uV2l0bmVzc1V0eG9gKTtcbiAgICBjb25zdCB0b1NwZW5kVHggPSBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbihwcmV2T3V0c1tpbnB1dEluZGV4XS5zY3JpcHQsIGluZm8ubWVzc2FnZSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnB1dC5ub25XaXRuZXNzVXR4by50b1N0cmluZygnaGV4JyksIHRvU3BlbmRUeC50b0hleCgpKTtcblxuICAgIGlmIChpbnB1dC5iaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIGlucHV0LmJpcDMyRGVyaXZhdGlvbi5mb3JFYWNoKChiKSA9PiB7XG4gICAgICAgIGNvbnN0IHB1YmtleSA9IGIucHVia2V5LnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgYXNzZXJ0Lm9rKFxuICAgICAgICAgIGluZm8ucHVia2V5cy5pbmNsdWRlcyhwdWJrZXkpLFxuICAgICAgICAgIGBQU0JUIGlucHV0ICR7aW5wdXRJbmRleH0gaGFzIGEgcHVia2V5IGluICh0YXApYmlwMzJEZXJpdmF0aW9uIHRoYXQgaXMgbm90IGluIG1lc3NhZ2VJbmZvYFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghaW5wdXQudGFwQmlwMzJEZXJpdmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBTQlQgaW5wdXQgJHtpbnB1dEluZGV4fSBpcyBtaXNzaW5nICh0YXApYmlwMzJEZXJpdmF0aW9uIHdoZW4gaXQgc2hvdWxkIGhhdmUgaXQuYCk7XG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IHRoZSBzaWduYXR1cmUgb24gdGhlIGlucHV0XG4gICAgYXNzZXJ0Lm9rKHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZJbnB1dENvbW1vbihpbnB1dEluZGV4KSwgYFBTQlQgaW5wdXQgJHtpbnB1dEluZGV4fSBoYXMgYW4gaW52YWxpZCBzaWduYXR1cmUuYCk7XG5cbiAgICAvLyBEbyBub3QgY2hlY2sgdGhlIHNpZ25hdHVyZSB3aGVuIHVzaW5nIHRoZSBQU0JULCB0aGUgc2lnbmF0dXJlIGlzIG5vdCB0aGVyZS4gV2UgYXJlIGdvaW5nXG4gICAgLy8gdG8gc2lnbmF0dXJlcyBpbiB0aGUgUFNCVC5cbiAgICBhc3NlcnRUeElucHV0KHVuc2lnbmVkVHgsIGlucHV0SW5kZXgsIHByZXZPdXRzLCBpbmZvLCBmYWxzZSk7XG4gIH0pO1xufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { BIP32Interface } from '@bitgo-beta/secp256k1';
2
+ /**
3
+ * bip32-aware wrapper around bitcoin-message package
4
+ * @see {bitcoinMessage.sign}
5
+ */
6
+ export declare function signMessage(message: string | Buffer, privateKey: BIP32Interface | Buffer, network: {
7
+ messagePrefix: string;
8
+ }): Buffer;
9
+ /**
10
+ * bip32-aware wrapper around bitcoin-message package
11
+ * @see {bitcoinMessage.verify}
12
+ */
13
+ export declare function verifyMessage(message: string | Buffer, publicKey: BIP32Interface | Buffer, signature: Buffer, network: {
14
+ messagePrefix: string;
15
+ }): boolean;
16
+ //# sourceMappingURL=bip32utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bip32utils.d.ts","sourceRoot":"","sources":["../../src/bip32utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,UAAU,EAAE,cAAc,GAAG,MAAM,EACnC,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,EAAE,cAAc,GAAG,MAAM,EAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAcT"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.signMessage = signMessage;
37
+ exports.verifyMessage = verifyMessage;
38
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
+ const bitcoinMessage = __importStar(require("bitcoinjs-message"));
40
+ /**
41
+ * bip32-aware wrapper around bitcoin-message package
42
+ * @see {bitcoinMessage.sign}
43
+ */
44
+ function signMessage(message, privateKey, network) {
45
+ if (!Buffer.isBuffer(privateKey)) {
46
+ privateKey = privateKey.privateKey;
47
+ if (!privateKey) {
48
+ throw new Error(`must provide privateKey`);
49
+ }
50
+ }
51
+ if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
52
+ throw new Error(`invalid argument 'network'`);
53
+ }
54
+ const compressed = true;
55
+ return bitcoinMessage.sign(message, privateKey, compressed, network.messagePrefix);
56
+ }
57
+ /**
58
+ * bip32-aware wrapper around bitcoin-message package
59
+ * @see {bitcoinMessage.verify}
60
+ */
61
+ function verifyMessage(message, publicKey, signature, network) {
62
+ if (!Buffer.isBuffer(publicKey)) {
63
+ publicKey = publicKey.publicKey;
64
+ }
65
+ if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
66
+ throw new Error(`invalid argument 'network'`);
67
+ }
68
+ const address = utxolib.address.toBase58Check(utxolib.crypto.hash160(publicKey), utxolib.networks.bitcoin.pubKeyHash, utxolib.networks.bitcoin);
69
+ return bitcoinMessage.verify(message, address, signature, network.messagePrefix);
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzJ1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaXAzMnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0Esa0NBZ0JDO0FBTUQsc0NBbUJDO0FBL0NELDhEQUFnRDtBQUNoRCxrRUFBb0Q7QUFDcEQ7OztHQUdHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixPQUF3QixFQUN4QixVQUFtQyxFQUNuQyxPQUFrQztJQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ2pDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBb0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakcsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDeEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQUF3QixFQUN4QixTQUFrQyxFQUNsQyxTQUFpQixFQUNqQixPQUFrQztJQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNqRyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUMzQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDakMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDekIsQ0FBQztJQUNGLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgYml0Y29pbk1lc3NhZ2UgZnJvbSAnYml0Y29pbmpzLW1lc3NhZ2UnO1xuLyoqXG4gKiBiaXAzMi1hd2FyZSB3cmFwcGVyIGFyb3VuZCBiaXRjb2luLW1lc3NhZ2UgcGFja2FnZVxuICogQHNlZSB7Yml0Y29pbk1lc3NhZ2Uuc2lnbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25NZXNzYWdlKFxuICBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsXG4gIHByaXZhdGVLZXk6IEJJUDMySW50ZXJmYWNlIHwgQnVmZmVyLFxuICBuZXR3b3JrOiB7IG1lc3NhZ2VQcmVmaXg6IHN0cmluZyB9XG4pOiBCdWZmZXIge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwcml2YXRlS2V5KSkge1xuICAgIHByaXZhdGVLZXkgPSBwcml2YXRlS2V5LnByaXZhdGVLZXkgYXMgQnVmZmVyO1xuICAgIGlmICghcHJpdmF0ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgcHJpdmF0ZUtleWApO1xuICAgIH1cbiAgfVxuICBpZiAobmV0d29yayA9PT0gbnVsbCB8fCB0eXBlb2YgbmV0d29yayAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ldHdvcmsubWVzc2FnZVByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnQgJ25ldHdvcmsnYCk7XG4gIH1cbiAgY29uc3QgY29tcHJlc3NlZCA9IHRydWU7XG4gIHJldHVybiBiaXRjb2luTWVzc2FnZS5zaWduKG1lc3NhZ2UsIHByaXZhdGVLZXksIGNvbXByZXNzZWQsIG5ldHdvcmsubWVzc2FnZVByZWZpeCk7XG59XG5cbi8qKlxuICogYmlwMzItYXdhcmUgd3JhcHBlciBhcm91bmQgYml0Y29pbi1tZXNzYWdlIHBhY2thZ2VcbiAqIEBzZWUge2JpdGNvaW5NZXNzYWdlLnZlcmlmeX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeU1lc3NhZ2UoXG4gIG1lc3NhZ2U6IHN0cmluZyB8IEJ1ZmZlcixcbiAgcHVibGljS2V5OiBCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcixcbiAgc2lnbmF0dXJlOiBCdWZmZXIsXG4gIG5ldHdvcms6IHsgbWVzc2FnZVByZWZpeDogc3RyaW5nIH1cbik6IGJvb2xlYW4ge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwdWJsaWNLZXkpKSB7XG4gICAgcHVibGljS2V5ID0gcHVibGljS2V5LnB1YmxpY0tleTtcbiAgfVxuICBpZiAobmV0d29yayA9PT0gbnVsbCB8fCB0eXBlb2YgbmV0d29yayAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ldHdvcmsubWVzc2FnZVByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnQgJ25ldHdvcmsnYCk7XG4gIH1cblxuICBjb25zdCBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLnRvQmFzZTU4Q2hlY2soXG4gICAgdXR4b2xpYi5jcnlwdG8uaGFzaDE2MChwdWJsaWNLZXkpLFxuICAgIHV0eG9saWIubmV0d29ya3MuYml0Y29pbi5wdWJLZXlIYXNoLFxuICAgIHV0eG9saWIubmV0d29ya3MuYml0Y29pblxuICApO1xuICByZXR1cm4gYml0Y29pbk1lc3NhZ2UudmVyaWZ5KG1lc3NhZ2UsIGFkZHJlc3MsIHNpZ25hdHVyZSwgbmV0d29yay5tZXNzYWdlUHJlZml4KTtcbn1cbiJdfQ==
@@ -1,11 +1,16 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
2
  import { Descriptor } from '@bitgo/wasm-miniscript';
3
- import { DescriptorMap } from './DescriptorMap';
4
3
  /**
5
4
  * Get a standard output descriptor that corresponds to the proprietary HD wallet setup
6
5
  * used in BitGo wallets.
7
6
  * Only supports a subset of script types.
8
7
  */
9
8
  export declare function getDescriptorForScriptType(rootWalletKeys: utxolib.bitgo.RootWalletKeys, scriptType: 'p2sh' | 'p2shP2wsh' | 'p2wsh', scope: 'internal' | 'external'): Descriptor;
10
- export declare function getNamedDescriptorsForRootWalletKeys(rootWalletKeys: utxolib.bitgo.RootWalletKeys): DescriptorMap;
9
+ /**
10
+ * Get a map of named descriptors for the given root wallet keys.
11
+ * Unsupported script types will have a value of null.
12
+ * Currently supports p2sh, p2shP2wsh, and p2wsh script types.
13
+ * @param rootWalletKeys
14
+ */
15
+ export declare function getNamedDescriptorsForRootWalletKeys(rootWalletKeys: utxolib.bitgo.RootWalletKeys): Map<string, Descriptor | null>;
11
16
  //# sourceMappingURL=fromFixedScriptWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fromFixedScriptWallet.d.ts","sourceRoot":"","sources":["../../../src/descriptor/fromFixedScriptWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAO,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAC5C,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,EAC1C,KAAK,EAAE,UAAU,GAAG,UAAU,GAC7B,UAAU,CAkBZ;AAED,wBAAgB,oCAAoC,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,aAAa,CAQhH"}
1
+ {"version":3,"file":"fromFixedScriptWallet.d.ts","sourceRoot":"","sources":["../../../src/descriptor/fromFixedScriptWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAO,MAAM,wBAAwB,CAAC;AAYzD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAC5C,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,EAC1C,KAAK,EAAE,UAAU,GAAG,UAAU,GAC7B,UAAU,CAkBZ;AAQD;;;;;GAKG;AACH,wBAAgB,oCAAoC,CAClD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,GAC3C,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,CAUhC"}
@@ -69,9 +69,20 @@ function getDescriptorForScriptType(rootWalletKeys, scriptType, scope) {
69
69
  throw new Error(`Unsupported script type ${scriptType}`);
70
70
  }
71
71
  }
72
+ function isSupportedScriptType(scriptType) {
73
+ return ['p2sh', 'p2shP2wsh', 'p2wsh'].includes(scriptType);
74
+ }
75
+ /**
76
+ * Get a map of named descriptors for the given root wallet keys.
77
+ * Unsupported script types will have a value of null.
78
+ * Currently supports p2sh, p2shP2wsh, and p2wsh script types.
79
+ * @param rootWalletKeys
80
+ */
72
81
  function getNamedDescriptorsForRootWalletKeys(rootWalletKeys) {
73
- const scriptTypes = ['p2sh', 'p2shP2wsh', 'p2wsh'];
74
82
  const scopes = ['external', 'internal'];
75
- return new Map(scriptTypes.flatMap((scriptType) => scopes.map((scope) => [`${scriptType}/${scope}`, getDescriptorForScriptType(rootWalletKeys, scriptType, scope)])));
83
+ return new Map(utxolib.bitgo.outputScripts.scriptTypes2Of3.flatMap((scriptType) => scopes.map((scope) => [
84
+ `${scriptType}/${scope}`,
85
+ isSupportedScriptType(scriptType) ? getDescriptorForScriptType(rootWalletKeys, scriptType, scope) : null,
86
+ ])));
76
87
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUZpeGVkU2NyaXB0V2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZnJvbUZpeGVkU2NyaXB0V2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLGdFQXNCQztBQUVELG9GQVFDO0FBcERELDhEQUFnRDtBQUNoRCw0REFBeUQ7QUFJekQsdUVBQXVFO0FBQ3ZFLFNBQVMsTUFBTSxDQUFDLGNBQTRDLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjtJQUMvRixJQUFJLFFBQVEsS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25FLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRCxPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3RELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLGNBQTRDLEVBQzVDLFVBQTBDLEVBQzFDLEtBQThCO0lBRTlCLE1BQU0sS0FBSyxHQUNULEtBQUssS0FBSyxVQUFVO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBdUI7UUFDaEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ3JGLENBQUM7SUFDRixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sNEJBQVUsQ0FBQyxVQUFVLENBQUMscUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzRSxLQUFLLFdBQVc7WUFDZCxPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRixLQUFLLE9BQU87WUFDVixPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUU7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isb0NBQW9DLENBQUMsY0FBNEM7SUFDL0YsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0lBQzVELE1BQU0sTUFBTSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBVSxDQUFDO0lBQ2pELE9BQU8sSUFBSSxHQUFHLENBQ1osV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxVQUFVLElBQUksS0FBSyxFQUFFLEVBQUUsMEJBQTBCLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2pILENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IsIGFzdCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi9EZXNjcmlwdG9yTWFwJztcblxuLyoqIEV4cGFuZCBhIHRlbXBsYXRlIHdpdGggdGhlIGdpdmVuIHJvb3Qgd2FsbGV0IGtleXMgYW5kIGNoYWluIGNvZGUgKi9cbmZ1bmN0aW9uIGV4cGFuZChyb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cywga2V5SW5kZXg6IG51bWJlciwgY2hhaW5Db2RlOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoa2V5SW5kZXggIT09IDAgJiYga2V5SW5kZXggIT09IDEgJiYga2V5SW5kZXggIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IGluZGV4Jyk7XG4gIH1cbiAgY29uc3QgeHB1YiA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtrZXlJbmRleF0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICBjb25zdCBwcmVmaXggPSByb290V2FsbGV0S2V5cy5kZXJpdmF0aW9uUHJlZml4ZXNba2V5SW5kZXhdO1xuICByZXR1cm4geHB1YiArICcvJyArIHByZWZpeCArICcvJyArIGNoYWluQ29kZSArICcvKic7XG59XG5cbi8qKlxuICogR2V0IGEgc3RhbmRhcmQgb3V0cHV0IGRlc2NyaXB0b3IgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcHJpZXRhcnkgSEQgd2FsbGV0IHNldHVwXG4gKiB1c2VkIGluIEJpdEdvIHdhbGxldHMuXG4gKiBPbmx5IHN1cHBvcnRzIGEgc3Vic2V0IG9mIHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JGb3JTY3JpcHRUeXBlKFxuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgc2NyaXB0VHlwZTogJ3Ayc2gnIHwgJ3Ayc2hQMndzaCcgfCAncDJ3c2gnLFxuICBzY29wZTogJ2ludGVybmFsJyB8ICdleHRlcm5hbCdcbik6IERlc2NyaXB0b3Ige1xuICBjb25zdCBjaGFpbiA9XG4gICAgc2NvcGUgPT09ICdleHRlcm5hbCdcbiAgICAgID8gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShzY3JpcHRUeXBlKVxuICAgICAgOiB1dHhvbGliLmJpdGdvLmdldEludGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpO1xuICBjb25zdCBtdWx0aTogYXN0Lk1pbmlzY3JpcHROb2RlID0ge1xuICAgIG11bHRpOiBbMiwgLi4ucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoXywgaSkgPT4gZXhwYW5kKHJvb3RXYWxsZXRLZXlzLCBpLCBjaGFpbikpXSxcbiAgfTtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgc2g6IG11bHRpIH0pLCAnZGVyaXZhYmxlJyk7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyBzaDogeyB3c2g6IG11bHRpIH0gfSksICdkZXJpdmFibGUnKTtcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgd3NoOiBtdWx0aSB9KSwgJ2Rlcml2YWJsZScpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWREZXNjcmlwdG9yc0ZvclJvb3RXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKTogRGVzY3JpcHRvck1hcCB7XG4gIGNvbnN0IHNjcmlwdFR5cGVzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCddIGFzIGNvbnN0O1xuICBjb25zdCBzY29wZXMgPSBbJ2V4dGVybmFsJywgJ2ludGVybmFsJ10gYXMgY29uc3Q7XG4gIHJldHVybiBuZXcgTWFwKFxuICAgIHNjcmlwdFR5cGVzLmZsYXRNYXAoKHNjcmlwdFR5cGUpID0+XG4gICAgICBzY29wZXMubWFwKChzY29wZSkgPT4gW2Ake3NjcmlwdFR5cGV9LyR7c2NvcGV9YCwgZ2V0RGVzY3JpcHRvckZvclNjcmlwdFR5cGUocm9vdFdhbGxldEtleXMsIHNjcmlwdFR5cGUsIHNjb3BlKV0pXG4gICAgKVxuICApO1xufVxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUZpeGVkU2NyaXB0V2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZnJvbUZpeGVkU2NyaXB0V2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLGdFQXNCQztBQWNELG9GQVlDO0FBbEVELDhEQUFnRDtBQUNoRCw0REFBeUQ7QUFFekQsdUVBQXVFO0FBQ3ZFLFNBQVMsTUFBTSxDQUFDLGNBQTRDLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjtJQUMvRixJQUFJLFFBQVEsS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25FLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRCxPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3RELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLGNBQTRDLEVBQzVDLFVBQTBDLEVBQzFDLEtBQThCO0lBRTlCLE1BQU0sS0FBSyxHQUNULEtBQUssS0FBSyxVQUFVO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBdUI7UUFDaEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ3JGLENBQUM7SUFDRixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sNEJBQVUsQ0FBQyxVQUFVLENBQUMscUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzRSxLQUFLLFdBQVc7WUFDZCxPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRixLQUFLLE9BQU87WUFDVixPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUU7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsVUFBc0Q7SUFFdEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9DQUFvQyxDQUNsRCxjQUE0QztJQUU1QyxNQUFNLE1BQU0sR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQVUsQ0FBQztJQUNqRCxPQUFPLElBQUksR0FBRyxDQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwQixHQUFHLFVBQVUsSUFBSSxLQUFLLEVBQUU7UUFDeEIscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDekcsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IsIGFzdCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG4vKiogRXhwYW5kIGEgdGVtcGxhdGUgd2l0aCB0aGUgZ2l2ZW4gcm9vdCB3YWxsZXQga2V5cyBhbmQgY2hhaW4gY29kZSAqL1xuZnVuY3Rpb24gZXhwYW5kKHJvb3RXYWxsZXRLZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLCBrZXlJbmRleDogbnVtYmVyLCBjaGFpbkNvZGU6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChrZXlJbmRleCAhPT0gMCAmJiBrZXlJbmRleCAhPT0gMSAmJiBrZXlJbmRleCAhPT0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgaW5kZXgnKTtcbiAgfVxuICBjb25zdCB4cHViID0gcm9vdFdhbGxldEtleXMudHJpcGxlW2tleUluZGV4XS5uZXV0ZXJlZCgpLnRvQmFzZTU4KCk7XG4gIGNvbnN0IHByZWZpeCA9IHJvb3RXYWxsZXRLZXlzLmRlcml2YXRpb25QcmVmaXhlc1trZXlJbmRleF07XG4gIHJldHVybiB4cHViICsgJy8nICsgcHJlZml4ICsgJy8nICsgY2hhaW5Db2RlICsgJy8qJztcbn1cblxuLyoqXG4gKiBHZXQgYSBzdGFuZGFyZCBvdXRwdXQgZGVzY3JpcHRvciB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBwcm9wcmlldGFyeSBIRCB3YWxsZXQgc2V0dXBcbiAqIHVzZWQgaW4gQml0R28gd2FsbGV0cy5cbiAqIE9ubHkgc3VwcG9ydHMgYSBzdWJzZXQgb2Ygc2NyaXB0IHR5cGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckZvclNjcmlwdFR5cGUoXG4gIHJvb3RXYWxsZXRLZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBzY3JpcHRUeXBlOiAncDJzaCcgfCAncDJzaFAyd3NoJyB8ICdwMndzaCcsXG4gIHNjb3BlOiAnaW50ZXJuYWwnIHwgJ2V4dGVybmFsJ1xuKTogRGVzY3JpcHRvciB7XG4gIGNvbnN0IGNoYWluID1cbiAgICBzY29wZSA9PT0gJ2V4dGVybmFsJ1xuICAgICAgPyB1dHhvbGliLmJpdGdvLmdldEV4dGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpXG4gICAgICA6IHV0eG9saWIuYml0Z28uZ2V0SW50ZXJuYWxDaGFpbkNvZGUoc2NyaXB0VHlwZSk7XG4gIGNvbnN0IG11bHRpOiBhc3QuTWluaXNjcmlwdE5vZGUgPSB7XG4gICAgbXVsdGk6IFsyLCAuLi5yb290V2FsbGV0S2V5cy50cmlwbGUubWFwKChfLCBpKSA9PiBleHBhbmQocm9vdFdhbGxldEtleXMsIGksIGNoYWluKSldLFxuICB9O1xuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyBzaDogbXVsdGkgfSksICdkZXJpdmFibGUnKTtcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgICAgcmV0dXJuIERlc2NyaXB0b3IuZnJvbVN0cmluZyhhc3QuZm9ybWF0Tm9kZSh7IHNoOiB7IHdzaDogbXVsdGkgfSB9KSwgJ2Rlcml2YWJsZScpO1xuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyB3c2g6IG11bHRpIH0pLCAnZGVyaXZhYmxlJyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzU3VwcG9ydGVkU2NyaXB0VHlwZShcbiAgc2NyaXB0VHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGUyT2YzXG4pOiBzY3JpcHRUeXBlIGlzICdwMnNoJyB8ICdwMnNoUDJ3c2gnIHwgJ3Ayd3NoJyB7XG4gIHJldHVybiBbJ3Ayc2gnLCAncDJzaFAyd3NoJywgJ3Ayd3NoJ10uaW5jbHVkZXMoc2NyaXB0VHlwZSk7XG59XG5cbi8qKlxuICogR2V0IGEgbWFwIG9mIG5hbWVkIGRlc2NyaXB0b3JzIGZvciB0aGUgZ2l2ZW4gcm9vdCB3YWxsZXQga2V5cy5cbiAqIFVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlcyB3aWxsIGhhdmUgYSB2YWx1ZSBvZiBudWxsLlxuICogQ3VycmVudGx5IHN1cHBvcnRzIHAyc2gsIHAyc2hQMndzaCwgYW5kIHAyd3NoIHNjcmlwdCB0eXBlcy5cbiAqIEBwYXJhbSByb290V2FsbGV0S2V5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWREZXNjcmlwdG9yc0ZvclJvb3RXYWxsZXRLZXlzKFxuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5c1xuKTogTWFwPHN0cmluZywgRGVzY3JpcHRvciB8IG51bGw+IHtcbiAgY29uc3Qgc2NvcGVzID0gWydleHRlcm5hbCcsICdpbnRlcm5hbCddIGFzIGNvbnN0O1xuICByZXR1cm4gbmV3IE1hcChcbiAgICB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuc2NyaXB0VHlwZXMyT2YzLmZsYXRNYXAoKHNjcmlwdFR5cGUpID0+XG4gICAgICBzY29wZXMubWFwKChzY29wZSkgPT4gW1xuICAgICAgICBgJHtzY3JpcHRUeXBlfS8ke3Njb3BlfWAsXG4gICAgICAgIGlzU3VwcG9ydGVkU2NyaXB0VHlwZShzY3JpcHRUeXBlKSA/IGdldERlc2NyaXB0b3JGb3JTY3JpcHRUeXBlKHJvb3RXYWxsZXRLZXlzLCBzY3JpcHRUeXBlLCBzY29wZSkgOiBudWxsLFxuICAgICAgXSlcbiAgICApXG4gICk7XG59XG4iXX0=
@@ -4,6 +4,8 @@ export * from './DescriptorMap';
4
4
  export * from './derive';
5
5
  export * from './Output';
6
6
  export * from './VirtualSize';
7
+ export * from './fromFixedScriptWallet';
8
+ export * from './parse/PatternMatcher';
7
9
  /** @deprecated - import from @bitgo-beta/utxo-core directly instead */
8
10
  export * from '../Output';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAE9B,uEAAuE;AACvE,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/descriptor/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AAEvC,uEAAuE;AACvE,cAAc,WAAW,CAAC"}
@@ -20,6 +20,8 @@ __exportStar(require("./DescriptorMap"), exports);
20
20
  __exportStar(require("./derive"), exports);
21
21
  __exportStar(require("./Output"), exports);
22
22
  __exportStar(require("./VirtualSize"), exports);
23
+ __exportStar(require("./fromFixedScriptWallet"), exports);
24
+ __exportStar(require("./parse/PatternMatcher"), exports);
23
25
  /** @deprecated - import from @bitgo-beta/utxo-core directly instead */
24
26
  __exportStar(require("../Output"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFFOUIsdUVBQXVFO0FBQ3ZFLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHNidCc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9EZXNjcmlwdG9yTWFwJztcbmV4cG9ydCAqIGZyb20gJy4vZGVyaXZlJztcbmV4cG9ydCAqIGZyb20gJy4vT3V0cHV0JztcbmV4cG9ydCAqIGZyb20gJy4vVmlydHVhbFNpemUnO1xuXG4vKiogQGRlcHJlY2F0ZWQgLSBpbXBvcnQgZnJvbSBAYml0Z28tYmV0YS91dHhvLWNvcmUgZGlyZWN0bHkgaW5zdGVhZCAqL1xuZXhwb3J0ICogZnJvbSAnLi4vT3V0cHV0JztcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6QixnREFBOEI7QUFDOUIsMERBQXdDO0FBQ3hDLHlEQUF1QztBQUV2Qyx1RUFBdUU7QUFDdkUsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wc2J0JztcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL0Rlc2NyaXB0b3JNYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXJpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9PdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9WaXJ0dWFsU2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb21GaXhlZFNjcmlwdFdhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnNlL1BhdHRlcm5NYXRjaGVyJztcblxuLyoqIEBkZXByZWNhdGVkIC0gaW1wb3J0IGZyb20gQGJpdGdvLWJldGEvdXR4by1jb3JlIGRpcmVjdGx5IGluc3RlYWQgKi9cbmV4cG9ydCAqIGZyb20gJy4uL091dHB1dCc7XG4iXX0=
@@ -0,0 +1,14 @@
1
+ export type PatternVar = {
2
+ $var: string;
3
+ };
4
+ export type Pattern = PatternVar | string | number | {
5
+ [key: string]: Pattern | Pattern[];
6
+ } | Pattern[];
7
+ export type ExtractedVars = Record<string, unknown>;
8
+ export declare class PatternMatcher {
9
+ match(node: unknown, pattern: Pattern): ExtractedVars | null;
10
+ private matchNode;
11
+ private isPatternVar;
12
+ private deepEqual;
13
+ }
14
+ //# sourceMappingURL=PatternMatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternMatcher.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/parse/PatternMatcher.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,CAAA;CAAE,GAAG,OAAO,EAAE,CAAC;AAExG,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,qBAAa,cAAc;IACzB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI;IAK5D,OAAO,CAAC,SAAS;IAwCjB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;CAgBlB"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PatternMatcher = void 0;
4
+ class PatternMatcher {
5
+ match(node, pattern) {
6
+ const vars = {};
7
+ return this.matchNode(node, pattern, vars) ? vars : null;
8
+ }
9
+ matchNode(node, pattern, vars) {
10
+ // Variable placeholder
11
+ if (this.isPatternVar(pattern)) {
12
+ const varName = pattern.$var;
13
+ if (varName in vars) {
14
+ return this.deepEqual(vars[varName], node);
15
+ }
16
+ vars[varName] = node;
17
+ return true;
18
+ }
19
+ // Primitive values
20
+ if (typeof node !== typeof pattern)
21
+ return false;
22
+ if (typeof node === 'string' || typeof node === 'number') {
23
+ return node === pattern;
24
+ }
25
+ // Arrays
26
+ if (Array.isArray(node) && Array.isArray(pattern)) {
27
+ return node.length === pattern.length && node.every((item, i) => this.matchNode(item, pattern[i], vars));
28
+ }
29
+ // Objects
30
+ if (typeof node === 'object' && typeof pattern === 'object' && node !== null && pattern !== null) {
31
+ const nodeKeys = Object.keys(node);
32
+ const patternKeys = Object.keys(pattern);
33
+ return (nodeKeys.length === patternKeys.length &&
34
+ nodeKeys.every((key) => patternKeys.includes(key) &&
35
+ this.matchNode(node[key], pattern[key], vars)));
36
+ }
37
+ return false;
38
+ }
39
+ isPatternVar(value) {
40
+ return value !== null && typeof value === 'object' && '$var' in value;
41
+ }
42
+ deepEqual(a, b) {
43
+ if (a === b)
44
+ return true;
45
+ if (typeof a !== typeof b)
46
+ return false;
47
+ if (Array.isArray(a) && Array.isArray(b)) {
48
+ return a.length === b.length && a.every((item, i) => this.deepEqual(item, b[i]));
49
+ }
50
+ if (typeof a === 'object' && a !== null && typeof b === 'object' && b !== null) {
51
+ const keysA = Object.keys(a);
52
+ const keysB = Object.keys(b);
53
+ return (keysA.length === keysB.length &&
54
+ keysA.every((key) => this.deepEqual(a[key], b[key])));
55
+ }
56
+ return false;
57
+ }
58
+ }
59
+ exports.PatternMatcher = PatternMatcher;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGF0dGVybk1hdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9wYXJzZS9QYXR0ZXJuTWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFhLGNBQWM7SUFDekIsS0FBSyxDQUFDLElBQWEsRUFBRSxPQUFnQjtRQUNuQyxNQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzRCxDQUFDO0lBRU8sU0FBUyxDQUFDLElBQWEsRUFBRSxPQUFnQixFQUFFLElBQW1CO1FBQ3BFLHVCQUF1QjtRQUN2QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzdCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixJQUFJLE9BQU8sSUFBSSxLQUFLLE9BQU8sT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxLQUFLLE9BQU8sQ0FBQztRQUMxQixDQUFDO1FBRUQsU0FBUztRQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFFRCxVQUFVO1FBQ1YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pHLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6QyxPQUFPLENBQ0wsUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTTtnQkFDdEMsUUFBUSxDQUFDLEtBQUssQ0FDWixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUUsSUFBZ0MsQ0FBQyxHQUFHLENBQUMsRUFBRyxPQUFtQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUMxRyxDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWM7UUFDakMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxTQUFTLENBQUMsQ0FBVSxFQUFFLENBQVU7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3pCLElBQUksT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQy9FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQ0wsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtnQkFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRSxDQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFHLENBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUMvRyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBbEVELHdDQWtFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFBhdHRlcm4gbWF0Y2hpbmcgdHlwZXNcbmV4cG9ydCB0eXBlIFBhdHRlcm5WYXIgPSB7ICR2YXI6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgUGF0dGVybiA9IFBhdHRlcm5WYXIgfCBzdHJpbmcgfCBudW1iZXIgfCB7IFtrZXk6IHN0cmluZ106IFBhdHRlcm4gfCBQYXR0ZXJuW10gfSB8IFBhdHRlcm5bXTtcblxuZXhwb3J0IHR5cGUgRXh0cmFjdGVkVmFycyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgY2xhc3MgUGF0dGVybk1hdGNoZXIge1xuICBtYXRjaChub2RlOiB1bmtub3duLCBwYXR0ZXJuOiBQYXR0ZXJuKTogRXh0cmFjdGVkVmFycyB8IG51bGwge1xuICAgIGNvbnN0IHZhcnM6IEV4dHJhY3RlZFZhcnMgPSB7fTtcbiAgICByZXR1cm4gdGhpcy5tYXRjaE5vZGUobm9kZSwgcGF0dGVybiwgdmFycykgPyB2YXJzIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbWF0Y2hOb2RlKG5vZGU6IHVua25vd24sIHBhdHRlcm46IFBhdHRlcm4sIHZhcnM6IEV4dHJhY3RlZFZhcnMpOiBib29sZWFuIHtcbiAgICAvLyBWYXJpYWJsZSBwbGFjZWhvbGRlclxuICAgIGlmICh0aGlzLmlzUGF0dGVyblZhcihwYXR0ZXJuKSkge1xuICAgICAgY29uc3QgdmFyTmFtZSA9IHBhdHRlcm4uJHZhcjtcbiAgICAgIGlmICh2YXJOYW1lIGluIHZhcnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVlcEVxdWFsKHZhcnNbdmFyTmFtZV0sIG5vZGUpO1xuICAgICAgfVxuICAgICAgdmFyc1t2YXJOYW1lXSA9IG5vZGU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBQcmltaXRpdmUgdmFsdWVzXG4gICAgaWYgKHR5cGVvZiBub2RlICE9PSB0eXBlb2YgcGF0dGVybikgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gbm9kZSA9PT0gcGF0dGVybjtcbiAgICB9XG5cbiAgICAvLyBBcnJheXNcbiAgICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSAmJiBBcnJheS5pc0FycmF5KHBhdHRlcm4pKSB7XG4gICAgICByZXR1cm4gbm9kZS5sZW5ndGggPT09IHBhdHRlcm4ubGVuZ3RoICYmIG5vZGUuZXZlcnkoKGl0ZW0sIGkpID0+IHRoaXMubWF0Y2hOb2RlKGl0ZW0sIHBhdHRlcm5baV0sIHZhcnMpKTtcbiAgICB9XG5cbiAgICAvLyBPYmplY3RzXG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcGF0dGVybiA9PT0gJ29iamVjdCcgJiYgbm9kZSAhPT0gbnVsbCAmJiBwYXR0ZXJuICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlS2V5cyA9IE9iamVjdC5rZXlzKG5vZGUpO1xuICAgICAgY29uc3QgcGF0dGVybktleXMgPSBPYmplY3Qua2V5cyhwYXR0ZXJuKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgbm9kZUtleXMubGVuZ3RoID09PSBwYXR0ZXJuS2V5cy5sZW5ndGggJiZcbiAgICAgICAgbm9kZUtleXMuZXZlcnkoXG4gICAgICAgICAgKGtleSkgPT5cbiAgICAgICAgICAgIHBhdHRlcm5LZXlzLmluY2x1ZGVzKGtleSkgJiZcbiAgICAgICAgICAgIHRoaXMubWF0Y2hOb2RlKChub2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldLCAocGF0dGVybiBhcyBSZWNvcmQ8c3RyaW5nLCBQYXR0ZXJuPilba2V5XSwgdmFycylcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzUGF0dGVyblZhcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFBhdHRlcm5WYXIge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICckdmFyJyBpbiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGVlcEVxdWFsKGE6IHVua25vd24sIGI6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHR5cGVvZiBhICE9PSB0eXBlb2YgYikgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikpIHtcbiAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeSgoaXRlbSwgaSkgPT4gdGhpcy5kZWVwRXF1YWwoaXRlbSwgYltpXSkpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGEgPT09ICdvYmplY3QnICYmIGEgIT09IG51bGwgJiYgdHlwZW9mIGIgPT09ICdvYmplY3QnICYmIGIgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGtleXNBID0gT2JqZWN0LmtleXMoYSk7XG4gICAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKGIpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAga2V5c0EubGVuZ3RoID09PSBrZXlzQi5sZW5ndGggJiZcbiAgICAgICAga2V5c0EuZXZlcnkoKGtleSkgPT4gdGhpcy5kZWVwRXF1YWwoKGEgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sIChiIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
@@ -1,4 +1,6 @@
1
+ import { TapLeafScript } from 'bip174/src/lib/interfaces';
1
2
  import * as utxolib from '@bitgo-beta/utxo-lib';
3
+ import { Miniscript } from '@bitgo/wasm-miniscript';
2
4
  import { DerivedDescriptorWalletOutput, WithOptDescriptor } from '../Output';
3
5
  import { Output } from '../../Output';
4
6
  /**
@@ -6,6 +8,7 @@ import { Output } from '../../Output';
6
8
  * Reference: https://github.com/bitcoin/bitcoin/blob/v25.1/src/rpc/rawtransaction_util.cpp#L49
7
9
  * */
8
10
  export declare const MAX_BIP125_RBF_SEQUENCE: number;
11
+ export declare function findTapLeafScript(input: TapLeafScript[], script: Buffer | Miniscript): TapLeafScript;
9
12
  export type PsbtParams = {
10
13
  network: utxolib.Network;
11
14
  version?: number;
@@ -13,6 +16,7 @@ export type PsbtParams = {
13
16
  sequence?: number;
14
17
  };
15
18
  export type DerivedDescriptorTransactionInput = DerivedDescriptorWalletOutput & {
19
+ selectTapLeafScript?: Miniscript;
16
20
  sequence?: number;
17
21
  };
18
22
  export declare function createPsbt(params: PsbtParams, inputs: DerivedDescriptorTransactionInput[], outputs: WithOptDescriptor<Output>[]): utxolib.bitgo.UtxoPsbt;
@@ -1 +1 @@
1
- {"version":3,"file":"createPsbt.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/createPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC;;;KAGK;AACL,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AA8BtD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,6BAA6B,GAAG;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,iCAAiC,EAAE,EAC3C,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,GACnC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAYxB"}
1
+ {"version":3,"file":"createPsbt.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/createPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAc,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC;;;KAGK;AACL,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAcpG;AAuCD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,6BAA6B,GAAG;IAC9E,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,UAAU,CACxB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,iCAAiC,EAAE,EAC3C,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,GACnC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAexB"}
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.MAX_BIP125_RBF_SEQUENCE = void 0;
37
+ exports.findTapLeafScript = findTapLeafScript;
37
38
  exports.createPsbt = createPsbt;
38
39
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
40
  const wrap_1 = require("./wrap");
@@ -43,18 +44,39 @@ const assertSatisfiable_1 = require("./assertSatisfiable");
43
44
  * Reference: https://github.com/bitcoin/bitcoin/blob/v25.1/src/rpc/rawtransaction_util.cpp#L49
44
45
  * */
45
46
  exports.MAX_BIP125_RBF_SEQUENCE = 0xffffffff - 2;
46
- function updateInputsWithDescriptors(psbt, descriptors) {
47
- if (psbt.txInputs.length !== descriptors.length) {
48
- throw new Error(`Input count mismatch (psbt=${psbt.txInputs.length}, descriptors=${descriptors.length})`);
47
+ function findTapLeafScript(input, script) {
48
+ if (!Buffer.isBuffer(script)) {
49
+ script = Buffer.from(script.encode());
50
+ }
51
+ const matches = input.filter((leaf) => {
52
+ return leaf.script.equals(script);
53
+ });
54
+ if (matches.length === 0) {
55
+ throw new Error(`No tapLeafScript found for script: ${script.toString('hex')}`);
56
+ }
57
+ if (matches.length > 1) {
58
+ throw new Error(`Multiple tapLeafScripts found for script: ${script.toString('hex')}`);
59
+ }
60
+ return matches[0];
61
+ }
62
+ function updateInputsWithDescriptors(psbt, inputParams) {
63
+ if (psbt.txInputs.length !== inputParams.length) {
64
+ throw new Error(`Input count mismatch (psbt=${psbt.txInputs.length}, inputParams=${inputParams.length})`);
49
65
  }
50
66
  const wrappedPsbt = (0, wrap_1.toWrappedPsbt)(psbt);
51
- for (const [inputIndex, descriptor] of descriptors.entries()) {
52
- (0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex, descriptor);
53
- wrappedPsbt.updateInputWithDescriptor(inputIndex, descriptor);
67
+ for (const [inputIndex, v] of inputParams.entries()) {
68
+ (0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex, v.descriptor);
69
+ wrappedPsbt.updateInputWithDescriptor(inputIndex, v.descriptor);
54
70
  }
55
71
  const unwrappedPsbt = (0, wrap_1.toUtxoPsbt)(wrappedPsbt, psbt.network);
56
72
  for (const inputIndex in psbt.txInputs) {
57
- psbt.data.inputs[inputIndex] = unwrappedPsbt.data.inputs[inputIndex];
73
+ const preparedInput = unwrappedPsbt.data.inputs[inputIndex];
74
+ const v = inputParams[inputIndex];
75
+ if (v.selectTapLeafScript && preparedInput.tapLeafScript) {
76
+ const selected = findTapLeafScript(preparedInput.tapLeafScript, v.selectTapLeafScript);
77
+ preparedInput.tapLeafScript = [selected];
78
+ }
79
+ psbt.data.inputs[inputIndex] = preparedInput;
58
80
  }
59
81
  }
60
82
  function updateOutputsWithDescriptors(psbt, descriptors) {
@@ -75,8 +97,11 @@ function createPsbt(params, inputs, outputs) {
75
97
  psbt.setLocktime(params.locktime ?? 0);
76
98
  psbt.addInputs(inputs.map((i) => ({ ...i, sequence: i.sequence ?? params.sequence ?? exports.MAX_BIP125_RBF_SEQUENCE })));
77
99
  psbt.addOutputs(outputs);
78
- updateInputsWithDescriptors(psbt, inputs.map((i) => i.descriptor));
100
+ updateInputsWithDescriptors(psbt, inputs.map(({ descriptor, selectTapLeafScript }) => ({
101
+ descriptor,
102
+ selectTapLeafScript,
103
+ })));
79
104
  updateOutputsWithDescriptors(psbt, outputs);
80
105
  return psbt;
81
106
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3BzYnQvY3JlYXRlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzREEsZ0NBZ0JDO0FBdEVELDhEQUFnRDtBQU1oRCxpQ0FBbUQ7QUFDbkQsMkRBQXdEO0FBRXhEOzs7S0FHSztBQUNRLFFBQUEsdUJBQXVCLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUV0RCxTQUFTLDJCQUEyQixDQUFDLElBQTRCLEVBQUUsV0FBeUI7SUFDMUYsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGlCQUFpQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBQSxvQkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM3RCxJQUFBLHFDQUFpQixFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsV0FBVyxDQUFDLHlCQUF5QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBQSxpQkFBVSxFQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLDRCQUE0QixDQUFDLElBQTRCLEVBQUUsV0FBd0M7SUFDMUcsTUFBTSxXQUFXLEdBQUcsSUFBQSxvQkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLEtBQUssTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDbEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFBLGlCQUFVLEVBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRSxDQUFDO0FBQ0gsQ0FBQztBQWFELFNBQWdCLFVBQVUsQ0FDeEIsTUFBa0IsRUFDbEIsTUFBMkMsRUFDM0MsT0FBb0M7SUFFcEMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSwrQkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsMkJBQTJCLENBQ3pCLElBQUksRUFDSixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQ2hDLENBQUM7SUFDRiw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5cbmltcG9ydCB7IERlcml2ZWREZXNjcmlwdG9yV2FsbGV0T3V0cHV0LCBXaXRoT3B0RGVzY3JpcHRvciB9IGZyb20gJy4uL091dHB1dCc7XG5pbXBvcnQgeyBPdXRwdXQgfSBmcm9tICcuLi8uLi9PdXRwdXQnO1xuXG5pbXBvcnQgeyB0b1V0eG9Qc2J0LCB0b1dyYXBwZWRQc2J0IH0gZnJvbSAnLi93cmFwJztcbmltcG9ydCB7IGFzc2VydFNhdGlzZmlhYmxlIH0gZnJvbSAnLi9hc3NlcnRTYXRpc2ZpYWJsZSc7XG5cbi8qKlxuICogTm9uLUZpbmFsIChSZXBsYWNlYWJsZSlcbiAqIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9ibG9iL3YyNS4xL3NyYy9ycGMvcmF3dHJhbnNhY3Rpb25fdXRpbC5jcHAjTDQ5XG4gKiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9CSVAxMjVfUkJGX1NFUVVFTkNFID0gMHhmZmZmZmZmZiAtIDI7XG5cbmZ1bmN0aW9uIHVwZGF0ZUlucHV0c1dpdGhEZXNjcmlwdG9ycyhwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LCBkZXNjcmlwdG9yczogRGVzY3JpcHRvcltdKSB7XG4gIGlmIChwc2J0LnR4SW5wdXRzLmxlbmd0aCAhPT0gZGVzY3JpcHRvcnMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnB1dCBjb3VudCBtaXNtYXRjaCAocHNidD0ke3BzYnQudHhJbnB1dHMubGVuZ3RofSwgZGVzY3JpcHRvcnM9JHtkZXNjcmlwdG9ycy5sZW5ndGh9KWApO1xuICB9XG4gIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidChwc2J0KTtcbiAgZm9yIChjb25zdCBbaW5wdXRJbmRleCwgZGVzY3JpcHRvcl0gb2YgZGVzY3JpcHRvcnMuZW50cmllcygpKSB7XG4gICAgYXNzZXJ0U2F0aXNmaWFibGUocHNidCwgaW5wdXRJbmRleCwgZGVzY3JpcHRvcik7XG4gICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcihpbnB1dEluZGV4LCBkZXNjcmlwdG9yKTtcbiAgfVxuICBjb25zdCB1bndyYXBwZWRQc2J0ID0gdG9VdHhvUHNidCh3cmFwcGVkUHNidCwgcHNidC5uZXR3b3JrKTtcbiAgZm9yIChjb25zdCBpbnB1dEluZGV4IGluIHBzYnQudHhJbnB1dHMpIHtcbiAgICBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdID0gdW53cmFwcGVkUHNidC5kYXRhLmlucHV0c1tpbnB1dEluZGV4XTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVPdXRwdXRzV2l0aERlc2NyaXB0b3JzKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGRlc2NyaXB0b3JzOiBXaXRoT3B0RGVzY3JpcHRvcjxPdXRwdXQ+W10pIHtcbiAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHBzYnQpO1xuICBmb3IgKGNvbnN0IFtvdXRwdXRJbmRleCwgeyBkZXNjcmlwdG9yIH1dIG9mIGRlc2NyaXB0b3JzLmVudHJpZXMoKSkge1xuICAgIGlmIChkZXNjcmlwdG9yKSB7XG4gICAgICB3cmFwcGVkUHNidC51cGRhdGVPdXRwdXRXaXRoRGVzY3JpcHRvcihvdXRwdXRJbmRleCwgZGVzY3JpcHRvcik7XG4gICAgfVxuICB9XG4gIGNvbnN0IHVud3JhcHBlZFBzYnQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBwc2J0Lm5ldHdvcmspO1xuICBmb3IgKGNvbnN0IG91dHB1dEluZGV4IGluIHBzYnQudHhPdXRwdXRzKSB7XG4gICAgcHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdID0gdW53cmFwcGVkUHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFBzYnRQYXJhbXMgPSB7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgbG9ja3RpbWU/OiBudW1iZXI7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0ID0gRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgJiB7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnQoXG4gIHBhcmFtczogUHNidFBhcmFtcyxcbiAgaW5wdXRzOiBEZXJpdmVkRGVzY3JpcHRvclRyYW5zYWN0aW9uSW5wdXRbXSxcbiAgb3V0cHV0czogV2l0aE9wdERlc2NyaXB0b3I8T3V0cHV0PltdXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgcHNidCA9IHV0eG9saWIuYml0Z28uVXR4b1BzYnQuY3JlYXRlUHNidCh7IG5ldHdvcms6IHBhcmFtcy5uZXR3b3JrIH0pO1xuICBwc2J0LnNldFZlcnNpb24ocGFyYW1zLnZlcnNpb24gPz8gMik7XG4gIHBzYnQuc2V0TG9ja3RpbWUocGFyYW1zLmxvY2t0aW1lID8/IDApO1xuICBwc2J0LmFkZElucHV0cyhpbnB1dHMubWFwKChpKSA9PiAoeyAuLi5pLCBzZXF1ZW5jZTogaS5zZXF1ZW5jZSA/PyBwYXJhbXMuc2VxdWVuY2UgPz8gTUFYX0JJUDEyNV9SQkZfU0VRVUVOQ0UgfSkpKTtcbiAgcHNidC5hZGRPdXRwdXRzKG91dHB1dHMpO1xuICB1cGRhdGVJbnB1dHNXaXRoRGVzY3JpcHRvcnMoXG4gICAgcHNidCxcbiAgICBpbnB1dHMubWFwKChpKSA9PiBpLmRlc2NyaXB0b3IpXG4gICk7XG4gIHVwZGF0ZU91dHB1dHNXaXRoRGVzY3JpcHRvcnMocHNidCwgb3V0cHV0cyk7XG4gIHJldHVybiBwc2J0O1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3BzYnQvY3JlYXRlUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsOENBY0M7QUFtREQsZ0NBbUJDO0FBbkdELDhEQUFnRDtBQU1oRCxpQ0FBbUQ7QUFDbkQsMkRBQXdEO0FBRXhEOzs7S0FHSztBQUNRLFFBQUEsdUJBQXVCLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUV0RCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFzQixFQUFFLE1BQTJCO0lBQ25GLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxD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QztJQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLCtCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QiwyQkFBMkIsQ0FDekIsSUFBSSxFQUNKLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQVU7UUFDVixtQkFBbUI7S0FDcEIsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNGLDRCQUE0QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYXBMZWFmU2NyaXB0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IsIE1pbmlzY3JpcHQgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQsIFdpdGhPcHREZXNjcmlwdG9yIH0gZnJvbSAnLi4vT3V0cHV0JztcbmltcG9ydCB7IE91dHB1dCB9IGZyb20gJy4uLy4uL091dHB1dCc7XG5cbmltcG9ydCB7IHRvVXR4b1BzYnQsIHRvV3JhcHBlZFBzYnQgfSBmcm9tICcuL3dyYXAnO1xuaW1wb3J0IHsgYXNzZXJ0U2F0aXNmaWFibGUgfSBmcm9tICcuL2Fzc2VydFNhdGlzZmlhYmxlJztcblxuLyoqXG4gKiBOb24tRmluYWwgKFJlcGxhY2VhYmxlKVxuICogUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI1LjEvc3JjL3JwYy9yYXd0cmFuc2FjdGlvbl91dGlsLmNwcCNMNDlcbiAqICovXG5leHBvcnQgY29uc3QgTUFYX0JJUDEyNV9SQkZfU0VRVUVOQ0UgPSAweGZmZmZmZmZmIC0gMjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRUYXBMZWFmU2NyaXB0KGlucHV0OiBUYXBMZWFmU2NyaXB0W10sIHNjcmlwdDogQnVmZmVyIHwgTWluaXNjcmlwdCk6IFRhcExlYWZTY3JpcHQge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihzY3JpcHQpKSB7XG4gICAgc2NyaXB0ID0gQnVmZmVyLmZyb20oc2NyaXB0LmVuY29kZSgpKTtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gaW5wdXQuZmlsdGVyKChsZWFmKSA9PiB7XG4gICAgcmV0dXJuIGxlYWYuc2NyaXB0LmVxdWFscyhzY3JpcHQpO1xuICB9KTtcbiAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB0YXBMZWFmU2NyaXB0IGZvdW5kIGZvciBzY3JpcHQ6ICR7c2NyaXB0LnRvU3RyaW5nKCdoZXgnKX1gKTtcbiAgfVxuICBpZiAobWF0Y2hlcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNdWx0aXBsZSB0YXBMZWFmU2NyaXB0cyBmb3VuZCBmb3Igc2NyaXB0OiAke3NjcmlwdC50b1N0cmluZygnaGV4Jyl9YCk7XG4gIH1cbiAgcmV0dXJuIG1hdGNoZXNbMF07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUlucHV0c1dpdGhEZXNjcmlwdG9ycyhcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgaW5wdXRQYXJhbXM6IEFycmF5PHsgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjsgc2VsZWN0VGFwTGVhZlNjcmlwdD86IE1pbmlzY3JpcHQgfT5cbikge1xuICBpZiAocHNidC50eElucHV0cy5sZW5ndGggIT09IGlucHV0UGFyYW1zLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW5wdXQgY291bnQgbWlzbWF0Y2ggKHBzYnQ9JHtwc2J0LnR4SW5wdXRzLmxlbmd0aH0sIGlucHV0UGFyYW1zPSR7aW5wdXRQYXJhbXMubGVuZ3RofSlgKTtcbiAgfVxuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidCk7XG4gIGZvciAoY29uc3QgW2lucHV0SW5kZXgsIHZdIG9mIGlucHV0UGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGFzc2VydFNhdGlzZmlhYmxlKHBzYnQsIGlucHV0SW5kZXgsIHYuZGVzY3JpcHRvcik7XG4gICAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcihpbnB1dEluZGV4LCB2LmRlc2NyaXB0b3IpO1xuICB9XG4gIGNvbnN0IHVud3JhcHBlZFBzYnQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBwc2J0Lm5ldHdvcmspO1xuICBmb3IgKGNvbnN0IGlucHV0SW5kZXggaW4gcHNidC50eElucHV0cykge1xuICAgIGNvbnN0IHByZXBhcmVkSW5wdXQgPSB1bndyYXBwZWRQc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICAgIGNvbnN0IHYgPSBpbnB1dFBhcmFtc1tpbnB1dEluZGV4XTtcbiAgICBpZiAodi5zZWxlY3RUYXBMZWFmU2NyaXB0ICYmIHByZXBhcmVkSW5wdXQudGFwTGVhZlNjcmlwdCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBmaW5kVGFwTGVhZlNjcmlwdChwcmVwYXJlZElucHV0LnRhcExlYWZTY3JpcHQsIHYuc2VsZWN0VGFwTGVhZlNjcmlwdCk7XG4gICAgICBwcmVwYXJlZElucHV0LnRhcExlYWZTY3JpcHQgPSBbc2VsZWN0ZWRdO1xuICAgIH1cbiAgICBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdID0gcHJlcGFyZWRJbnB1dDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVPdXRwdXRzV2l0aERlc2NyaXB0b3JzKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGRlc2NyaXB0b3JzOiBXaXRoT3B0RGVzY3JpcHRvcjxPdXRwdXQ+W10pIHtcbiAgY29uc3Qgd3JhcHBlZFBzYnQgPSB0b1dyYXBwZWRQc2J0KHBzYnQpO1xuICBmb3IgKGNvbnN0IFtvdXRwdXRJbmRleCwgeyBkZXNjcmlwdG9yIH1dIG9mIGRlc2NyaXB0b3JzLmVudHJpZXMoKSkge1xuICAgIGlmIChkZXNjcmlwdG9yKSB7XG4gICAgICB3cmFwcGVkUHNidC51cGRhdGVPdXRwdXRXaXRoRGVzY3JpcHRvcihvdXRwdXRJbmRleCwgZGVzY3JpcHRvcik7XG4gICAgfVxuICB9XG4gIGNvbnN0IHVud3JhcHBlZFBzYnQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBwc2J0Lm5ldHdvcmspO1xuICBmb3IgKGNvbnN0IG91dHB1dEluZGV4IGluIHBzYnQudHhPdXRwdXRzKSB7XG4gICAgcHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdID0gdW53cmFwcGVkUHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFBzYnRQYXJhbXMgPSB7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgbG9ja3RpbWU/OiBudW1iZXI7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0ID0gRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgJiB7XG4gIHNlbGVjdFRhcExlYWZTY3JpcHQ/OiBNaW5pc2NyaXB0O1xuICBzZXF1ZW5jZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0KFxuICBwYXJhbXM6IFBzYnRQYXJhbXMsXG4gIGlucHV0czogRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0W10sXG4gIG91dHB1dHM6IFdpdGhPcHREZXNjcmlwdG9yPE91dHB1dD5bXVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LmNyZWF0ZVBzYnQoeyBuZXR3b3JrOiBwYXJhbXMubmV0d29yayB9KTtcbiAgcHNidC5zZXRWZXJzaW9uKHBhcmFtcy52ZXJzaW9uID8/IDIpO1xuICBwc2J0LnNldExvY2t0aW1lKHBhcmFtcy5sb2NrdGltZSA/PyAwKTtcbiAgcHNidC5hZGRJbnB1dHMoaW5wdXRzLm1hcCgoaSkgPT4gKHsgLi4uaSwgc2VxdWVuY2U6IGkuc2VxdWVuY2UgPz8gcGFyYW1zLnNlcXVlbmNlID8/IE1BWF9CSVAxMjVfUkJGX1NFUVVFTkNFIH0pKSk7XG4gIHBzYnQuYWRkT3V0cHV0cyhvdXRwdXRzKTtcbiAgdXBkYXRlSW5wdXRzV2l0aERlc2NyaXB0b3JzKFxuICAgIHBzYnQsXG4gICAgaW5wdXRzLm1hcCgoeyBkZXNjcmlwdG9yLCBzZWxlY3RUYXBMZWFmU2NyaXB0IH0pID0+ICh7XG4gICAgICBkZXNjcmlwdG9yLFxuICAgICAgc2VsZWN0VGFwTGVhZlNjcmlwdCxcbiAgICB9KSlcbiAgKTtcbiAgdXBkYXRlT3V0cHV0c1dpdGhEZXNjcmlwdG9ycyhwc2J0LCBvdXRwdXRzKTtcbiAgcmV0dXJuIHBzYnQ7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import * as utxolib from '@bitgo-beta/utxo-lib';
1
+ import { BIP32Interface, ECPairInterface } from '@bitgo-beta/secp256k1';
2
2
  import { Psbt as WasmPsbt } from '@bitgo/wasm-miniscript';
3
3
  /** These can be replaced when @bitgo/wasm-miniscript is updated */
4
4
  export type SignPsbtInputResult = {
@@ -19,7 +19,7 @@ export declare function getNewSignatureCountForInput(signResult: SignPsbtInputRe
19
19
  * @return the number of new signatures created by the signResult
20
20
  */
21
21
  export declare function getNewSignatureCount(signResult: SignPsbtResult): number;
22
- type Key = Buffer | utxolib.BIP32Interface | utxolib.ECPairInterface;
22
+ type Key = Buffer | BIP32Interface | ECPairInterface;
23
23
  /** Convenience function to sign a PSBT with a key */
24
24
  export declare function signWithKey(psbt: WasmPsbt, key: Key): SignPsbtResult;
25
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/sign.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE1D,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAQpF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAEvE;AAED,KAAK,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;AAErE,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,cAAc,CAUpE"}
1
+ {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../../src/descriptor/psbt/sign.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE1D,mEAAmE;AACnE,MAAM,MAAM,mBAAmB,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAQpF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAEvE;AAED,KAAK,GAAG,GAAG,MAAM,GAAG,cAAc,GAAG,eAAe,CAAC;AAErD,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,cAAc,CAUpE"}