@bitgo-beta/utxo-core 1.8.1-beta.61 → 1.8.1-beta.610
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/dist/cjs/src/Output.d.ts.map +1 -0
- package/dist/cjs/src/Output.js +60 -0
- package/dist/cjs/src/bip322/index.d.ts +5 -0
- package/dist/cjs/src/bip322/index.d.ts.map +1 -0
- package/dist/cjs/src/bip322/index.js +21 -0
- package/dist/cjs/src/bip322/toSign.d.ts +25 -0
- package/dist/cjs/src/bip322/toSign.d.ts.map +1 -0
- package/dist/cjs/src/bip322/toSign.js +126 -0
- package/dist/cjs/src/bip322/toSpend.d.ts +22 -0
- package/dist/cjs/src/bip322/toSpend.d.ts.map +1 -0
- package/dist/cjs/src/bip322/toSpend.js +72 -0
- package/dist/cjs/src/bip322/utils.d.ts +18 -0
- package/dist/cjs/src/bip322/utils.d.ts.map +1 -0
- package/dist/cjs/src/bip322/utils.js +115 -0
- package/dist/cjs/src/bip322/verify.d.ts +12 -0
- package/dist/cjs/src/bip322/verify.d.ts.map +1 -0
- package/dist/cjs/src/bip322/verify.js +115 -0
- package/dist/cjs/src/bip32utils.d.ts +16 -0
- package/dist/cjs/src/bip32utils.d.ts.map +1 -0
- package/dist/cjs/src/bip32utils.js +71 -0
- package/dist/cjs/src/bip65/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/bip65/index.js +1 -1
- package/dist/cjs/src/bip65/locktime.d.ts.map +1 -0
- package/dist/cjs/src/bip65/locktime.js +37 -0
- package/dist/{src → cjs/src}/descriptor/DescriptorMap.d.ts +1 -1
- package/dist/cjs/src/descriptor/DescriptorMap.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/DescriptorMap.js +9 -0
- package/dist/{src → cjs/src}/descriptor/Output.d.ts +1 -1
- package/dist/cjs/src/descriptor/Output.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/Output.js +41 -0
- package/dist/{src → cjs/src}/descriptor/VirtualSize.d.ts +1 -1
- package/dist/cjs/src/descriptor/VirtualSize.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/VirtualSize.js +100 -0
- package/dist/{src → cjs/src}/descriptor/address.d.ts +1 -1
- package/dist/cjs/src/descriptor/address.d.ts.map +1 -0
- package/dist/{src → cjs/src}/descriptor/address.js +1 -1
- package/dist/{src → cjs/src}/descriptor/derive.d.ts +1 -1
- package/dist/cjs/src/descriptor/derive.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/derive.js +45 -0
- package/dist/{src → cjs/src}/descriptor/fromFixedScriptWallet.d.ts +1 -1
- package/dist/cjs/src/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/fromFixedScriptWallet.js +88 -0
- package/dist/{src → cjs/src}/descriptor/index.d.ts +1 -0
- package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/descriptor/index.js +2 -1
- package/dist/cjs/src/descriptor/parse/PatternMatcher.d.ts +14 -0
- package/dist/cjs/src/descriptor/parse/PatternMatcher.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/parse/PatternMatcher.js +60 -0
- package/dist/{src → cjs/src}/descriptor/psbt/assertSatisfiable.d.ts +1 -1
- package/dist/cjs/src/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/psbt/assertSatisfiable.js +74 -0
- package/dist/{src → cjs/src}/descriptor/psbt/createPsbt.d.ts +4 -0
- package/dist/cjs/src/descriptor/psbt/createPsbt.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/psbt/createPsbt.js +107 -0
- package/dist/{src → cjs/src}/descriptor/psbt/findDescriptors.d.ts +1 -1
- package/dist/cjs/src/descriptor/psbt/findDescriptors.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/psbt/findDescriptors.js +98 -0
- package/dist/cjs/src/descriptor/psbt/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/descriptor/psbt/index.js +1 -1
- package/dist/{src → cjs/src}/descriptor/psbt/parse.d.ts +1 -1
- package/dist/cjs/src/descriptor/psbt/parse.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/psbt/parse.js +87 -0
- package/dist/{src → cjs/src}/descriptor/psbt/sign.d.ts +4 -4
- package/dist/cjs/src/descriptor/psbt/sign.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/psbt/sign.js +42 -0
- package/dist/{src → cjs/src}/descriptor/psbt/wrap.d.ts +1 -1
- package/dist/cjs/src/descriptor/psbt/wrap.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/psbt/wrap.js +76 -0
- package/dist/cjs/src/dustThreshold.d.ts.map +1 -0
- package/dist/cjs/src/dustThreshold.js +134 -0
- package/dist/{src → cjs/src}/index.d.ts +1 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +3 -2
- package/dist/cjs/src/paygo/attestation.d.ts +11 -0
- package/dist/cjs/src/paygo/attestation.d.ts.map +1 -0
- package/dist/cjs/src/paygo/attestation.js +58 -0
- package/dist/cjs/src/paygo/index.d.ts +3 -0
- package/dist/cjs/src/paygo/index.d.ts.map +1 -0
- package/dist/cjs/src/paygo/index.js +19 -0
- package/dist/{src/paygo/ExtractAddressPayGoAttestation.d.ts → cjs/src/paygo/parsePayGoAttestation.d.ts} +8 -3
- package/dist/cjs/src/paygo/parsePayGoAttestation.d.ts.map +1 -0
- package/dist/cjs/src/paygo/parsePayGoAttestation.js +50 -0
- package/dist/cjs/src/paygo/psbt/Errors.d.ts +22 -0
- package/dist/cjs/src/paygo/psbt/Errors.d.ts.map +1 -0
- package/dist/cjs/src/paygo/psbt/Errors.js +44 -0
- package/dist/cjs/src/paygo/psbt/index.d.ts +2 -0
- package/dist/cjs/src/paygo/psbt/index.d.ts.map +1 -0
- package/dist/{src/paygo → cjs/src/paygo/psbt}/index.js +2 -2
- package/dist/cjs/src/paygo/psbt/payGoAddressProof.d.ts +29 -0
- package/dist/cjs/src/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
- package/dist/cjs/src/paygo/psbt/payGoAddressProof.js +124 -0
- package/dist/{src → cjs/src}/testutil/descriptor/descriptors.d.ts +4 -1
- package/dist/cjs/src/testutil/descriptor/descriptors.d.ts.map +1 -0
- package/dist/cjs/src/testutil/descriptor/descriptors.js +162 -0
- package/dist/cjs/src/testutil/descriptor/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/testutil/descriptor/index.js +1 -1
- package/dist/{src → cjs/src}/testutil/descriptor/mock.utils.d.ts +3 -1
- package/dist/cjs/src/testutil/descriptor/mock.utils.d.ts.map +1 -0
- package/dist/cjs/src/testutil/descriptor/mock.utils.js +92 -0
- package/dist/cjs/src/testutil/descriptor/psbt.utils.d.ts.map +1 -0
- package/dist/cjs/src/testutil/descriptor/psbt.utils.js +21 -0
- package/dist/cjs/src/testutil/fixtures.utils.d.ts.map +1 -0
- package/dist/cjs/src/testutil/fixtures.utils.js +127 -0
- package/dist/{src → cjs/src}/testutil/generatePayGoAttestationProof.utils.d.ts +1 -1
- package/dist/cjs/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
- package/dist/cjs/src/testutil/generatePayGoAttestationProof.utils.js +38 -0
- package/dist/{src → cjs/src}/testutil/index.d.ts +1 -0
- package/dist/cjs/src/testutil/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/testutil/index.js +2 -1
- package/dist/{src → cjs/src}/testutil/key.utils.d.ts +1 -1
- package/dist/cjs/src/testutil/key.utils.d.ts.map +1 -0
- package/dist/cjs/src/testutil/key.utils.js +60 -0
- package/dist/cjs/src/testutil/toPlainObject.utils.d.ts.map +1 -0
- package/dist/cjs/src/testutil/toPlainObject.utils.js +89 -0
- package/dist/cjs/src/testutil/trimMessagePrefix.d.ts +11 -0
- package/dist/cjs/src/testutil/trimMessagePrefix.d.ts.map +1 -0
- package/dist/cjs/src/testutil/trimMessagePrefix.js +60 -0
- package/dist/cjs/src/xOnlyPubkey.d.ts.map +1 -0
- package/dist/cjs/src/xOnlyPubkey.js +18 -0
- package/dist/cjs/test/Output.d.ts +2 -0
- package/dist/cjs/test/Output.d.ts.map +1 -0
- package/dist/cjs/test/Output.js +70 -0
- package/dist/cjs/test/bip322/bip322.utils.d.ts +7 -0
- package/dist/cjs/test/bip322/bip322.utils.d.ts.map +1 -0
- package/dist/cjs/test/bip322/bip322.utils.js +16 -0
- package/dist/cjs/test/bip322/toSign.d.ts +2 -0
- package/dist/cjs/test/bip322/toSign.d.ts.map +1 -0
- package/dist/cjs/test/bip322/toSign.js +133 -0
- package/dist/cjs/test/bip322/toSpend.d.ts +2 -0
- package/dist/cjs/test/bip322/toSpend.d.ts.map +1 -0
- package/dist/cjs/test/bip322/toSpend.js +70 -0
- package/dist/cjs/test/bip322/utils.d.ts +2 -0
- package/dist/cjs/test/bip322/utils.d.ts.map +1 -0
- package/dist/cjs/test/bip322/utils.js +79 -0
- package/dist/cjs/test/bip322/verify.d.ts +2 -0
- package/dist/cjs/test/bip322/verify.d.ts.map +1 -0
- package/dist/cjs/test/bip322/verify.js +293 -0
- package/dist/cjs/test/bip32utils.d.ts +2 -0
- package/dist/cjs/test/bip32utils.d.ts.map +1 -0
- package/dist/cjs/test/bip32utils.js +62 -0
- package/dist/cjs/test/bip65/locktime.d.ts +2 -0
- package/dist/cjs/test/bip65/locktime.d.ts.map +1 -0
- package/dist/cjs/test/bip65/locktime.js +22 -0
- package/dist/cjs/test/descriptor/Output.d.ts +2 -0
- package/dist/cjs/test/descriptor/Output.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/Output.js +44 -0
- package/dist/cjs/test/descriptor/derive.d.ts +2 -0
- package/dist/cjs/test/descriptor/derive.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/derive.js +27 -0
- package/dist/cjs/test/descriptor/fromFixedScriptWallet.d.ts +2 -0
- package/dist/cjs/test/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/fromFixedScriptWallet.js +145 -0
- package/dist/cjs/test/descriptor/parse/PatternMatcher.d.ts +2 -0
- package/dist/cjs/test/descriptor/parse/PatternMatcher.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/parse/PatternMatcher.js +120 -0
- package/dist/cjs/test/descriptor/psbt/VirtualSize.d.ts +2 -0
- package/dist/cjs/test/descriptor/psbt/VirtualSize.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/psbt/VirtualSize.js +71 -0
- package/dist/cjs/test/descriptor/psbt/assertSatisfiable.d.ts +2 -0
- package/dist/cjs/test/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/psbt/assertSatisfiable.js +56 -0
- package/dist/cjs/test/descriptor/psbt/findDescriptors.d.ts +2 -0
- package/dist/cjs/test/descriptor/psbt/findDescriptors.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/psbt/findDescriptors.js +70 -0
- package/dist/cjs/test/descriptor/psbt/psbt.d.ts +2 -0
- package/dist/cjs/test/descriptor/psbt/psbt.d.ts.map +1 -0
- package/dist/cjs/test/descriptor/psbt/psbt.js +211 -0
- package/dist/cjs/test/dustThreshold.d.ts +2 -0
- package/dist/cjs/test/dustThreshold.d.ts.map +1 -0
- package/dist/cjs/test/dustThreshold.js +110 -0
- package/dist/cjs/test/paygo/attestation.d.ts +2 -0
- package/dist/cjs/test/paygo/attestation.d.ts.map +1 -0
- package/dist/cjs/test/paygo/attestation.js +23 -0
- package/dist/cjs/test/paygo/parsePayGoAttestation.d.ts +2 -0
- package/dist/cjs/test/paygo/parsePayGoAttestation.d.ts.map +1 -0
- package/dist/cjs/test/paygo/parsePayGoAttestation.js +75 -0
- package/dist/cjs/test/paygo/psbt/payGoAddressProof.d.ts +9 -0
- package/dist/cjs/test/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
- package/dist/cjs/test/paygo/psbt/payGoAddressProof.js +163 -0
- package/dist/cjs/test/xOnlyPubkey.d.ts +2 -0
- package/dist/cjs/test/xOnlyPubkey.d.ts.map +1 -0
- package/dist/cjs/test/xOnlyPubkey.js +18 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/Output.d.ts +43 -0
- package/dist/esm/Output.js +53 -0
- package/dist/esm/bip322/index.d.ts +5 -0
- package/dist/esm/bip322/index.d.ts.map +1 -0
- package/dist/esm/bip322/index.js +5 -0
- package/dist/esm/bip322/toSign.d.ts +25 -0
- package/dist/esm/bip322/toSign.d.ts.map +1 -0
- package/dist/esm/bip322/toSign.js +120 -0
- package/dist/esm/bip322/toSpend.d.ts +22 -0
- package/dist/esm/bip322/toSpend.d.ts.map +1 -0
- package/dist/esm/bip322/toSpend.js +66 -0
- package/dist/esm/bip322/utils.d.ts +18 -0
- package/dist/esm/bip322/utils.d.ts.map +1 -0
- package/dist/esm/bip322/utils.js +77 -0
- package/dist/esm/bip322/verify.d.ts +12 -0
- package/dist/esm/bip322/verify.d.ts.map +1 -0
- package/dist/esm/bip322/verify.js +76 -0
- package/dist/esm/bip32utils.d.ts +16 -0
- package/dist/esm/bip32utils.d.ts.map +1 -0
- package/dist/esm/bip32utils.js +34 -0
- package/dist/esm/bip65/index.d.ts +2 -0
- package/dist/esm/bip65/index.js +2 -0
- package/dist/esm/bip65/locktime.d.ts +8 -0
- package/dist/esm/bip65/locktime.js +34 -0
- package/dist/esm/descriptor/DescriptorMap.d.ts +9 -0
- package/dist/{src → esm}/descriptor/DescriptorMap.d.ts.map +1 -1
- package/dist/esm/descriptor/DescriptorMap.js +6 -0
- package/dist/esm/descriptor/Output.d.ts +23 -0
- package/dist/{src → esm}/descriptor/Output.d.ts.map +1 -1
- package/dist/esm/descriptor/Output.js +32 -0
- package/dist/esm/descriptor/VirtualSize.d.ts +23 -0
- package/dist/{src → esm}/descriptor/VirtualSize.d.ts.map +1 -1
- package/dist/esm/descriptor/VirtualSize.js +94 -0
- package/dist/esm/descriptor/address.d.ts +5 -0
- package/dist/{src → esm}/descriptor/address.d.ts.map +1 -1
- package/dist/esm/descriptor/address.js +11 -0
- package/dist/esm/descriptor/derive.d.ts +13 -0
- package/dist/{src → esm}/descriptor/derive.d.ts.map +1 -1
- package/dist/esm/descriptor/derive.js +38 -0
- package/dist/esm/descriptor/fromFixedScriptWallet.d.ts +16 -0
- package/dist/{src → esm}/descriptor/fromFixedScriptWallet.d.ts.map +1 -1
- package/dist/esm/descriptor/fromFixedScriptWallet.js +51 -0
- package/dist/esm/descriptor/index.d.ts +11 -0
- package/dist/{src → esm}/descriptor/index.d.ts.map +1 -1
- package/dist/esm/descriptor/index.js +11 -0
- package/dist/esm/descriptor/parse/PatternMatcher.d.ts +14 -0
- package/dist/esm/descriptor/parse/PatternMatcher.d.ts.map +1 -0
- package/dist/esm/descriptor/parse/PatternMatcher.js +56 -0
- package/dist/esm/descriptor/psbt/assertSatisfiable.d.ts +20 -0
- package/dist/{src → esm}/descriptor/psbt/assertSatisfiable.d.ts.map +1 -1
- package/dist/esm/descriptor/psbt/assertSatisfiable.js +69 -0
- package/dist/esm/descriptor/psbt/createPsbt.d.ts +23 -0
- package/dist/esm/descriptor/psbt/createPsbt.d.ts.map +1 -0
- package/dist/esm/descriptor/psbt/createPsbt.js +69 -0
- package/dist/esm/descriptor/psbt/findDescriptors.d.ts +26 -0
- package/dist/{src → esm}/descriptor/psbt/findDescriptors.d.ts.map +1 -1
- package/dist/esm/descriptor/psbt/findDescriptors.js +94 -0
- package/dist/esm/descriptor/psbt/index.d.ts +7 -0
- package/dist/esm/descriptor/psbt/index.js +7 -0
- package/dist/esm/descriptor/psbt/parse.d.ts +27 -0
- package/dist/{src → esm}/descriptor/psbt/parse.d.ts.map +1 -1
- package/dist/esm/descriptor/psbt/parse.js +51 -0
- package/dist/esm/descriptor/psbt/sign.d.ts +26 -0
- package/dist/esm/descriptor/psbt/sign.d.ts.map +1 -0
- package/dist/esm/descriptor/psbt/sign.js +34 -0
- package/dist/esm/descriptor/psbt/wrap.d.ts +12 -0
- package/dist/{src → esm}/descriptor/psbt/wrap.d.ts.map +1 -1
- package/dist/esm/descriptor/psbt/wrap.js +38 -0
- package/dist/esm/dustThreshold.d.ts +4 -0
- package/dist/esm/dustThreshold.js +97 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/{src → esm}/index.d.ts.map +1 -1
- package/dist/esm/index.js +10 -0
- package/dist/esm/paygo/attestation.d.ts +11 -0
- package/dist/esm/paygo/attestation.d.ts.map +1 -0
- package/dist/esm/paygo/attestation.js +18 -0
- package/dist/esm/paygo/index.d.ts +3 -0
- package/dist/esm/paygo/index.d.ts.map +1 -0
- package/dist/esm/paygo/index.js +3 -0
- package/dist/esm/paygo/parsePayGoAttestation.d.ts +16 -0
- package/dist/esm/paygo/parsePayGoAttestation.d.ts.map +1 -0
- package/dist/esm/paygo/parsePayGoAttestation.js +43 -0
- package/dist/esm/paygo/psbt/Errors.d.ts +22 -0
- package/dist/esm/paygo/psbt/Errors.d.ts.map +1 -0
- package/dist/esm/paygo/psbt/Errors.js +35 -0
- package/dist/esm/paygo/psbt/index.d.ts +2 -0
- package/dist/esm/paygo/psbt/index.d.ts.map +1 -0
- package/dist/esm/paygo/psbt/index.js +2 -0
- package/dist/esm/paygo/psbt/payGoAddressProof.d.ts +29 -0
- package/dist/esm/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
- package/dist/esm/paygo/psbt/payGoAddressProof.js +85 -0
- package/dist/esm/testutil/descriptor/descriptors.d.ts +13 -0
- package/dist/esm/testutil/descriptor/descriptors.d.ts.map +1 -0
- package/dist/esm/testutil/descriptor/descriptors.js +150 -0
- package/dist/esm/testutil/descriptor/index.d.ts +4 -0
- package/dist/esm/testutil/descriptor/index.js +4 -0
- package/dist/esm/testutil/descriptor/mock.utils.d.ts +36 -0
- package/dist/esm/testutil/descriptor/mock.utils.d.ts.map +1 -0
- package/dist/esm/testutil/descriptor/mock.utils.js +53 -0
- package/dist/esm/testutil/descriptor/psbt.utils.d.ts +4 -0
- package/dist/{src → esm}/testutil/descriptor/psbt.utils.d.ts.map +1 -1
- package/dist/esm/testutil/descriptor/psbt.utils.js +17 -0
- package/dist/esm/testutil/fixtures.utils.d.ts +15 -0
- package/dist/{src → esm}/testutil/fixtures.utils.js +5 -42
- package/dist/esm/testutil/generatePayGoAttestationProof.utils.d.ts +12 -0
- package/dist/esm/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
- package/dist/esm/testutil/generatePayGoAttestationProof.utils.js +32 -0
- package/dist/esm/testutil/index.d.ts +6 -0
- package/dist/{src → esm}/testutil/index.d.ts.map +1 -1
- package/dist/esm/testutil/index.js +6 -0
- package/dist/esm/testutil/key.utils.d.ts +16 -0
- package/dist/{src → esm}/testutil/key.utils.d.ts.map +1 -1
- package/dist/esm/testutil/key.utils.js +22 -0
- package/dist/esm/testutil/toPlainObject.utils.d.ts +11 -0
- package/dist/{src → esm}/testutil/toPlainObject.utils.d.ts.map +1 -1
- package/dist/esm/testutil/toPlainObject.utils.js +85 -0
- package/dist/esm/testutil/trimMessagePrefix.d.ts +11 -0
- package/dist/esm/testutil/trimMessagePrefix.d.ts.map +1 -0
- package/dist/esm/testutil/trimMessagePrefix.js +24 -0
- package/dist/esm/xOnlyPubkey.d.ts +2 -0
- package/dist/esm/xOnlyPubkey.js +15 -0
- package/package.json +50 -25
- package/dist/src/Output.js +0 -60
- package/dist/src/bip32utils.d.ts +0 -16
- package/dist/src/bip32utils.d.ts.map +0 -1
- package/dist/src/bip32utils.js +0 -72
- package/dist/src/bip65/locktime.js +0 -37
- package/dist/src/descriptor/DescriptorMap.js +0 -9
- package/dist/src/descriptor/Output.js +0 -41
- package/dist/src/descriptor/VirtualSize.js +0 -100
- package/dist/src/descriptor/derive.js +0 -45
- package/dist/src/descriptor/fromFixedScriptWallet.js +0 -88
- package/dist/src/descriptor/psbt/assertSatisfiable.js +0 -74
- package/dist/src/descriptor/psbt/createPsbt.d.ts.map +0 -1
- package/dist/src/descriptor/psbt/createPsbt.js +0 -82
- package/dist/src/descriptor/psbt/findDescriptors.js +0 -98
- package/dist/src/descriptor/psbt/parse.js +0 -87
- package/dist/src/descriptor/psbt/sign.d.ts.map +0 -1
- package/dist/src/descriptor/psbt/sign.js +0 -42
- package/dist/src/descriptor/psbt/wrap.js +0 -76
- package/dist/src/dustThreshold.js +0 -134
- package/dist/src/paygo/ExtractAddressPayGoAttestation.d.ts.map +0 -1
- package/dist/src/paygo/ExtractAddressPayGoAttestation.js +0 -44
- package/dist/src/paygo/index.d.ts +0 -2
- package/dist/src/paygo/index.d.ts.map +0 -1
- package/dist/src/testutil/descriptor/descriptors.d.ts.map +0 -1
- package/dist/src/testutil/descriptor/descriptors.js +0 -125
- package/dist/src/testutil/descriptor/mock.utils.d.ts.map +0 -1
- package/dist/src/testutil/descriptor/mock.utils.js +0 -91
- package/dist/src/testutil/descriptor/psbt.utils.js +0 -20
- package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +0 -1
- package/dist/src/testutil/generatePayGoAttestationProof.utils.js +0 -43
- package/dist/src/testutil/key.utils.js +0 -59
- package/dist/src/testutil/toPlainObject.utils.js +0 -75
- package/dist/src/xOnlyPubkey.js +0 -18
- /package/dist/{src → cjs/src}/Output.d.ts +0 -0
- /package/dist/{src → cjs/src}/bip65/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/bip65/locktime.d.ts +0 -0
- /package/dist/{src → cjs/src}/descriptor/psbt/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/dustThreshold.d.ts +0 -0
- /package/dist/{src → cjs/src}/testutil/descriptor/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/testutil/descriptor/psbt.utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/testutil/fixtures.utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/testutil/toPlainObject.utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/xOnlyPubkey.d.ts +0 -0
- /package/dist/{src → esm}/Output.d.ts.map +0 -0
- /package/dist/{src → esm}/bip65/index.d.ts.map +0 -0
- /package/dist/{src → esm}/bip65/locktime.d.ts.map +0 -0
- /package/dist/{src → esm}/descriptor/psbt/index.d.ts.map +0 -0
- /package/dist/{src → esm}/dustThreshold.d.ts.map +0 -0
- /package/dist/{src → esm}/testutil/descriptor/index.d.ts.map +0 -0
- /package/dist/{src → esm}/testutil/fixtures.utils.d.ts.map +0 -0
- /package/dist/{src → esm}/xOnlyPubkey.d.ts.map +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import * as bitcoinMessage from 'bitcoinjs-message';
|
|
3
|
+
/**
|
|
4
|
+
* bip32-aware wrapper around bitcoin-message package
|
|
5
|
+
* @see {bitcoinMessage.sign}
|
|
6
|
+
*/
|
|
7
|
+
export function signMessage(message, privateKey, network) {
|
|
8
|
+
if (!Buffer.isBuffer(privateKey)) {
|
|
9
|
+
privateKey = privateKey.privateKey;
|
|
10
|
+
if (!privateKey) {
|
|
11
|
+
throw new Error(`must provide privateKey`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
|
|
15
|
+
throw new Error(`invalid argument 'network'`);
|
|
16
|
+
}
|
|
17
|
+
const compressed = true;
|
|
18
|
+
return bitcoinMessage.sign(message, privateKey, compressed, network.messagePrefix);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* bip32-aware wrapper around bitcoin-message package
|
|
22
|
+
* @see {bitcoinMessage.verify}
|
|
23
|
+
*/
|
|
24
|
+
export function verifyMessage(message, publicKey, signature, network) {
|
|
25
|
+
if (!Buffer.isBuffer(publicKey)) {
|
|
26
|
+
publicKey = publicKey.publicKey;
|
|
27
|
+
}
|
|
28
|
+
if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
|
|
29
|
+
throw new Error(`invalid argument 'network'`);
|
|
30
|
+
}
|
|
31
|
+
const address = utxolib.address.toBase58Check(utxolib.crypto.hash160(publicKey), utxolib.networks.bitcoin.pubKeyHash, utxolib.networks.bitcoin);
|
|
32
|
+
return bitcoinMessage.verify(message, address, signature, network.messagePrefix);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzJ1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaXAzMnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixPQUF3QixFQUN4QixVQUFtQyxFQUNuQyxPQUFrQztJQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ2pDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBb0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakcsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDeEIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsT0FBd0IsRUFDeEIsU0FBa0MsRUFDbEMsU0FBaUIsRUFDakIsT0FBa0M7SUFFbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakcsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FDM0MsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDbkMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ3pCLENBQUM7SUFDRixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3NlY3AyNTZrMSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIGJpdGNvaW5NZXNzYWdlIGZyb20gJ2JpdGNvaW5qcy1tZXNzYWdlJztcbi8qKlxuICogYmlwMzItYXdhcmUgd3JhcHBlciBhcm91bmQgYml0Y29pbi1tZXNzYWdlIHBhY2thZ2VcbiAqIEBzZWUge2JpdGNvaW5NZXNzYWdlLnNpZ259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduTWVzc2FnZShcbiAgbWVzc2FnZTogc3RyaW5nIHwgQnVmZmVyLFxuICBwcml2YXRlS2V5OiBCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcixcbiAgbmV0d29yazogeyBtZXNzYWdlUHJlZml4OiBzdHJpbmcgfVxuKTogQnVmZmVyIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHJpdmF0ZUtleSkpIHtcbiAgICBwcml2YXRlS2V5ID0gcHJpdmF0ZUtleS5wcml2YXRlS2V5IGFzIEJ1ZmZlcjtcbiAgICBpZiAoIXByaXZhdGVLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHByaXZhdGVLZXlgKTtcbiAgICB9XG4gIH1cbiAgaWYgKG5ldHdvcmsgPT09IG51bGwgfHwgdHlwZW9mIG5ldHdvcmsgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBuZXR3b3JrLm1lc3NhZ2VQcmVmaXggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50ICduZXR3b3JrJ2ApO1xuICB9XG4gIGNvbnN0IGNvbXByZXNzZWQgPSB0cnVlO1xuICByZXR1cm4gYml0Y29pbk1lc3NhZ2Uuc2lnbihtZXNzYWdlLCBwcml2YXRlS2V5LCBjb21wcmVzc2VkLCBuZXR3b3JrLm1lc3NhZ2VQcmVmaXgpO1xufVxuXG4vKipcbiAqIGJpcDMyLWF3YXJlIHdyYXBwZXIgYXJvdW5kIGJpdGNvaW4tbWVzc2FnZSBwYWNrYWdlXG4gKiBAc2VlIHtiaXRjb2luTWVzc2FnZS52ZXJpZnl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlNZXNzYWdlKFxuICBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsXG4gIHB1YmxpY0tleTogQklQMzJJbnRlcmZhY2UgfCBCdWZmZXIsXG4gIHNpZ25hdHVyZTogQnVmZmVyLFxuICBuZXR3b3JrOiB7IG1lc3NhZ2VQcmVmaXg6IHN0cmluZyB9XG4pOiBib29sZWFuIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIocHVibGljS2V5KSkge1xuICAgIHB1YmxpY0tleSA9IHB1YmxpY0tleS5wdWJsaWNLZXk7XG4gIH1cbiAgaWYgKG5ldHdvcmsgPT09IG51bGwgfHwgdHlwZW9mIG5ldHdvcmsgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBuZXR3b3JrLm1lc3NhZ2VQcmVmaXggIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50ICduZXR3b3JrJ2ApO1xuICB9XG5cbiAgY29uc3QgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy50b0Jhc2U1OENoZWNrKFxuICAgIHV0eG9saWIuY3J5cHRvLmhhc2gxNjAocHVibGljS2V5KSxcbiAgICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4ucHViS2V5SGFzaCxcbiAgICB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5cbiAgKTtcbiAgcmV0dXJuIGJpdGNvaW5NZXNzYWdlLnZlcmlmeShtZXNzYWdlLCBhZGRyZXNzLCBzaWduYXR1cmUsIG5ldHdvcmsubWVzc2FnZVByZWZpeCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './locktime';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwNjUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvY2t0aW1lJztcbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
Modified version of https://github.com/bitcoinjs/bip65/blob/master/index.js
|
|
4
|
+
|
|
5
|
+
BIP0065: https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
|
|
6
|
+
|
|
7
|
+
*/
|
|
8
|
+
// https://github.com/bitcoin/bitcoin/blob/v28.0/src/script/script.h#L44-L46
|
|
9
|
+
const LOCKTIME_THRESHOLD = 500000000;
|
|
10
|
+
/**
|
|
11
|
+
* @param obj
|
|
12
|
+
* @return number
|
|
13
|
+
*/
|
|
14
|
+
export function encodeLocktime(obj) {
|
|
15
|
+
if (obj instanceof Date) {
|
|
16
|
+
if (!Number.isFinite(obj.getTime())) {
|
|
17
|
+
throw new Error('invalid date');
|
|
18
|
+
}
|
|
19
|
+
const seconds = Math.floor(obj.getTime() / 1000);
|
|
20
|
+
if (seconds < LOCKTIME_THRESHOLD) {
|
|
21
|
+
throw new TypeError('Expected Number utc >= ' + LOCKTIME_THRESHOLD);
|
|
22
|
+
}
|
|
23
|
+
return seconds;
|
|
24
|
+
}
|
|
25
|
+
const { blocks } = obj;
|
|
26
|
+
if (!Number.isFinite(blocks) || !Number.isInteger(blocks)) {
|
|
27
|
+
throw new TypeError('Expected Number blocks');
|
|
28
|
+
}
|
|
29
|
+
if (blocks >= LOCKTIME_THRESHOLD) {
|
|
30
|
+
throw new TypeError('Expected Number blocks < ' + LOCKTIME_THRESHOLD);
|
|
31
|
+
}
|
|
32
|
+
return blocks;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja3RpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwNjUvbG9ja3RpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztFQU1FO0FBRUYsNEVBQTRFO0FBQzVFLE1BQU0sa0JBQWtCLEdBQUcsU0FBVyxDQUFDO0FBRXZDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBOEI7SUFDM0QsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxTQUFTLENBQUMseUJBQXlCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFFdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxTQUFTLENBQUMsMkJBQTJCLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cbk1vZGlmaWVkIHZlcnNpb24gb2YgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW5qcy9iaXA2NS9ibG9iL21hc3Rlci9pbmRleC5qc1xuXG5CSVAwMDY1OiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvbWFzdGVyL2JpcC0wMDY1Lm1lZGlhd2lraVxuXG4qL1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjAvc3JjL3NjcmlwdC9zY3JpcHQuaCNMNDQtTDQ2XG5jb25zdCBMT0NLVElNRV9USFJFU0hPTEQgPSA1MDBfMDAwXzAwMDtcblxuLyoqXG4gKiBAcGFyYW0gb2JqXG4gKiBAcmV0dXJuIG51bWJlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlTG9ja3RpbWUob2JqOiBEYXRlIHwgeyBibG9ja3M6IG51bWJlciB9KTogbnVtYmVyIHtcbiAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShvYmouZ2V0VGltZSgpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGRhdGUnKTtcbiAgICB9XG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3Iob2JqLmdldFRpbWUoKSAvIDEwMDApO1xuICAgIGlmIChzZWNvbmRzIDwgTE9DS1RJTUVfVEhSRVNIT0xEKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBOdW1iZXIgdXRjID49ICcgKyBMT0NLVElNRV9USFJFU0hPTEQpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWNvbmRzO1xuICB9XG5cbiAgY29uc3QgeyBibG9ja3MgfSA9IG9iajtcblxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShibG9ja3MpIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKGJsb2NrcykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBOdW1iZXIgYmxvY2tzJyk7XG4gIH1cblxuICBpZiAoYmxvY2tzID49IExPQ0tUSU1FX1RIUkVTSE9MRCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIE51bWJlciBibG9ja3MgPCAnICsgTE9DS1RJTUVfVEhSRVNIT0xEKTtcbiAgfVxuXG4gIHJldHVybiBibG9ja3M7XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
2
|
+
/** Map from descriptor name to descriptor */
|
|
3
|
+
export type DescriptorMap = Map<string, Descriptor>;
|
|
4
|
+
/** Convert an array of descriptor name-value pairs to a descriptor map */
|
|
5
|
+
export declare function toDescriptorMap(descriptors: {
|
|
6
|
+
name: string;
|
|
7
|
+
value: Descriptor | string;
|
|
8
|
+
}[]): DescriptorMap;
|
|
9
|
+
//# sourceMappingURL=DescriptorMap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DescriptorMap.d.ts","sourceRoot":"","sources":["../../../src/descriptor/DescriptorMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DescriptorMap.d.ts","sourceRoot":"","sources":["../../../src/descriptor/DescriptorMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEpD,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAAA;CAAE,EAAE,GAAG,aAAa,CAI1G"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
2
|
+
/** Convert an array of descriptor name-value pairs to a descriptor map */
|
|
3
|
+
export function toDescriptorMap(descriptors) {
|
|
4
|
+
return new Map(descriptors.map((d) => [d.name, d.value instanceof Descriptor ? d.value : Descriptor.fromStringDetectType(d.value)]));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVzY3JpcHRvck1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL0Rlc2NyaXB0b3JNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSzlDLDBFQUEwRTtBQUMxRSxNQUFNLFVBQVUsZUFBZSxDQUFDLFdBQTJEO0lBQ3pGLE9BQU8sSUFBSSxHQUFHLENBQ1osV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDckgsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbi8qKiBNYXAgZnJvbSBkZXNjcmlwdG9yIG5hbWUgdG8gZGVzY3JpcHRvciAqL1xuZXhwb3J0IHR5cGUgRGVzY3JpcHRvck1hcCA9IE1hcDxzdHJpbmcsIERlc2NyaXB0b3I+O1xuXG4vKiogQ29udmVydCBhbiBhcnJheSBvZiBkZXNjcmlwdG9yIG5hbWUtdmFsdWUgcGFpcnMgdG8gYSBkZXNjcmlwdG9yIG1hcCAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGVzY3JpcHRvck1hcChkZXNjcmlwdG9yczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBEZXNjcmlwdG9yIHwgc3RyaW5nIH1bXSk6IERlc2NyaXB0b3JNYXAge1xuICByZXR1cm4gbmV3IE1hcChcbiAgICBkZXNjcmlwdG9ycy5tYXAoKGQpID0+IFtkLm5hbWUsIGQudmFsdWUgaW5zdGFuY2VvZiBEZXNjcmlwdG9yID8gZC52YWx1ZSA6IERlc2NyaXB0b3IuZnJvbVN0cmluZ0RldGVjdFR5cGUoZC52YWx1ZSldKVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { MaxOutput, Output, PrevOutput } from '../Output';
|
|
3
|
+
import { DescriptorMap } from './DescriptorMap';
|
|
4
|
+
export type WithDescriptor<T> = T & {
|
|
5
|
+
descriptor: Descriptor;
|
|
6
|
+
};
|
|
7
|
+
export type WithOptDescriptor<T> = T & {
|
|
8
|
+
descriptor?: Descriptor;
|
|
9
|
+
};
|
|
10
|
+
export declare function isInternalOutput<T extends object>(output: T | WithDescriptor<T>): output is WithDescriptor<T>;
|
|
11
|
+
export declare function isExternalOutput<T extends object>(output: T | WithDescriptor<T>): output is T;
|
|
12
|
+
/**
|
|
13
|
+
* @return the sum of the external outputs that are not 'max'
|
|
14
|
+
* @param outputs
|
|
15
|
+
*/
|
|
16
|
+
export declare function getExternalFixedAmount(outputs: WithOptDescriptor<Output | MaxOutput>[]): bigint;
|
|
17
|
+
export type DescriptorWalletOutput = PrevOutput & {
|
|
18
|
+
descriptorName: string;
|
|
19
|
+
descriptorIndex: number | undefined;
|
|
20
|
+
};
|
|
21
|
+
export type DerivedDescriptorWalletOutput = WithDescriptor<PrevOutput>;
|
|
22
|
+
export declare function toDerivedDescriptorWalletOutput(output: DescriptorWalletOutput, descriptorMap: DescriptorMap): DerivedDescriptorWalletOutput;
|
|
23
|
+
//# sourceMappingURL=Output.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../src/descriptor/Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Output.d.ts","sourceRoot":"","sources":["../../../src/descriptor/Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAqB,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAClC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,CAE7G;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAE7F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAE/F;AAED,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;AAEvE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,sBAAsB,EAC9B,aAAa,EAAE,aAAa,GAC3B,6BAA6B,CAkB/B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import assert from 'assert';
|
|
2
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { getFixedOutputSum } from '../Output';
|
|
4
|
+
import { getDescriptorAtIndexCheckScript } from './derive';
|
|
5
|
+
export function isInternalOutput(output) {
|
|
6
|
+
return 'descriptor' in output && output.descriptor !== undefined;
|
|
7
|
+
}
|
|
8
|
+
export function isExternalOutput(output) {
|
|
9
|
+
return !isInternalOutput(output);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @return the sum of the external outputs that are not 'max'
|
|
13
|
+
* @param outputs
|
|
14
|
+
*/
|
|
15
|
+
export function getExternalFixedAmount(outputs) {
|
|
16
|
+
return getFixedOutputSum(outputs.filter(isExternalOutput));
|
|
17
|
+
}
|
|
18
|
+
export function toDerivedDescriptorWalletOutput(output, descriptorMap) {
|
|
19
|
+
const descriptor = descriptorMap.get(output.descriptorName);
|
|
20
|
+
if (!descriptor) {
|
|
21
|
+
throw new Error(`Descriptor not found: ${output.descriptorName}`);
|
|
22
|
+
}
|
|
23
|
+
assert(descriptor instanceof Descriptor);
|
|
24
|
+
const descriptorAtIndex = getDescriptorAtIndexCheckScript(descriptor, output.descriptorIndex, output.witnessUtxo.script, output.descriptorName);
|
|
25
|
+
return {
|
|
26
|
+
hash: output.hash,
|
|
27
|
+
index: output.index,
|
|
28
|
+
witnessUtxo: output.witnessUtxo,
|
|
29
|
+
descriptor: descriptorAtIndex,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvT3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFpQyxNQUFNLFdBQVcsQ0FBQztBQUc3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFVM0QsTUFBTSxVQUFVLGdCQUFnQixDQUFtQixNQUE2QjtJQUM5RSxPQUFPLFlBQVksSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxTQUFTLENBQUM7QUFDbkUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBbUIsTUFBNkI7SUFDOUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FBZ0Q7SUFDckYsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBU0QsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxNQUE4QixFQUM5QixhQUE0QjtJQUU1QixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLFlBQVksVUFBVSxDQUFDLENBQUM7SUFDekMsTUFBTSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FDdkQsVUFBVSxFQUNWLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUN6QixNQUFNLENBQUMsY0FBYyxDQUN0QixDQUFDO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7UUFDbkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQy9CLFVBQVUsRUFBRSxpQkFBaUI7S0FDOUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgZ2V0Rml4ZWRPdXRwdXRTdW0sIE1heE91dHB1dCwgT3V0cHV0LCBQcmV2T3V0cHV0IH0gZnJvbSAnLi4vT3V0cHV0JztcblxuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4vRGVzY3JpcHRvck1hcCc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yQXRJbmRleENoZWNrU2NyaXB0IH0gZnJvbSAnLi9kZXJpdmUnO1xuXG5leHBvcnQgdHlwZSBXaXRoRGVzY3JpcHRvcjxUPiA9IFQgJiB7XG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3I7XG59O1xuXG5leHBvcnQgdHlwZSBXaXRoT3B0RGVzY3JpcHRvcjxUPiA9IFQgJiB7XG4gIGRlc2NyaXB0b3I/OiBEZXNjcmlwdG9yO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJuYWxPdXRwdXQ8VCBleHRlbmRzIG9iamVjdD4ob3V0cHV0OiBUIHwgV2l0aERlc2NyaXB0b3I8VD4pOiBvdXRwdXQgaXMgV2l0aERlc2NyaXB0b3I8VD4ge1xuICByZXR1cm4gJ2Rlc2NyaXB0b3InIGluIG91dHB1dCAmJiBvdXRwdXQuZGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbE91dHB1dDxUIGV4dGVuZHMgb2JqZWN0PihvdXRwdXQ6IFQgfCBXaXRoRGVzY3JpcHRvcjxUPik6IG91dHB1dCBpcyBUIHtcbiAgcmV0dXJuICFpc0ludGVybmFsT3V0cHV0KG91dHB1dCk7XG59XG5cbi8qKlxuICogQHJldHVybiB0aGUgc3VtIG9mIHRoZSBleHRlcm5hbCBvdXRwdXRzIHRoYXQgYXJlIG5vdCAnbWF4J1xuICogQHBhcmFtIG91dHB1dHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVybmFsRml4ZWRBbW91bnQob3V0cHV0czogV2l0aE9wdERlc2NyaXB0b3I8T3V0cHV0IHwgTWF4T3V0cHV0PltdKTogYmlnaW50IHtcbiAgcmV0dXJuIGdldEZpeGVkT3V0cHV0U3VtKG91dHB1dHMuZmlsdGVyKGlzRXh0ZXJuYWxPdXRwdXQpKTtcbn1cblxuZXhwb3J0IHR5cGUgRGVzY3JpcHRvcldhbGxldE91dHB1dCA9IFByZXZPdXRwdXQgJiB7XG4gIGRlc2NyaXB0b3JOYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0b3JJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQgPSBXaXRoRGVzY3JpcHRvcjxQcmV2T3V0cHV0PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQoXG4gIG91dHB1dDogRGVzY3JpcHRvcldhbGxldE91dHB1dCxcbiAgZGVzY3JpcHRvck1hcDogRGVzY3JpcHRvck1hcFxuKTogRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQge1xuICBjb25zdCBkZXNjcmlwdG9yID0gZGVzY3JpcHRvck1hcC5nZXQob3V0cHV0LmRlc2NyaXB0b3JOYW1lKTtcbiAgaWYgKCFkZXNjcmlwdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBEZXNjcmlwdG9yIG5vdCBmb3VuZDogJHtvdXRwdXQuZGVzY3JpcHRvck5hbWV9YCk7XG4gIH1cbiAgYXNzZXJ0KGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBEZXNjcmlwdG9yKTtcbiAgY29uc3QgZGVzY3JpcHRvckF0SW5kZXggPSBnZXREZXNjcmlwdG9yQXRJbmRleENoZWNrU2NyaXB0KFxuICAgIGRlc2NyaXB0b3IsXG4gICAgb3V0cHV0LmRlc2NyaXB0b3JJbmRleCxcbiAgICBvdXRwdXQud2l0bmVzc1V0eG8uc2NyaXB0LFxuICAgIG91dHB1dC5kZXNjcmlwdG9yTmFtZVxuICApO1xuICByZXR1cm4ge1xuICAgIGhhc2g6IG91dHB1dC5oYXNoLFxuICAgIGluZGV4OiBvdXRwdXQuaW5kZXgsXG4gICAgd2l0bmVzc1V0eG86IG91dHB1dC53aXRuZXNzVXR4byxcbiAgICBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yQXRJbmRleCxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { DescriptorMap } from './DescriptorMap';
|
|
4
|
+
export declare function getInputVSizesForDescriptors(descriptors: DescriptorMap): Record<string, number>;
|
|
5
|
+
export declare function getChangeOutputVSizesForDescriptor(d: Descriptor): {
|
|
6
|
+
inputVSize: number;
|
|
7
|
+
outputVSize: number;
|
|
8
|
+
};
|
|
9
|
+
type InputWithDescriptorName = {
|
|
10
|
+
descriptorName: string;
|
|
11
|
+
};
|
|
12
|
+
type OutputWithScript = {
|
|
13
|
+
script: Buffer;
|
|
14
|
+
};
|
|
15
|
+
type Tx<TInput> = {
|
|
16
|
+
inputs: TInput[];
|
|
17
|
+
outputs: OutputWithScript[];
|
|
18
|
+
};
|
|
19
|
+
export declare function getVirtualSize(tx: Tx<Descriptor>): number;
|
|
20
|
+
export declare function getVirtualSize(tx: Tx<InputWithDescriptorName>, descriptors: DescriptorMap): number;
|
|
21
|
+
export declare function getVirtualSizeEstimateForPsbt(psbt: utxolib.Psbt, descriptorMap: DescriptorMap): number;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=VirtualSize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualSize.d.ts","sourceRoot":"","sources":["../../../src/descriptor/VirtualSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"VirtualSize.d.ts","sourceRoot":"","sources":["../../../src/descriptor/VirtualSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkDhD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM/F;AAED,wBAAgB,kCAAkC,CAAC,CAAC,EAAE,UAAU,GAAG;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAKA;AAED,KAAK,uBAAuB,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1D,KAAK,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,KAAK,EAAE,CAAC,MAAM,IAAI;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AAC3D,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,aAAa,GAAG,MAAM,CAAC;AA6BpG,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,GAAG,MAAM,CAUtG"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Dimensions, VirtualSizes } from '@bitgo-beta/unspents';
|
|
2
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { findDescriptorForInput } from './psbt';
|
|
4
|
+
function getScriptPubKeyLength(descType) {
|
|
5
|
+
// See https://bitcoinops.org/en/tools/calc-size/
|
|
6
|
+
switch (descType) {
|
|
7
|
+
case 'Wpkh':
|
|
8
|
+
// https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wpkh
|
|
9
|
+
return 22;
|
|
10
|
+
case 'Sh':
|
|
11
|
+
case 'ShWsh':
|
|
12
|
+
case 'ShWpkh':
|
|
13
|
+
// https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki#specification
|
|
14
|
+
return 23;
|
|
15
|
+
case 'Pkh':
|
|
16
|
+
return 25;
|
|
17
|
+
case 'Wsh':
|
|
18
|
+
case 'Tr':
|
|
19
|
+
// P2WSH: https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#p2wsh
|
|
20
|
+
// P2TR: https://github.com/bitcoin/bips/blob/58ffd93812ff25e87d53d1f202fbb389fdfb85bb/bip-0341.mediawiki#script-validation-rules
|
|
21
|
+
// > A Taproot output is a native SegWit output (see BIP141) with version number 1, and a 32-byte witness program.
|
|
22
|
+
// 32 bytes for the hash, 1 byte for the version, 1 byte for the push opcode
|
|
23
|
+
return 34;
|
|
24
|
+
case 'Bare':
|
|
25
|
+
throw new Error('cannot determine scriptPubKey length for Bare descriptor');
|
|
26
|
+
default:
|
|
27
|
+
throw new Error('unexpected descriptor type ' + descType);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function getInputVSizeForDescriptor(descriptor) {
|
|
31
|
+
// FIXME(BTC-1489): this can overestimate the size of the input significantly
|
|
32
|
+
const maxWeight = descriptor.maxWeightToSatisfy();
|
|
33
|
+
const maxVSize = Math.ceil(maxWeight / 4);
|
|
34
|
+
const sizeOpPushdata1 = 1;
|
|
35
|
+
const sizeOpPushdata2 = 2;
|
|
36
|
+
return (
|
|
37
|
+
// inputId
|
|
38
|
+
32 +
|
|
39
|
+
// vOut
|
|
40
|
+
4 +
|
|
41
|
+
// nSequence
|
|
42
|
+
4 +
|
|
43
|
+
// script overhead
|
|
44
|
+
(maxVSize < 255 ? sizeOpPushdata1 : sizeOpPushdata2) +
|
|
45
|
+
// script
|
|
46
|
+
maxVSize);
|
|
47
|
+
}
|
|
48
|
+
export function getInputVSizesForDescriptors(descriptors) {
|
|
49
|
+
return Object.fromEntries(Array.from(descriptors.entries()).map(([name, d]) => {
|
|
50
|
+
return [name, getInputVSizeForDescriptor(d)];
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
export function getChangeOutputVSizesForDescriptor(d) {
|
|
54
|
+
return {
|
|
55
|
+
inputVSize: getInputVSizeForDescriptor(d),
|
|
56
|
+
outputVSize: getScriptPubKeyLength(d.descType()),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function getVirtualSize(tx, descriptorMap) {
|
|
60
|
+
const lookup = descriptorMap ? getInputVSizesForDescriptors(descriptorMap) : undefined;
|
|
61
|
+
const inputVSize = tx.inputs.reduce((sum, input) => {
|
|
62
|
+
if (input instanceof Descriptor) {
|
|
63
|
+
return sum + getInputVSizeForDescriptor(input);
|
|
64
|
+
}
|
|
65
|
+
if ('descriptorName' in input) {
|
|
66
|
+
if (!lookup) {
|
|
67
|
+
throw new Error('missing descriptorMap');
|
|
68
|
+
}
|
|
69
|
+
const vsize = lookup[input.descriptorName];
|
|
70
|
+
if (!vsize) {
|
|
71
|
+
throw new Error(`Could not find descriptor ${input.descriptorName}`);
|
|
72
|
+
}
|
|
73
|
+
return sum + vsize;
|
|
74
|
+
}
|
|
75
|
+
throw new Error('unexpected input');
|
|
76
|
+
}, 0);
|
|
77
|
+
const outputVSize = tx.outputs.reduce((sum, o) => {
|
|
78
|
+
return sum + Dimensions.getVSizeForOutputWithScriptLength(o.script.length);
|
|
79
|
+
}, 0);
|
|
80
|
+
// we will just assume that we have at least one segwit input
|
|
81
|
+
return inputVSize + outputVSize + VirtualSizes.txSegOverheadVSize;
|
|
82
|
+
}
|
|
83
|
+
export function getVirtualSizeEstimateForPsbt(psbt, descriptorMap) {
|
|
84
|
+
const inputs = psbt.data.inputs.map((i) => {
|
|
85
|
+
const result = findDescriptorForInput(i, descriptorMap);
|
|
86
|
+
if (!result) {
|
|
87
|
+
throw new Error('Could not find descriptor for input');
|
|
88
|
+
}
|
|
89
|
+
return result.descriptor;
|
|
90
|
+
});
|
|
91
|
+
const outputs = psbt.txOutputs.map((o) => ({ script: o.script }));
|
|
92
|
+
return getVirtualSize({ inputs, outputs });
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbFNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9WaXJ0dWFsU2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFaEQsU0FBUyxxQkFBcUIsQ0FBQyxRQUFnQjtJQUM3QyxpREFBaUQ7SUFDakQsUUFBUSxRQUFRLEVBQUUsQ0FBQztRQUNqQixLQUFLLE1BQU07WUFDVCx3RUFBd0U7WUFDeEUsT0FBTyxFQUFFLENBQUM7UUFDWixLQUFLLElBQUksQ0FBQztRQUNWLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxRQUFRO1lBQ1gsK0VBQStFO1lBQy9FLE9BQU8sRUFBRSxDQUFDO1FBQ1osS0FBSyxLQUFLO1lBQ1IsT0FBTyxFQUFFLENBQUM7UUFDWixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssSUFBSTtZQUNQLDhFQUE4RTtZQUM5RSxpSUFBaUk7WUFDakksa0hBQWtIO1lBQ2xILDRFQUE0RTtZQUM1RSxPQUFPLEVBQUUsQ0FBQztRQUNaLEtBQUssTUFBTTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUM5RTtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLFVBQXNCO0lBQ3hELDZFQUE2RTtJQUM3RSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLE9BQU87SUFDTCxVQUFVO0lBQ1YsRUFBRTtRQUNGLE9BQU87UUFDUCxDQUFDO1FBQ0QsWUFBWTtRQUNaLENBQUM7UUFDRCxrQkFBa0I7UUFDbEIsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUNwRCxTQUFTO1FBQ1QsUUFBUSxDQUNULENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLFdBQTBCO0lBQ3JFLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQ0FBa0MsQ0FBQyxDQUFhO0lBSTlELE9BQU87UUFDTCxVQUFVLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDakQsQ0FBQztBQUNKLENBQUM7QUFZRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixFQUFnRCxFQUNoRCxhQUE2QjtJQUU3QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkYsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDakQsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDaEMsT0FBTyxHQUFHLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELElBQUksZ0JBQWdCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDdkUsQ0FBQztZQUNELE9BQU8sR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNOLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9DLE9BQU8sR0FBRyxHQUFHLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNOLDZEQUE2RDtJQUM3RCxPQUFPLFVBQVUsR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDO0FBQ3BFLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsSUFBa0IsRUFBRSxhQUE0QjtJQUM1RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4QyxNQUFNLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9ucywgVmlydHVhbFNpemVzIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi9EZXNjcmlwdG9yTWFwJztcbmltcG9ydCB7IGZpbmREZXNjcmlwdG9yRm9ySW5wdXQgfSBmcm9tICcuL3BzYnQnO1xuXG5mdW5jdGlvbiBnZXRTY3JpcHRQdWJLZXlMZW5ndGgoZGVzY1R5cGU6IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIFNlZSBodHRwczovL2JpdGNvaW5vcHMub3JnL2VuL3Rvb2xzL2NhbGMtc2l6ZS9cbiAgc3dpdGNoIChkZXNjVHlwZSkge1xuICAgIGNhc2UgJ1dwa2gnOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDE0MS5tZWRpYXdpa2kjcDJ3cGtoXG4gICAgICByZXR1cm4gMjI7XG4gICAgY2FzZSAnU2gnOlxuICAgIGNhc2UgJ1NoV3NoJzpcbiAgICBjYXNlICdTaFdwa2gnOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDAxNi5tZWRpYXdpa2kjc3BlY2lmaWNhdGlvblxuICAgICAgcmV0dXJuIDIzO1xuICAgIGNhc2UgJ1BraCc6XG4gICAgICByZXR1cm4gMjU7XG4gICAgY2FzZSAnV3NoJzpcbiAgICBjYXNlICdUcic6XG4gICAgICAvLyBQMldTSDogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDE0MS5tZWRpYXdpa2kjcDJ3c2hcbiAgICAgIC8vIFAyVFI6IGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi81OGZmZDkzODEyZmYyNWU4N2Q1M2QxZjIwMmZiYjM4OWZkZmI4NWJiL2JpcC0wMzQxLm1lZGlhd2lraSNzY3JpcHQtdmFsaWRhdGlvbi1ydWxlc1xuICAgICAgLy8gPiBBIFRhcHJvb3Qgb3V0cHV0IGlzIGEgbmF0aXZlIFNlZ1dpdCBvdXRwdXQgKHNlZSBCSVAxNDEpIHdpdGggdmVyc2lvbiBudW1iZXIgMSwgYW5kIGEgMzItYnl0ZSB3aXRuZXNzIHByb2dyYW0uXG4gICAgICAvLyAzMiBieXRlcyBmb3IgdGhlIGhhc2gsIDEgYnl0ZSBmb3IgdGhlIHZlcnNpb24sIDEgYnl0ZSBmb3IgdGhlIHB1c2ggb3Bjb2RlXG4gICAgICByZXR1cm4gMzQ7XG4gICAgY2FzZSAnQmFyZSc6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBkZXRlcm1pbmUgc2NyaXB0UHViS2V5IGxlbmd0aCBmb3IgQmFyZSBkZXNjcmlwdG9yJyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBkZXNjcmlwdG9yIHR5cGUgJyArIGRlc2NUeXBlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJbnB1dFZTaXplRm9yRGVzY3JpcHRvcihkZXNjcmlwdG9yOiBEZXNjcmlwdG9yKTogbnVtYmVyIHtcbiAgLy8gRklYTUUoQlRDLTE0ODkpOiB0aGlzIGNhbiBvdmVyZXN0aW1hdGUgdGhlIHNpemUgb2YgdGhlIGlucHV0IHNpZ25pZmljYW50bHlcbiAgY29uc3QgbWF4V2VpZ2h0ID0gZGVzY3JpcHRvci5tYXhXZWlnaHRUb1NhdGlzZnkoKTtcbiAgY29uc3QgbWF4VlNpemUgPSBNYXRoLmNlaWwobWF4V2VpZ2h0IC8gNCk7XG4gIGNvbnN0IHNpemVPcFB1c2hkYXRhMSA9IDE7XG4gIGNvbnN0IHNpemVPcFB1c2hkYXRhMiA9IDI7XG4gIHJldHVybiAoXG4gICAgLy8gaW5wdXRJZFxuICAgIDMyICtcbiAgICAvLyB2T3V0XG4gICAgNCArXG4gICAgLy8gblNlcXVlbmNlXG4gICAgNCArXG4gICAgLy8gc2NyaXB0IG92ZXJoZWFkXG4gICAgKG1heFZTaXplIDwgMjU1ID8gc2l6ZU9wUHVzaGRhdGExIDogc2l6ZU9wUHVzaGRhdGEyKSArXG4gICAgLy8gc2NyaXB0XG4gICAgbWF4VlNpemVcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0VlNpemVzRm9yRGVzY3JpcHRvcnMoZGVzY3JpcHRvcnM6IERlc2NyaXB0b3JNYXApOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBBcnJheS5mcm9tKGRlc2NyaXB0b3JzLmVudHJpZXMoKSkubWFwKChbbmFtZSwgZF0pID0+IHtcbiAgICAgIHJldHVybiBbbmFtZSwgZ2V0SW5wdXRWU2l6ZUZvckRlc2NyaXB0b3IoZCldO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDaGFuZ2VPdXRwdXRWU2l6ZXNGb3JEZXNjcmlwdG9yKGQ6IERlc2NyaXB0b3IpOiB7XG4gIGlucHV0VlNpemU6IG51bWJlcjtcbiAgb3V0cHV0VlNpemU6IG51bWJlcjtcbn0ge1xuICByZXR1cm4ge1xuICAgIGlucHV0VlNpemU6IGdldElucHV0VlNpemVGb3JEZXNjcmlwdG9yKGQpLFxuICAgIG91dHB1dFZTaXplOiBnZXRTY3JpcHRQdWJLZXlMZW5ndGgoZC5kZXNjVHlwZSgpKSxcbiAgfTtcbn1cblxudHlwZSBJbnB1dFdpdGhEZXNjcmlwdG9yTmFtZSA9IHsgZGVzY3JpcHRvck5hbWU6IHN0cmluZyB9O1xudHlwZSBPdXRwdXRXaXRoU2NyaXB0ID0geyBzY3JpcHQ6IEJ1ZmZlciB9O1xuXG50eXBlIFR4PFRJbnB1dD4gPSB7XG4gIGlucHV0czogVElucHV0W107XG4gIG91dHB1dHM6IE91dHB1dFdpdGhTY3JpcHRbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXJ0dWFsU2l6ZSh0eDogVHg8RGVzY3JpcHRvcj4pOiBudW1iZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlydHVhbFNpemUodHg6IFR4PElucHV0V2l0aERlc2NyaXB0b3JOYW1lPiwgZGVzY3JpcHRvcnM6IERlc2NyaXB0b3JNYXApOiBudW1iZXI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlydHVhbFNpemUoXG4gIHR4OiBUeDxEZXNjcmlwdG9yPiB8IFR4PElucHV0V2l0aERlc2NyaXB0b3JOYW1lPixcbiAgZGVzY3JpcHRvck1hcD86IERlc2NyaXB0b3JNYXBcbik6IG51bWJlciB7XG4gIGNvbnN0IGxvb2t1cCA9IGRlc2NyaXB0b3JNYXAgPyBnZXRJbnB1dFZTaXplc0ZvckRlc2NyaXB0b3JzKGRlc2NyaXB0b3JNYXApIDogdW5kZWZpbmVkO1xuICBjb25zdCBpbnB1dFZTaXplID0gdHguaW5wdXRzLnJlZHVjZSgoc3VtLCBpbnB1dCkgPT4ge1xuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIERlc2NyaXB0b3IpIHtcbiAgICAgIHJldHVybiBzdW0gKyBnZXRJbnB1dFZTaXplRm9yRGVzY3JpcHRvcihpbnB1dCk7XG4gICAgfVxuICAgIGlmICgnZGVzY3JpcHRvck5hbWUnIGluIGlucHV0KSB7XG4gICAgICBpZiAoIWxvb2t1cCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgZGVzY3JpcHRvck1hcCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgdnNpemUgPSBsb29rdXBbaW5wdXQuZGVzY3JpcHRvck5hbWVdO1xuICAgICAgaWYgKCF2c2l6ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlc2NyaXB0b3IgJHtpbnB1dC5kZXNjcmlwdG9yTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdW0gKyB2c2l6ZTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGVjdGVkIGlucHV0Jyk7XG4gIH0sIDApO1xuICBjb25zdCBvdXRwdXRWU2l6ZSA9IHR4Lm91dHB1dHMucmVkdWNlKChzdW0sIG8pID0+IHtcbiAgICByZXR1cm4gc3VtICsgRGltZW5zaW9ucy5nZXRWU2l6ZUZvck91dHB1dFdpdGhTY3JpcHRMZW5ndGgoby5zY3JpcHQubGVuZ3RoKTtcbiAgfSwgMCk7XG4gIC8vIHdlIHdpbGwganVzdCBhc3N1bWUgdGhhdCB3ZSBoYXZlIGF0IGxlYXN0IG9uZSBzZWd3aXQgaW5wdXRcbiAgcmV0dXJuIGlucHV0VlNpemUgKyBvdXRwdXRWU2l6ZSArIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXJ0dWFsU2l6ZUVzdGltYXRlRm9yUHNidChwc2J0OiB1dHhvbGliLlBzYnQsIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXApOiBudW1iZXIge1xuICBjb25zdCBpbnB1dHMgPSBwc2J0LmRhdGEuaW5wdXRzLm1hcCgoaSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGZpbmREZXNjcmlwdG9yRm9ySW5wdXQoaSwgZGVzY3JpcHRvck1hcCk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgZGVzY3JpcHRvciBmb3IgaW5wdXQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5kZXNjcmlwdG9yO1xuICB9KTtcbiAgY29uc3Qgb3V0cHV0cyA9IHBzYnQudHhPdXRwdXRzLm1hcCgobykgPT4gKHsgc2NyaXB0OiBvLnNjcmlwdCB9KSk7XG4gIHJldHVybiBnZXRWaXJ0dWFsU2l6ZSh7IGlucHV0cywgb3V0cHV0cyB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
2
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
|
+
export declare function createScriptPubKeyFromDescriptor(descriptor: Descriptor, index: number | undefined): Buffer;
|
|
4
|
+
export declare function createAddressFromDescriptor(descriptor: Descriptor, index: number | undefined, network: utxolib.Network): string;
|
|
5
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/descriptor/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/descriptor/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAK1G;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,MAAM,CAER"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
export function createScriptPubKeyFromDescriptor(descriptor, index) {
|
|
3
|
+
if (index === undefined) {
|
|
4
|
+
return Buffer.from(descriptor.scriptPubkey());
|
|
5
|
+
}
|
|
6
|
+
return createScriptPubKeyFromDescriptor(descriptor.atDerivationIndex(index), undefined);
|
|
7
|
+
}
|
|
8
|
+
export function createAddressFromDescriptor(descriptor, index, network) {
|
|
9
|
+
return utxolib.address.fromOutputScript(createScriptPubKeyFromDescriptor(descriptor, index), network);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsVUFBc0IsRUFBRSxLQUF5QjtJQUNoRyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELE9BQU8sZ0NBQWdDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFGLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLFVBQXNCLEVBQ3RCLEtBQXlCLEVBQ3pCLE9BQXdCO0lBRXhCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvcjogRGVzY3JpcHRvciwgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCk6IEJ1ZmZlciB7XG4gIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3Iuc2NyaXB0UHVia2V5KCkpO1xuICB9XG4gIHJldHVybiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGluZGV4KSwgdW5kZWZpbmVkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkZHJlc3NGcm9tRGVzY3JpcHRvcihcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBzdHJpbmcge1xuICByZXR1cm4gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvciwgaW5kZXgpLCBuZXR3b3JrKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
2
|
+
/**
|
|
3
|
+
* Get a descriptor at a specific derivation index.
|
|
4
|
+
* For wildcard descriptors (containing '*'), the index is required and used for derivation.
|
|
5
|
+
* For definite descriptors (not containing '*'), no index should be provided.
|
|
6
|
+
* @param descriptor - The descriptor to derive from
|
|
7
|
+
* @param index - The derivation index for wildcard descriptors
|
|
8
|
+
* @returns A new descriptor at the specified index for wildcard descriptors, or the original descriptor for definite ones
|
|
9
|
+
* @throws {Error} If index is undefined for a wildcard descriptor or if index is provided for a definite descriptor
|
|
10
|
+
*/
|
|
11
|
+
export declare function getDescriptorAtIndex(descriptor: Descriptor, index: number | undefined): Descriptor;
|
|
12
|
+
export declare function getDescriptorAtIndexCheckScript(descriptor: Descriptor, index: number | undefined, script: Buffer, descriptorString?: string): Descriptor;
|
|
13
|
+
//# sourceMappingURL=derive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/descriptor/derive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/descriptor/derive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAelG;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,SAAwB,GACvC,UAAU,CAQZ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import assert from 'assert';
|
|
2
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
3
|
+
/**
|
|
4
|
+
* Get a descriptor at a specific derivation index.
|
|
5
|
+
* For wildcard descriptors (containing '*'), the index is required and used for derivation.
|
|
6
|
+
* For definite descriptors (not containing '*'), no index should be provided.
|
|
7
|
+
* @param descriptor - The descriptor to derive from
|
|
8
|
+
* @param index - The derivation index for wildcard descriptors
|
|
9
|
+
* @returns A new descriptor at the specified index for wildcard descriptors, or the original descriptor for definite ones
|
|
10
|
+
* @throws {Error} If index is undefined for a wildcard descriptor or if index is provided for a definite descriptor
|
|
11
|
+
*/
|
|
12
|
+
export function getDescriptorAtIndex(descriptor, index) {
|
|
13
|
+
assert(descriptor instanceof Descriptor);
|
|
14
|
+
Descriptor.fromString(descriptor.toString(), 'derivable');
|
|
15
|
+
descriptor = Descriptor.fromStringDetectType(descriptor.toString());
|
|
16
|
+
if (descriptor.hasWildcard()) {
|
|
17
|
+
if (index === undefined) {
|
|
18
|
+
throw new Error('Derivable descriptor requires an index');
|
|
19
|
+
}
|
|
20
|
+
return descriptor.atDerivationIndex(index);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
if (index !== undefined) {
|
|
24
|
+
throw new Error('Definite descriptor cannot be derived with index');
|
|
25
|
+
}
|
|
26
|
+
return descriptor;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export function getDescriptorAtIndexCheckScript(descriptor, index, script, descriptorString = descriptor.toString()) {
|
|
30
|
+
assert(descriptor instanceof Descriptor);
|
|
31
|
+
const descriptorAtIndex = getDescriptorAtIndex(descriptor, index);
|
|
32
|
+
if (!script.equals(descriptorAtIndex.scriptPubkey())) {
|
|
33
|
+
throw new Error(`Script mismatch: descriptor ${descriptorString} script=${script.toString('hex')}`);
|
|
34
|
+
}
|
|
35
|
+
assert(descriptorAtIndex instanceof Descriptor);
|
|
36
|
+
return descriptorAtIndex;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZGVyaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsVUFBc0IsRUFBRSxLQUF5QjtJQUNwRixNQUFNLENBQUMsVUFBVSxZQUFZLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFELFVBQVUsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FDN0MsVUFBc0IsRUFDdEIsS0FBeUIsRUFDekIsTUFBYyxFQUNkLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUU7SUFFeEMsTUFBTSxDQUFDLFVBQVUsWUFBWSxVQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsZ0JBQWdCLFdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNELE1BQU0sQ0FBQyxpQkFBaUIsWUFBWSxVQUFVLENBQUMsQ0FBQztJQUNoRCxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuLyoqXG4gKiBHZXQgYSBkZXNjcmlwdG9yIGF0IGEgc3BlY2lmaWMgZGVyaXZhdGlvbiBpbmRleC5cbiAqIEZvciB3aWxkY2FyZCBkZXNjcmlwdG9ycyAoY29udGFpbmluZyAnKicpLCB0aGUgaW5kZXggaXMgcmVxdWlyZWQgYW5kIHVzZWQgZm9yIGRlcml2YXRpb24uXG4gKiBGb3IgZGVmaW5pdGUgZGVzY3JpcHRvcnMgKG5vdCBjb250YWluaW5nICcqJyksIG5vIGluZGV4IHNob3VsZCBiZSBwcm92aWRlZC5cbiAqIEBwYXJhbSBkZXNjcmlwdG9yIC0gVGhlIGRlc2NyaXB0b3IgdG8gZGVyaXZlIGZyb21cbiAqIEBwYXJhbSBpbmRleCAtIFRoZSBkZXJpdmF0aW9uIGluZGV4IGZvciB3aWxkY2FyZCBkZXNjcmlwdG9yc1xuICogQHJldHVybnMgQSBuZXcgZGVzY3JpcHRvciBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IGZvciB3aWxkY2FyZCBkZXNjcmlwdG9ycywgb3IgdGhlIG9yaWdpbmFsIGRlc2NyaXB0b3IgZm9yIGRlZmluaXRlIG9uZXNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBpbmRleCBpcyB1bmRlZmluZWQgZm9yIGEgd2lsZGNhcmQgZGVzY3JpcHRvciBvciBpZiBpbmRleCBpcyBwcm92aWRlZCBmb3IgYSBkZWZpbml0ZSBkZXNjcmlwdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yQXRJbmRleChkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLCBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkKTogRGVzY3JpcHRvciB7XG4gIGFzc2VydChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvcik7XG4gIERlc2NyaXB0b3IuZnJvbVN0cmluZyhkZXNjcmlwdG9yLnRvU3RyaW5nKCksICdkZXJpdmFibGUnKTtcbiAgZGVzY3JpcHRvciA9IERlc2NyaXB0b3IuZnJvbVN0cmluZ0RldGVjdFR5cGUoZGVzY3JpcHRvci50b1N0cmluZygpKTtcbiAgaWYgKGRlc2NyaXB0b3IuaGFzV2lsZGNhcmQoKSkge1xuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Rlcml2YWJsZSBkZXNjcmlwdG9yIHJlcXVpcmVzIGFuIGluZGV4Jyk7XG4gICAgfVxuICAgIHJldHVybiBkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGluZGV4KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZWZpbml0ZSBkZXNjcmlwdG9yIGNhbm5vdCBiZSBkZXJpdmVkIHdpdGggaW5kZXgnKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JBdEluZGV4Q2hlY2tTY3JpcHQoXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIHNjcmlwdDogQnVmZmVyLFxuICBkZXNjcmlwdG9yU3RyaW5nID0gZGVzY3JpcHRvci50b1N0cmluZygpXG4pOiBEZXNjcmlwdG9yIHtcbiAgYXNzZXJ0KGRlc2NyaXB0b3IgaW5zdGFuY2VvZiBEZXNjcmlwdG9yKTtcbiAgY29uc3QgZGVzY3JpcHRvckF0SW5kZXggPSBnZXREZXNjcmlwdG9yQXRJbmRleChkZXNjcmlwdG9yLCBpbmRleCk7XG4gIGlmICghc2NyaXB0LmVxdWFscyhkZXNjcmlwdG9yQXRJbmRleC5zY3JpcHRQdWJrZXkoKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNjcmlwdCBtaXNtYXRjaDogZGVzY3JpcHRvciAke2Rlc2NyaXB0b3JTdHJpbmd9IHNjcmlwdD0ke3NjcmlwdC50b1N0cmluZygnaGV4Jyl9YCk7XG4gIH1cbiAgYXNzZXJ0KGRlc2NyaXB0b3JBdEluZGV4IGluc3RhbmNlb2YgRGVzY3JpcHRvcik7XG4gIHJldHVybiBkZXNjcmlwdG9yQXRJbmRleDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { Descriptor } from '@bitgo/wasm-utxo';
|
|
3
|
+
/**
|
|
4
|
+
* Get a standard output descriptor that corresponds to the proprietary HD wallet setup
|
|
5
|
+
* used in BitGo wallets.
|
|
6
|
+
* Only supports a subset of script types.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getDescriptorForScriptType(rootWalletKeys: utxolib.bitgo.RootWalletKeys, scriptType: 'p2sh' | 'p2shP2wsh' | 'p2wsh', scope: 'internal' | 'external'): Descriptor;
|
|
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>;
|
|
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,
|
|
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,kBAAkB,CAAC;AAYnD;;;;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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { Descriptor, ast } from '@bitgo/wasm-utxo';
|
|
3
|
+
/** Expand a template with the given root wallet keys and chain code */
|
|
4
|
+
function expand(rootWalletKeys, keyIndex, chainCode) {
|
|
5
|
+
if (keyIndex !== 0 && keyIndex !== 1 && keyIndex !== 2) {
|
|
6
|
+
throw new Error('Invalid key index');
|
|
7
|
+
}
|
|
8
|
+
const xpub = rootWalletKeys.triple[keyIndex].neutered().toBase58();
|
|
9
|
+
const prefix = rootWalletKeys.derivationPrefixes[keyIndex];
|
|
10
|
+
return xpub + '/' + prefix + '/' + chainCode + '/*';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Get a standard output descriptor that corresponds to the proprietary HD wallet setup
|
|
14
|
+
* used in BitGo wallets.
|
|
15
|
+
* Only supports a subset of script types.
|
|
16
|
+
*/
|
|
17
|
+
export function getDescriptorForScriptType(rootWalletKeys, scriptType, scope) {
|
|
18
|
+
const chain = scope === 'external'
|
|
19
|
+
? utxolib.bitgo.getExternalChainCode(scriptType)
|
|
20
|
+
: utxolib.bitgo.getInternalChainCode(scriptType);
|
|
21
|
+
const multi = {
|
|
22
|
+
multi: [2, ...rootWalletKeys.triple.map((_, i) => expand(rootWalletKeys, i, chain))],
|
|
23
|
+
};
|
|
24
|
+
switch (scriptType) {
|
|
25
|
+
case 'p2sh':
|
|
26
|
+
return Descriptor.fromString(ast.formatNode({ sh: multi }), 'derivable');
|
|
27
|
+
case 'p2shP2wsh':
|
|
28
|
+
return Descriptor.fromString(ast.formatNode({ sh: { wsh: multi } }), 'derivable');
|
|
29
|
+
case 'p2wsh':
|
|
30
|
+
return Descriptor.fromString(ast.formatNode({ wsh: multi }), 'derivable');
|
|
31
|
+
default:
|
|
32
|
+
throw new Error(`Unsupported script type ${scriptType}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function isSupportedScriptType(scriptType) {
|
|
36
|
+
return ['p2sh', 'p2shP2wsh', 'p2wsh'].includes(scriptType);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get a map of named descriptors for the given root wallet keys.
|
|
40
|
+
* Unsupported script types will have a value of null.
|
|
41
|
+
* Currently supports p2sh, p2shP2wsh, and p2wsh script types.
|
|
42
|
+
* @param rootWalletKeys
|
|
43
|
+
*/
|
|
44
|
+
export function getNamedDescriptorsForRootWalletKeys(rootWalletKeys) {
|
|
45
|
+
const scopes = ['external', 'internal'];
|
|
46
|
+
return new Map(utxolib.bitgo.outputScripts.scriptTypes2Of3.flatMap((scriptType) => scopes.map((scope) => [
|
|
47
|
+
`${scriptType}/${scope}`,
|
|
48
|
+
isSupportedScriptType(scriptType) ? getDescriptorForScriptType(rootWalletKeys, scriptType, scope) : null,
|
|
49
|
+
])));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUZpeGVkU2NyaXB0V2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZnJvbUZpeGVkU2NyaXB0V2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCx1RUFBdUU7QUFDdkUsU0FBUyxNQUFNLENBQUMsY0FBNEMsRUFBRSxRQUFnQixFQUFFLFNBQWlCO0lBQy9GLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkUsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNELE9BQU8sSUFBSSxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUcsR0FBRyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUM7QUFDdEQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLGNBQTRDLEVBQzVDLFVBQTBDLEVBQzFDLEtBQThCO0lBRTlCLE1BQU0sS0FBSyxHQUNULEtBQUssS0FBSyxVQUFVO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBdUI7UUFDaEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ3JGLENBQUM7SUFDRixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDM0UsS0FBSyxXQUFXO1lBQ2QsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BGLEtBQUssT0FBTztZQUNWLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUU7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsVUFBc0Q7SUFFdEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsY0FBNEM7SUFFNUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFVLENBQUM7SUFDakQsT0FBTyxJQUFJLEdBQUcsQ0FDWixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDakUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDcEIsR0FBRyxVQUFVLElBQUksS0FBSyxFQUFFO1FBQ3hCLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0tBQ3pHLENBQUMsQ0FDSCxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuLyoqIEV4cGFuZCBhIHRlbXBsYXRlIHdpdGggdGhlIGdpdmVuIHJvb3Qgd2FsbGV0IGtleXMgYW5kIGNoYWluIGNvZGUgKi9cbmZ1bmN0aW9uIGV4cGFuZChyb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cywga2V5SW5kZXg6IG51bWJlciwgY2hhaW5Db2RlOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoa2V5SW5kZXggIT09IDAgJiYga2V5SW5kZXggIT09IDEgJiYga2V5SW5kZXggIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IGluZGV4Jyk7XG4gIH1cbiAgY29uc3QgeHB1YiA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtrZXlJbmRleF0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICBjb25zdCBwcmVmaXggPSByb290V2FsbGV0S2V5cy5kZXJpdmF0aW9uUHJlZml4ZXNba2V5SW5kZXhdO1xuICByZXR1cm4geHB1YiArICcvJyArIHByZWZpeCArICcvJyArIGNoYWluQ29kZSArICcvKic7XG59XG5cbi8qKlxuICogR2V0IGEgc3RhbmRhcmQgb3V0cHV0IGRlc2NyaXB0b3IgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcHJpZXRhcnkgSEQgd2FsbGV0IHNldHVwXG4gKiB1c2VkIGluIEJpdEdvIHdhbGxldHMuXG4gKiBPbmx5IHN1cHBvcnRzIGEgc3Vic2V0IG9mIHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JGb3JTY3JpcHRUeXBlKFxuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgc2NyaXB0VHlwZTogJ3Ayc2gnIHwgJ3Ayc2hQMndzaCcgfCAncDJ3c2gnLFxuICBzY29wZTogJ2ludGVybmFsJyB8ICdleHRlcm5hbCdcbik6IERlc2NyaXB0b3Ige1xuICBjb25zdCBjaGFpbiA9XG4gICAgc2NvcGUgPT09ICdleHRlcm5hbCdcbiAgICAgID8gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShzY3JpcHRUeXBlKVxuICAgICAgOiB1dHhvbGliLmJpdGdvLmdldEludGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpO1xuICBjb25zdCBtdWx0aTogYXN0Lk1pbmlzY3JpcHROb2RlID0ge1xuICAgIG11bHRpOiBbMiwgLi4ucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoXywgaSkgPT4gZXhwYW5kKHJvb3RXYWxsZXRLZXlzLCBpLCBjaGFpbikpXSxcbiAgfTtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgc2g6IG11bHRpIH0pLCAnZGVyaXZhYmxlJyk7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyBzaDogeyB3c2g6IG11bHRpIH0gfSksICdkZXJpdmFibGUnKTtcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgd3NoOiBtdWx0aSB9KSwgJ2Rlcml2YWJsZScpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1N1cHBvcnRlZFNjcmlwdFR5cGUoXG4gIHNjcmlwdFR5cGU6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mM1xuKTogc2NyaXB0VHlwZSBpcyAncDJzaCcgfCAncDJzaFAyd3NoJyB8ICdwMndzaCcge1xuICByZXR1cm4gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCddLmluY2x1ZGVzKHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqIEdldCBhIG1hcCBvZiBuYW1lZCBkZXNjcmlwdG9ycyBmb3IgdGhlIGdpdmVuIHJvb3Qgd2FsbGV0IGtleXMuXG4gKiBVbnN1cHBvcnRlZCBzY3JpcHQgdHlwZXMgd2lsbCBoYXZlIGEgdmFsdWUgb2YgbnVsbC5cbiAqIEN1cnJlbnRseSBzdXBwb3J0cyBwMnNoLCBwMnNoUDJ3c2gsIGFuZCBwMndzaCBzY3JpcHQgdHlwZXMuXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVkRGVzY3JpcHRvcnNGb3JSb290V2FsbGV0S2V5cyhcbiAgcm9vdFdhbGxldEtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXNcbik6IE1hcDxzdHJpbmcsIERlc2NyaXB0b3IgfCBudWxsPiB7XG4gIGNvbnN0IHNjb3BlcyA9IFsnZXh0ZXJuYWwnLCAnaW50ZXJuYWwnXSBhcyBjb25zdDtcbiAgcmV0dXJuIG5ldyBNYXAoXG4gICAgdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5mbGF0TWFwKChzY3JpcHRUeXBlKSA9PlxuICAgICAgc2NvcGVzLm1hcCgoc2NvcGUpID0+IFtcbiAgICAgICAgYCR7c2NyaXB0VHlwZX0vJHtzY29wZX1gLFxuICAgICAgICBpc1N1cHBvcnRlZFNjcmlwdFR5cGUoc2NyaXB0VHlwZSkgPyBnZXREZXNjcmlwdG9yRm9yU2NyaXB0VHlwZShyb290V2FsbGV0S2V5cywgc2NyaXB0VHlwZSwgc2NvcGUpIDogbnVsbCxcbiAgICAgIF0pXG4gICAgKVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './psbt';
|
|
2
|
+
export * from './address';
|
|
3
|
+
export * from './DescriptorMap';
|
|
4
|
+
export * from './derive';
|
|
5
|
+
export * from './Output';
|
|
6
|
+
export * from './VirtualSize';
|
|
7
|
+
export * from './fromFixedScriptWallet';
|
|
8
|
+
export * from './parse/PatternMatcher';
|
|
9
|
+
/** @deprecated - import from @bitgo-beta/utxo-core directly instead */
|
|
10
|
+
export * from '../Output';
|
|
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;AAC9B,cAAc,yBAAyB,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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './psbt';
|
|
2
|
+
export * from './address';
|
|
3
|
+
export * from './DescriptorMap';
|
|
4
|
+
export * from './derive';
|
|
5
|
+
export * from './Output';
|
|
6
|
+
export * from './VirtualSize';
|
|
7
|
+
export * from './fromFixedScriptWallet';
|
|
8
|
+
export * from './parse/PatternMatcher';
|
|
9
|
+
/** @deprecated - import from @bitgo-beta/utxo-core directly instead */
|
|
10
|
+
export * from '../Output';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2Qyx1RUFBdUU7QUFDdkUsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BzYnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vRGVzY3JpcHRvck1hcCc7XG5leHBvcnQgKiBmcm9tICcuL2Rlcml2ZSc7XG5leHBvcnQgKiBmcm9tICcuL091dHB1dCc7XG5leHBvcnQgKiBmcm9tICcuL1ZpcnR1YWxTaXplJztcbmV4cG9ydCAqIGZyb20gJy4vZnJvbUZpeGVkU2NyaXB0V2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vcGFyc2UvUGF0dGVybk1hdGNoZXInO1xuXG4vKiogQGRlcHJlY2F0ZWQgLSBpbXBvcnQgZnJvbSBAYml0Z28tYmV0YS91dHhvLWNvcmUgZGlyZWN0bHkgaW5zdGVhZCAqL1xuZXhwb3J0ICogZnJvbSAnLi4vT3V0cHV0JztcbiJdfQ==
|
|
@@ -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"}
|