@bitgo-beta/utxo-core 1.8.1-beta.82 → 1.8.1-beta.821
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 +125 -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 +113 -0
- package/dist/cjs/src/bip32utils.d.ts +12 -0
- package/dist/cjs/src/bip32utils.d.ts.map +1 -0
- package/dist/cjs/src/bip32utils.js +15 -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.map +1 -0
- package/dist/{src → cjs/src}/paygo/attestation.js +1 -1
- package/dist/cjs/src/paygo/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/paygo/index.js +1 -1
- package/dist/{src → cjs/src}/paygo/parsePayGoAttestation.d.ts +2 -1
- 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.map +1 -0
- package/dist/cjs/src/paygo/psbt/Errors.js +44 -0
- package/dist/cjs/src/paygo/psbt/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/paygo/psbt/index.js +1 -1
- package/dist/{src → cjs/src}/paygo/psbt/payGoAddressProof.d.ts +2 -1
- 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/cjs/src/testutil/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/testutil/index.js +1 -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.map +1 -0
- package/dist/{src → cjs/src}/testutil/trimMessagePrefix.js +1 -1
- 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 +119 -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 +74 -0
- package/dist/esm/bip32utils.d.ts +12 -0
- package/dist/esm/bip32utils.d.ts.map +1 -0
- package/dist/esm/bip32utils.js +12 -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.js +18 -0
- package/dist/esm/paygo/index.d.ts +3 -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.js +35 -0
- package/dist/esm/paygo/psbt/index.d.ts +2 -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/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.js +24 -0
- package/dist/esm/xOnlyPubkey.d.ts +2 -0
- package/dist/esm/xOnlyPubkey.js +15 -0
- package/package.json +50 -26
- 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/parsePayGoAttestation.d.ts.map +0 -1
- package/dist/src/paygo/parsePayGoAttestation.js +0 -46
- package/dist/src/paygo/psbt/Errors.js +0 -44
- package/dist/src/paygo/psbt/payGoAddressProof.d.ts.map +0 -1
- package/dist/src/paygo/psbt/payGoAddressProof.js +0 -122
- 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}/paygo/attestation.d.ts +0 -0
- /package/dist/{src → cjs/src}/paygo/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/paygo/psbt/Errors.d.ts +0 -0
- /package/dist/{src → cjs/src}/paygo/psbt/index.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/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/testutil/toPlainObject.utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/testutil/trimMessagePrefix.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}/paygo/attestation.d.ts.map +0 -0
- /package/dist/{src → esm}/paygo/index.d.ts.map +0 -0
- /package/dist/{src → esm}/paygo/psbt/Errors.d.ts.map +0 -0
- /package/dist/{src → esm}/paygo/psbt/index.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}/testutil/index.d.ts.map +0 -0
- /package/dist/{src → esm}/testutil/trimMessagePrefix.d.ts.map +0 -0
- /package/dist/{src → esm}/xOnlyPubkey.d.ts.map +0 -0
|
@@ -1,87 +0,0 @@
|
|
|
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.parse = parse;
|
|
37
|
-
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
38
|
-
const VirtualSize_1 = require("../VirtualSize");
|
|
39
|
-
const findDescriptors_1 = require("./findDescriptors");
|
|
40
|
-
const assertSatisfiable_1 = require("./assertSatisfiable");
|
|
41
|
-
function sum(...values) {
|
|
42
|
-
return values.reduce((a, b) => a + b, BigInt(0));
|
|
43
|
-
}
|
|
44
|
-
function parse(psbt, descriptorMap, network) {
|
|
45
|
-
const inputs = psbt.data.inputs.map((input, inputIndex) => {
|
|
46
|
-
if (!input.witnessUtxo) {
|
|
47
|
-
throw new Error('invalid input: no witnessUtxo');
|
|
48
|
-
}
|
|
49
|
-
if (!input.witnessUtxo.value) {
|
|
50
|
-
throw new Error('invalid input: no value');
|
|
51
|
-
}
|
|
52
|
-
const scriptId = (0, findDescriptors_1.findDescriptorForInput)(input, descriptorMap);
|
|
53
|
-
if (!scriptId) {
|
|
54
|
-
throw new Error('invalid input: no descriptor found');
|
|
55
|
-
}
|
|
56
|
-
(0, assertSatisfiable_1.assertSatisfiable)(psbt, inputIndex, scriptId.descriptor);
|
|
57
|
-
return {
|
|
58
|
-
address: utxolib.address.fromOutputScript(input.witnessUtxo.script, network),
|
|
59
|
-
value: input.witnessUtxo.value,
|
|
60
|
-
scriptId,
|
|
61
|
-
};
|
|
62
|
-
});
|
|
63
|
-
const outputs = psbt.txOutputs.map((output, i) => {
|
|
64
|
-
if (output.value === undefined) {
|
|
65
|
-
throw new Error('invalid output: no value');
|
|
66
|
-
}
|
|
67
|
-
const scriptId = (0, findDescriptors_1.findDescriptorForOutput)(output.script, psbt.data.outputs[i], descriptorMap);
|
|
68
|
-
return {
|
|
69
|
-
address: output.address,
|
|
70
|
-
script: output.script,
|
|
71
|
-
value: output.value,
|
|
72
|
-
scriptId,
|
|
73
|
-
};
|
|
74
|
-
});
|
|
75
|
-
const inputAmount = sum(...inputs.map((input) => input.value));
|
|
76
|
-
const outputSum = sum(...outputs.map((output) => output.value));
|
|
77
|
-
const spendAmount = sum(...outputs.filter((output) => !output.scriptId).map((output) => output.value));
|
|
78
|
-
const minerFee = inputAmount - outputSum;
|
|
79
|
-
return {
|
|
80
|
-
inputs,
|
|
81
|
-
outputs,
|
|
82
|
-
spendAmount,
|
|
83
|
-
minerFee,
|
|
84
|
-
virtualSize: (0, VirtualSize_1.getVirtualSize)({ inputs: inputs.map((i) => i.scriptId.descriptor), outputs }),
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVzY3JpcHRvci9wc2J0L3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0NBLHNCQThDQztBQWpGRCw4REFBZ0Q7QUFHaEQsZ0RBQWdEO0FBRWhELHVEQUFvRjtBQUNwRiwyREFBd0Q7QUF5QnhELFNBQVMsR0FBRyxDQUFDLEdBQUcsTUFBZ0I7SUFDOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBZ0IsS0FBSyxDQUNuQixJQUFrQixFQUNsQixhQUE0QixFQUM1QixPQUF3QjtJQUV4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFlLEVBQUU7UUFDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBQSx3Q0FBc0IsRUFBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFBLHFDQUFpQixFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELE9BQU87WUFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDNUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSztZQUM5QixRQUFRO1NBQ1QsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFnQixFQUFFO1FBQzdELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUEseUNBQXVCLEVBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkcsTUFBTSxRQUFRLEdBQUcsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUN6QyxPQUFPO1FBQ0wsTUFBTTtRQUNOLE9BQU87UUFDUCxXQUFXO1FBQ1gsUUFBUTtRQUNSLFdBQVcsRUFBRSxJQUFBLDRCQUFjLEVBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztLQUMzRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vRGVzY3JpcHRvck1hcCc7XG5pbXBvcnQgeyBnZXRWaXJ0dWFsU2l6ZSB9IGZyb20gJy4uL1ZpcnR1YWxTaXplJztcblxuaW1wb3J0IHsgZmluZERlc2NyaXB0b3JGb3JJbnB1dCwgZmluZERlc2NyaXB0b3JGb3JPdXRwdXQgfSBmcm9tICcuL2ZpbmREZXNjcmlwdG9ycyc7XG5pbXBvcnQgeyBhc3NlcnRTYXRpc2ZpYWJsZSB9IGZyb20gJy4vYXNzZXJ0U2F0aXNmaWFibGUnO1xuXG5leHBvcnQgdHlwZSBTY3JpcHRJZCA9IHsgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjsgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCB9O1xuXG5leHBvcnQgdHlwZSBQYXJzZWRJbnB1dCA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogYmlnaW50O1xuICBzY3JpcHRJZDogU2NyaXB0SWQ7XG59O1xuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXQgPSB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHNjcmlwdDogQnVmZmVyO1xuICB2YWx1ZTogYmlnaW50O1xuICBzY3JpcHRJZD86IFNjcmlwdElkO1xufTtcblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uID0ge1xuICBpbnB1dHM6IFBhcnNlZElucHV0W107XG4gIG91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xuICBzcGVuZEFtb3VudDogYmlnaW50O1xuICBtaW5lckZlZTogYmlnaW50O1xuICB2aXJ0dWFsU2l6ZTogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gc3VtKC4uLnZhbHVlczogYmlnaW50W10pOiBiaWdpbnQge1xuICByZXR1cm4gdmFsdWVzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIEJpZ0ludCgwKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgcHNidDogdXR4b2xpYi5Qc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBEZXNjcmlwdG9yTWFwLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlucHV0cyA9IHBzYnQuZGF0YS5pbnB1dHMubWFwKChpbnB1dCwgaW5wdXRJbmRleCk6IFBhcnNlZElucHV0ID0+IHtcbiAgICBpZiAoIWlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgaW5wdXQ6IG5vIHdpdG5lc3NVdHhvJyk7XG4gICAgfVxuICAgIGlmICghaW5wdXQud2l0bmVzc1V0eG8udmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBpbnB1dDogbm8gdmFsdWUnKTtcbiAgICB9XG4gICAgY29uc3Qgc2NyaXB0SWQgPSBmaW5kRGVzY3JpcHRvckZvcklucHV0KGlucHV0LCBkZXNjcmlwdG9yTWFwKTtcbiAgICBpZiAoIXNjcmlwdElkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgaW5wdXQ6IG5vIGRlc2NyaXB0b3IgZm91bmQnKTtcbiAgICB9XG4gICAgYXNzZXJ0U2F0aXNmaWFibGUocHNidCwgaW5wdXRJbmRleCwgc2NyaXB0SWQuZGVzY3JpcHRvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3M6IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdCwgbmV0d29yayksXG4gICAgICB2YWx1ZTogaW5wdXQud2l0bmVzc1V0eG8udmFsdWUsXG4gICAgICBzY3JpcHRJZCxcbiAgICB9O1xuICB9KTtcbiAgY29uc3Qgb3V0cHV0cyA9IHBzYnQudHhPdXRwdXRzLm1hcCgob3V0cHV0LCBpKTogUGFyc2VkT3V0cHV0ID0+IHtcbiAgICBpZiAob3V0cHV0LnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBvdXRwdXQ6IG5vIHZhbHVlJyk7XG4gICAgfVxuICAgIGNvbnN0IHNjcmlwdElkID0gZmluZERlc2NyaXB0b3JGb3JPdXRwdXQob3V0cHV0LnNjcmlwdCwgcHNidC5kYXRhLm91dHB1dHNbaV0sIGRlc2NyaXB0b3JNYXApO1xuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyxcbiAgICAgIHNjcmlwdDogb3V0cHV0LnNjcmlwdCxcbiAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUsXG4gICAgICBzY3JpcHRJZCxcbiAgICB9O1xuICB9KTtcbiAgY29uc3QgaW5wdXRBbW91bnQgPSBzdW0oLi4uaW5wdXRzLm1hcCgoaW5wdXQpID0+IGlucHV0LnZhbHVlKSk7XG4gIGNvbnN0IG91dHB1dFN1bSA9IHN1bSguLi5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiBvdXRwdXQudmFsdWUpKTtcbiAgY29uc3Qgc3BlbmRBbW91bnQgPSBzdW0oLi4ub3V0cHV0cy5maWx0ZXIoKG91dHB1dCkgPT4gIW91dHB1dC5zY3JpcHRJZCkubWFwKChvdXRwdXQpID0+IG91dHB1dC52YWx1ZSkpO1xuICBjb25zdCBtaW5lckZlZSA9IGlucHV0QW1vdW50IC0gb3V0cHV0U3VtO1xuICByZXR1cm4ge1xuICAgIGlucHV0cyxcbiAgICBvdXRwdXRzLFxuICAgIHNwZW5kQW1vdW50LFxuICAgIG1pbmVyRmVlLFxuICAgIHZpcnR1YWxTaXplOiBnZXRWaXJ0dWFsU2l6ZSh7IGlucHV0czogaW5wdXRzLm1hcCgoaSkgPT4gaS5zY3JpcHRJZC5kZXNjcmlwdG9yKSwgb3V0cHV0cyB9KSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
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,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getNewSignatureCountForInput = getNewSignatureCountForInput;
|
|
7
|
-
exports.getNewSignatureCount = getNewSignatureCount;
|
|
8
|
-
exports.signWithKey = signWithKey;
|
|
9
|
-
const assert_1 = __importDefault(require("assert"));
|
|
10
|
-
/**
|
|
11
|
-
* @param signResult
|
|
12
|
-
* @return the number of new signatures created by the signResult for a single input
|
|
13
|
-
*/
|
|
14
|
-
function getNewSignatureCountForInput(signResult) {
|
|
15
|
-
if ('Schnorr' in signResult) {
|
|
16
|
-
return signResult.Schnorr.length;
|
|
17
|
-
}
|
|
18
|
-
if ('Ecdsa' in signResult) {
|
|
19
|
-
return signResult.Ecdsa.length;
|
|
20
|
-
}
|
|
21
|
-
throw new Error(`Unknown signature type ${Object.keys(signResult).join(', ')}`);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* @param signResult
|
|
25
|
-
* @return the number of new signatures created by the signResult
|
|
26
|
-
*/
|
|
27
|
-
function getNewSignatureCount(signResult) {
|
|
28
|
-
return Object.values(signResult).reduce((sum, signatures) => sum + getNewSignatureCountForInput(signatures), 0);
|
|
29
|
-
}
|
|
30
|
-
/** Convenience function to sign a PSBT with a key */
|
|
31
|
-
function signWithKey(psbt, key) {
|
|
32
|
-
// we need to do casting here because the type definitions in wasm-miniscript are a little bit buggy
|
|
33
|
-
if (Buffer.isBuffer(key)) {
|
|
34
|
-
return psbt.signWithPrv(key);
|
|
35
|
-
}
|
|
36
|
-
if ('toBase58' in key) {
|
|
37
|
-
return psbt.signWithXprv(key.toBase58());
|
|
38
|
-
}
|
|
39
|
-
(0, assert_1.default)(key.privateKey);
|
|
40
|
-
return psbt.signWithPrv(key.privateKey);
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3BzYnQvc2lnbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLG9FQVFDO0FBTUQsb0RBRUM7QUFLRCxrQ0FVQztBQTlDRCxvREFBNEI7QUFXNUI7OztHQUdHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQUMsVUFBK0I7SUFDMUUsSUFBSSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUIsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7UUFDMUIsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxVQUEwQjtJQUM3RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xILENBQUM7QUFJRCxxREFBcUQ7QUFDckQsU0FBZ0IsV0FBVyxDQUFDLElBQWMsRUFBRSxHQUFRO0lBQ2xELG9HQUFvRztJQUNwRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUE4QixDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFVBQVUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUE4QixDQUFDO0lBQ3hFLENBQUM7SUFDRCxJQUFBLGdCQUFNLEVBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUE4QixDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgUHNidCBhcyBXYXNtUHNidCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG4vKiogVGhlc2UgY2FuIGJlIHJlcGxhY2VkIHdoZW4gQGJpdGdvL3dhc20tbWluaXNjcmlwdCBpcyB1cGRhdGVkICovXG5leHBvcnQgdHlwZSBTaWduUHNidElucHV0UmVzdWx0ID0geyBTY2hub3JyOiBzdHJpbmdbXSB9IHwgeyBFY2RzYTogc3RyaW5nW10gfTtcbmV4cG9ydCB0eXBlIFNpZ25Qc2J0UmVzdWx0ID0ge1xuICBbaW5wdXRJbmRleDogbnVtYmVyXTogU2lnblBzYnRJbnB1dFJlc3VsdDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHNpZ25SZXN1bHRcbiAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBuZXcgc2lnbmF0dXJlcyBjcmVhdGVkIGJ5IHRoZSBzaWduUmVzdWx0IGZvciBhIHNpbmdsZSBpbnB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3U2lnbmF0dXJlQ291bnRGb3JJbnB1dChzaWduUmVzdWx0OiBTaWduUHNidElucHV0UmVzdWx0KTogbnVtYmVyIHtcbiAgaWYgKCdTY2hub3JyJyBpbiBzaWduUmVzdWx0KSB7XG4gICAgcmV0dXJuIHNpZ25SZXN1bHQuU2Nobm9yci5sZW5ndGg7XG4gIH1cbiAgaWYgKCdFY2RzYScgaW4gc2lnblJlc3VsdCkge1xuICAgIHJldHVybiBzaWduUmVzdWx0LkVjZHNhLmxlbmd0aDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc2lnbmF0dXJlIHR5cGUgJHtPYmplY3Qua2V5cyhzaWduUmVzdWx0KS5qb2luKCcsICcpfWApO1xufVxuXG4vKipcbiAqIEBwYXJhbSBzaWduUmVzdWx0XG4gKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgbmV3IHNpZ25hdHVyZXMgY3JlYXRlZCBieSB0aGUgc2lnblJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3U2lnbmF0dXJlQ291bnQoc2lnblJlc3VsdDogU2lnblBzYnRSZXN1bHQpOiBudW1iZXIge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhzaWduUmVzdWx0KS5yZWR1Y2UoKHN1bSwgc2lnbmF0dXJlcykgPT4gc3VtICsgZ2V0TmV3U2lnbmF0dXJlQ291bnRGb3JJbnB1dChzaWduYXR1cmVzKSwgMCk7XG59XG5cbnR5cGUgS2V5ID0gQnVmZmVyIHwgdXR4b2xpYi5CSVAzMkludGVyZmFjZSB8IHV0eG9saWIuRUNQYWlySW50ZXJmYWNlO1xuXG4vKiogQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gc2lnbiBhIFBTQlQgd2l0aCBhIGtleSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25XaXRoS2V5KHBzYnQ6IFdhc21Qc2J0LCBrZXk6IEtleSk6IFNpZ25Qc2J0UmVzdWx0IHtcbiAgLy8gd2UgbmVlZCB0byBkbyBjYXN0aW5nIGhlcmUgYmVjYXVzZSB0aGUgdHlwZSBkZWZpbml0aW9ucyBpbiB3YXNtLW1pbmlzY3JpcHQgYXJlIGEgbGl0dGxlIGJpdCBidWdneVxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKGtleSkpIHtcbiAgICByZXR1cm4gcHNidC5zaWduV2l0aFBydihrZXkpIGFzIHVua25vd24gYXMgU2lnblBzYnRSZXN1bHQ7XG4gIH1cbiAgaWYgKCd0b0Jhc2U1OCcgaW4ga2V5KSB7XG4gICAgcmV0dXJuIHBzYnQuc2lnbldpdGhYcHJ2KGtleS50b0Jhc2U1OCgpKSBhcyB1bmtub3duIGFzIFNpZ25Qc2J0UmVzdWx0O1xuICB9XG4gIGFzc2VydChrZXkucHJpdmF0ZUtleSk7XG4gIHJldHVybiBwc2J0LnNpZ25XaXRoUHJ2KGtleS5wcml2YXRlS2V5KSBhcyB1bmtub3duIGFzIFNpZ25Qc2J0UmVzdWx0O1xufVxuIl19
|
|
@@ -1,76 +0,0 @@
|
|
|
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.toWrappedPsbt = toWrappedPsbt;
|
|
37
|
-
exports.toUtxoPsbt = toUtxoPsbt;
|
|
38
|
-
exports.finalizePsbt = finalizePsbt;
|
|
39
|
-
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
40
|
-
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
41
|
-
function toWrappedPsbt(psbt) {
|
|
42
|
-
if (psbt instanceof utxolib.bitgo.UtxoPsbt || psbt instanceof utxolib.Psbt) {
|
|
43
|
-
psbt = psbt.toBuffer();
|
|
44
|
-
}
|
|
45
|
-
if (psbt instanceof Buffer || psbt instanceof Uint8Array) {
|
|
46
|
-
return wasm_miniscript_1.Psbt.deserialize(psbt);
|
|
47
|
-
}
|
|
48
|
-
throw new Error('Invalid input');
|
|
49
|
-
}
|
|
50
|
-
function toUtxoPsbt(psbt, network) {
|
|
51
|
-
if (psbt instanceof wasm_miniscript_1.Psbt) {
|
|
52
|
-
psbt = psbt.serialize();
|
|
53
|
-
}
|
|
54
|
-
if (psbt instanceof Buffer || psbt instanceof Uint8Array) {
|
|
55
|
-
return utxolib.bitgo.UtxoPsbt.fromBuffer(Buffer.from(psbt), { network });
|
|
56
|
-
}
|
|
57
|
-
throw new Error('Invalid input');
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Use `wasm-miniscript` to finalize a PSBT.
|
|
61
|
-
* Miniscript based finalization is more powerful than bitcoinjs-lib's / utxo-lib's finalization
|
|
62
|
-
* and can finalize more complex scripts (e.g. miniscript descriptors).
|
|
63
|
-
* @param psbt
|
|
64
|
-
*/
|
|
65
|
-
function finalizePsbt(psbt) {
|
|
66
|
-
if (utxolib.getMainnet(psbt.network) !== utxolib.networks.bitcoin) {
|
|
67
|
-
throw new Error('only bitcoin and testnet are supported');
|
|
68
|
-
}
|
|
69
|
-
const wrappedPsbt = toWrappedPsbt(psbt);
|
|
70
|
-
wrappedPsbt.finalize();
|
|
71
|
-
const unwrappedPsbt = toUtxoPsbt(wrappedPsbt, psbt.network);
|
|
72
|
-
for (let i = 0; i < psbt.data.inputs.length; i++) {
|
|
73
|
-
psbt.data.inputs[i] = unwrappedPsbt.data.inputs[i];
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3BzYnQvd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQVFDO0FBRUQsZ0NBUUM7QUFRRCxvQ0FVQztBQXZDRCw0REFBMEQ7QUFDMUQsOERBQWdEO0FBRWhELFNBQWdCLGFBQWEsQ0FBQyxJQUFpRTtJQUM3RixJQUFJLElBQUksWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLFlBQVksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNFLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksSUFBSSxZQUFZLE1BQU0sSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFLENBQUM7UUFDekQsT0FBTyxzQkFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQW9DLEVBQUUsT0FBd0I7SUFDdkYsSUFBSSxJQUFJLFlBQVksc0JBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksSUFBSSxZQUFZLE1BQU0sSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFLENBQUM7UUFDekQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLElBQTRCO0lBQ3ZELElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkIsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHNidCBhcyBXYXNtUHNidCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1dyYXBwZWRQc2J0KHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCB1dHhvbGliLlBzYnQgfCBCdWZmZXIgfCBVaW50OEFycmF5KTogV2FzbVBzYnQge1xuICBpZiAocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfHwgcHNidCBpbnN0YW5jZW9mIHV0eG9saWIuUHNidCkge1xuICAgIHBzYnQgPSBwc2J0LnRvQnVmZmVyKCk7XG4gIH1cbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiBCdWZmZXIgfHwgcHNidCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICByZXR1cm4gV2FzbVBzYnQuZGVzZXJpYWxpemUocHNidCk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0eG9Qc2J0KHBzYnQ6IFdhc21Qc2J0IHwgQnVmZmVyIHwgVWludDhBcnJheSwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGlmIChwc2J0IGluc3RhbmNlb2YgV2FzbVBzYnQpIHtcbiAgICBwc2J0ID0gcHNidC5zZXJpYWxpemUoKTtcbiAgfVxuICBpZiAocHNidCBpbnN0YW5jZW9mIEJ1ZmZlciB8fCBwc2J0IGluc3RhbmNlb2YgVWludDhBcnJheSkge1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LmZyb21CdWZmZXIoQnVmZmVyLmZyb20ocHNidCksIHsgbmV0d29yayB9KTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaW5wdXQnKTtcbn1cblxuLyoqXG4gKiBVc2UgYHdhc20tbWluaXNjcmlwdGAgdG8gZmluYWxpemUgYSBQU0JULlxuICogTWluaXNjcmlwdCBiYXNlZCBmaW5hbGl6YXRpb24gaXMgbW9yZSBwb3dlcmZ1bCB0aGFuIGJpdGNvaW5qcy1saWIncyAvIHV0eG8tbGliJ3MgZmluYWxpemF0aW9uXG4gKiBhbmQgY2FuIGZpbmFsaXplIG1vcmUgY29tcGxleCBzY3JpcHRzIChlLmcuIG1pbmlzY3JpcHQgZGVzY3JpcHRvcnMpLlxuICogQHBhcmFtIHBzYnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmFsaXplUHNidChwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KTogdm9pZCB7XG4gIGlmICh1dHhvbGliLmdldE1haW5uZXQocHNidC5uZXR3b3JrKSAhPT0gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdvbmx5IGJpdGNvaW4gYW5kIHRlc3RuZXQgYXJlIHN1cHBvcnRlZCcpO1xuICB9XG4gIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidChwc2J0KTtcbiAgd3JhcHBlZFBzYnQuZmluYWxpemUoKTtcbiAgY29uc3QgdW53cmFwcGVkUHNidCA9IHRvVXR4b1BzYnQod3JhcHBlZFBzYnQsIHBzYnQubmV0d29yayk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcHNidC5kYXRhLmlucHV0cy5sZW5ndGg7IGkrKykge1xuICAgIHBzYnQuZGF0YS5pbnB1dHNbaV0gPSB1bndyYXBwZWRQc2J0LmRhdGEuaW5wdXRzW2ldO1xuICB9XG59XG4iXX0=
|
|
@@ -1,134 +0,0 @@
|
|
|
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.getDustThresholdSat = getDustThresholdSat;
|
|
37
|
-
exports.getDustThresholdSatForOutputScript = getDustThresholdSatForOutputScript;
|
|
38
|
-
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
39
|
-
/**
|
|
40
|
-
* Checks if the output script is a witness script or not
|
|
41
|
-
* @param script
|
|
42
|
-
* @returns true if the script is a witness script
|
|
43
|
-
*/
|
|
44
|
-
function isWitnessOutputScript(script) {
|
|
45
|
-
/**
|
|
46
|
-
* Source: https://github.com/bitcoin/bitcoin/blob/v28.1/src/script/script.cpp#L241-L257
|
|
47
|
-
* A witness program is any valid CScript that consists of a 1-byte push opcode
|
|
48
|
-
* followed by a data push between 2 and 40 bytes.
|
|
49
|
-
*/
|
|
50
|
-
if (script.length < 4 || script.length > 42) {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
if (script[0] !== utxolib.opcodes.OP_0 && (script[0] < utxolib.opcodes.OP_1 || script[0] > utxolib.opcodes.OP_16)) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
return script[1] + 2 === script.length;
|
|
57
|
-
}
|
|
58
|
-
function getDustRelayLimit(network) {
|
|
59
|
-
network = utxolib.getMainnet(network);
|
|
60
|
-
switch (network) {
|
|
61
|
-
case utxolib.networks.bitcoin:
|
|
62
|
-
case utxolib.networks.bitcoingold:
|
|
63
|
-
case utxolib.networks.dash:
|
|
64
|
-
// btc: https://github.com/bitcoin/bitcoin/blob/v28.0/src/policy/policy.h#L50-L55
|
|
65
|
-
// btg: https://github.com/BTCGPU/BTCGPU/blob/v0.17.3/src/policy/policy.h#L48
|
|
66
|
-
// dash: https://github.com/dashpay/dash/blob/v22.0.0-beta.1/src/policy/policy.h#L41-L46
|
|
67
|
-
return { feeRateSatKB: 3000 };
|
|
68
|
-
case utxolib.networks.bitcoincash:
|
|
69
|
-
// https://github.com/bitcoin-cash-node/bitcoin-cash-node/blob/v27.1.0/src/policy/policy.h#L76-L83
|
|
70
|
-
// I actually haven't looked at BSV and am depressed that I still need to handle the case here
|
|
71
|
-
return { feeRateSatKB: 1000 };
|
|
72
|
-
case utxolib.networks.dogecoin:
|
|
73
|
-
// https://github.com/dogecoin/dogecoin/blob/v1.14.8/src/policy/policy.h#L65-L81
|
|
74
|
-
// (COIN / 100) / 10;
|
|
75
|
-
return { satAmount: 1000000 };
|
|
76
|
-
case utxolib.networks.litecoin:
|
|
77
|
-
// https://github.com/litecoin-project/litecoin/blob/master/src/policy/policy.h#L47-L52
|
|
78
|
-
return { feeRateSatKB: 30000 };
|
|
79
|
-
case utxolib.networks.zcash:
|
|
80
|
-
// https://github.com/zcash/zcash/blob/master/src/primitives/transaction.h#L396-L399
|
|
81
|
-
// https://github.com/zcash/zcash/blob/v6.0.0/src/policy/policy.h#L43-L89 (I don't quite get it)
|
|
82
|
-
return { satAmount: 300 };
|
|
83
|
-
case utxolib.networks.bitcoinsv:
|
|
84
|
-
throw new Error('deprecated coin');
|
|
85
|
-
default:
|
|
86
|
-
throw new Error('unsupported network');
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
function getSpendSize(network, outputSize, isWitness) {
|
|
90
|
-
network = utxolib.getMainnet(network);
|
|
91
|
-
switch (network) {
|
|
92
|
-
case utxolib.networks.bitcoin:
|
|
93
|
-
case utxolib.networks.bitcoincash:
|
|
94
|
-
case utxolib.networks.bitcoingold:
|
|
95
|
-
case utxolib.networks.litecoin:
|
|
96
|
-
/*
|
|
97
|
-
btc: https://github.com/bitcoin/bitcoin/blob/v28.0/src/policy/policy.cpp#L26-L68
|
|
98
|
-
bch: https://github.com/bitcoin-cash-node/bitcoin-cash-node/blob/v27.1.0/src/policy/policy.cpp#L18-L36 (btc-ish)
|
|
99
|
-
btg: https://github.com/BTCGPU/BTCGPU/blob/v0.17.3/src/policy/policy.cpp#L18-L50 (btc-ish)
|
|
100
|
-
ltc: https://github.com/litecoin-project/litecoin/blob/v0.21.4/src/policy/policy.cpp#L15-L47 (btc-ish)
|
|
101
|
-
|
|
102
|
-
The fixed component here is 69.75 for isWitness=true and 150 for isWitness=false.
|
|
103
|
-
*/
|
|
104
|
-
return outputSize + 32 + 4 + 1 + 107 / (isWitness ? 4 : 1) + 4;
|
|
105
|
-
case utxolib.networks.dash:
|
|
106
|
-
// dash: https://github.com/dashpay/dash/blob/v21.1.1/src/policy/policy.cpp#L14-L30 (btc-ish)
|
|
107
|
-
// how did they end up with 148? I don't know
|
|
108
|
-
return outputSize + 148;
|
|
109
|
-
case utxolib.networks.dogecoin:
|
|
110
|
-
case utxolib.networks.zcash:
|
|
111
|
-
// doge: https://github.com/dogecoin/dogecoin/blob/v1.14.8/src/policy/policy.h#L65-L81 (hardcoded)
|
|
112
|
-
// zec: https://github.com/zcash/zcash/blob/v6.0.0/src/policy/policy.h#L43-L89 (some weird other thing, doge-ish)
|
|
113
|
-
throw new Error('dust limit is size-independent');
|
|
114
|
-
case utxolib.networks.bitcoinsv:
|
|
115
|
-
throw new Error('deprecated coin');
|
|
116
|
-
default:
|
|
117
|
-
throw new Error('unsupported network');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
function getDustThresholdSat(network, outputSize, isWitness) {
|
|
121
|
-
const dustLimit = getDustRelayLimit(network);
|
|
122
|
-
if ('satAmount' in dustLimit) {
|
|
123
|
-
return dustLimit.satAmount;
|
|
124
|
-
}
|
|
125
|
-
if ('feeRateSatKB' in dustLimit) {
|
|
126
|
-
const spendSize = getSpendSize(network, outputSize, isWitness);
|
|
127
|
-
return Math.ceil((dustLimit.feeRateSatKB * spendSize) / 1000);
|
|
128
|
-
}
|
|
129
|
-
throw new Error('unexpected dustLimit');
|
|
130
|
-
}
|
|
131
|
-
function getDustThresholdSatForOutputScript(network, script) {
|
|
132
|
-
return getDustThresholdSat(network, script.length, isWitnessOutputScript(script));
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVzdFRocmVzaG9sZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kdXN0VGhyZXNob2xkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOElBLGtEQVVDO0FBRUQsZ0ZBRUM7QUE1SkQsOERBQWdEO0FBRWhEOzs7O0dBSUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLE1BQWM7SUFDM0M7Ozs7T0FJRztJQUNILElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDO0FBQ3pDLENBQUM7QUEwREQsU0FBUyxpQkFBaUIsQ0FBQyxPQUF3QjtJQUNqRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDOUIsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUNsQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUN4QixrRkFBa0Y7WUFDbEYsOEVBQThFO1lBQzlFLHdGQUF3RjtZQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2hDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQy9CLGtHQUFrRztZQUNsRyw4RkFBOEY7WUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUM1QixnRkFBZ0Y7WUFDaEYscUJBQXFCO1lBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBUyxFQUFFLENBQUM7UUFDbEMsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVE7WUFDNUIsd0ZBQXdGO1lBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBTSxFQUFFLENBQUM7UUFDbEMsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDekIsb0ZBQW9GO1lBQ3BGLGdHQUFnRztZQUNoRyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzVCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE9BQXdCLEVBQUUsVUFBa0IsRUFBRSxTQUFrQjtJQUNwRixPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDOUIsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUNsQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ2xDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQzVCOzs7Ozs7O2VBT0c7WUFDSCxPQUFPLFVBQVUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ3hCLDZGQUE2RjtZQUM3Riw2Q0FBNkM7WUFDN0MsT0FBTyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQzFCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDL0IsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDekIsa0dBQWtHO1lBQ2xHLGtIQUFrSDtZQUNsSCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsT0FBd0IsRUFBRSxVQUFrQixFQUFFLFNBQWtCO0lBQ2xHLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLElBQUksV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxjQUFjLElBQUksU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFnQixrQ0FBa0MsQ0FBQyxPQUF3QixFQUFFLE1BQWM7SUFDekYsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIG91dHB1dCBzY3JpcHQgaXMgYSB3aXRuZXNzIHNjcmlwdCBvciBub3RcbiAqIEBwYXJhbSBzY3JpcHRcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHNjcmlwdCBpcyBhIHdpdG5lc3Mgc2NyaXB0XG4gKi9cbmZ1bmN0aW9uIGlzV2l0bmVzc091dHB1dFNjcmlwdChzY3JpcHQ6IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICAvKipcbiAgICogU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjEvc3JjL3NjcmlwdC9zY3JpcHQuY3BwI0wyNDEtTDI1N1xuICAgKiBBIHdpdG5lc3MgcHJvZ3JhbSBpcyBhbnkgdmFsaWQgQ1NjcmlwdCB0aGF0IGNvbnNpc3RzIG9mIGEgMS1ieXRlIHB1c2ggb3Bjb2RlXG4gICAqIGZvbGxvd2VkIGJ5IGEgZGF0YSBwdXNoIGJldHdlZW4gMiBhbmQgNDAgYnl0ZXMuXG4gICAqL1xuICBpZiAoc2NyaXB0Lmxlbmd0aCA8IDQgfHwgc2NyaXB0Lmxlbmd0aCA+IDQyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChzY3JpcHRbMF0gIT09IHV0eG9saWIub3Bjb2Rlcy5PUF8wICYmIChzY3JpcHRbMF0gPCB1dHhvbGliLm9wY29kZXMuT1BfMSB8fCBzY3JpcHRbMF0gPiB1dHhvbGliLm9wY29kZXMuT1BfMTYpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBzY3JpcHRbMV0gKyAyID09PSBzY3JpcHQubGVuZ3RoO1xufVxuXG4vKlxuXG5UaGUgZHVzdCB0aHJlc2hvbGQgZm9yIG1vc3QgVVRYTyBjb2lucyBpcyBkZXBlbmRlbnQgb24gbXVsdGlwbGUgZmFjdG9yczpcblxuKDEpIHNwZW5kYWJpbGl0eSBvZiB0aGUgb3V0cHV0IChPUF9SRVRVUk5zIGFyZSBhbGxvd2VkIHRvIGJlIDAgc2l6ZWQpXG4oMikgd2hldGhlciBpdCBpcyBhIHdpdG5lc3Mgb3Igbm9uLXdpdG5lc3Mgb3V0cHV0XG4oMykgYSBwYXJ0aWN1bGFyIGZlZSByYXRlIChHZXREaXNjYXJkUmF0ZSgpKVxuXG5JIHdpbGwgZG8gdGhlIGFuYWx5c2lzIG1vc3RseSBmb3IgYml0Y29pbiBoZXJlIGFuZCB0aGVuIGdlbmVyYWxpemUuXG5cbk9uIHRoZSBpbmRleGVyIHdlIHVzZSBgc2VuZHJhd3RyYW5zYWN0aW9uYCwgd2hpY2ggY2FsbHMgYElzU3RhbmRhcmRUeGAgbGlrZSB0aGlzXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMva2VybmVsL21lbXBvb2xfb3B0aW9ucy5oI0w0N1xuXG5gYGBcbmlmIChcbiAgbV9wb29sLm1fb3B0cy5yZXF1aXJlX3N0YW5kYXJkICYmXG4gICAhSXNTdGFuZGFyZFR4KHR4LFxuICAgbV9wb29sLm1fb3B0cy5tYXhfZGF0YWNhcnJpZXJfYnl0ZXMsXG4gICBtX3Bvb2wubV9vcHRzLnBlcm1pdF9iYXJlX211bHRpc2lnLFxuICAgbV9wb29sLm1fb3B0cy5kdXN0X3JlbGF5X2ZlZXJhdGUsIHJlYXNvbikpXG5gYGBcblxuVGhlIGBkdXN0X3JlbGF5X2ZlZXJhdGVgIGluIHRoaXMgY29udGV4dCBpcyBhIGhhcmRjb2RlZCBjb25zdGFudDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMvcG9saWN5L3BvbGljeS5oI0w1MC1MNTVcblxuKHRoYXQgY2FuIGFjdHVhbGx5IGJlIG92ZXJyaWRkZW4gd2l0aCBhIGhpZGRlbiBjb21tYW5kXG5saW5lIHBhcmFtZXRlcjogaHR0cHM6Ly9iaXRjb2luLnN0YWNrZXhjaGFuZ2UuY29tL2EvNDEwODIvMTM3NjAxKVxuXG5UaGVyZSB3ZSBjYWxsIGBJc0R1c3RgXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi92MjguMC9zcmMvcG9saWN5L3BvbGljeS5jcHAjTDE0NC1MMTQ2XG5cbmBgYFxuaWYgKElzRHVzdCh0eG91dCwgZHVzdF9yZWxheV9mZWUpKSB7XG4gICAgcmVhc29uID0gXCJkdXN0XCI7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYGBgXG5cbldoaWNoIGNhbGxzIGBHZXREdXN0VGhyZXNob2xkYCxcblxuaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9ibG9iL3YyOC4wL3NyYy9wb2xpY3kvcG9saWN5LmNwcCNMNjdcblxuVGhlIGltcGxlbWVudGF0aW9uIG9mIGBHZXREdXN0VGhyZXNob2xkYCBjb21wdXRlcyB0aGUgbWluaW1hbCB0cmFuc2FjdGlvbiBzaXplIHRoYXQgY2FuIHNwZW5kIHRoZSBvdXRwdXQsIGFuZCBjb21wdXRlc1xuYSBtaW5pbXVtIGZlZSBmb3IgdGhhdCB0cmFuc2FjdGlvbiBzaXplIGJhc2VkIG9uIHRoZSBgZHVzdF9yZWxheV9mZWVgIChGZWVSYXRlKSBwYXJhbWV0ZXIuXG5cblRoZSBkaWZmZXJlbnQgdXR4byBpbXBsZW1lbnRhdGlvbnMgZGlmZmVyIGluIHRoZXNlIHdheXM6XG5cbi0gc29tZSBoYXZlIGEgZml4ZWQsIHNhdG9zaGkgYW1vdW50IGR1c3QgbGltaXQgKGRvZ2UsIHplYylcbi0gc29tZSBoYXZlIGEgZGlmZmVyZW50IGR1c3RfcmVsYXlfZmVlXG5cbiovXG5cbnR5cGUgRHVzdExpbWl0ID0geyBmZWVSYXRlU2F0S0I6IG51bWJlciB9IHwgeyBzYXRBbW91bnQ6IG51bWJlciB9O1xuXG5mdW5jdGlvbiBnZXREdXN0UmVsYXlMaW1pdChuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBEdXN0TGltaXQge1xuICBuZXR3b3JrID0gdXR4b2xpYi5nZXRNYWlubmV0KG5ldHdvcmspO1xuICBzd2l0Y2ggKG5ldHdvcmspIHtcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmRhc2g6XG4gICAgICAvLyBidGM6ICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjAvc3JjL3BvbGljeS9wb2xpY3kuaCNMNTAtTDU1XG4gICAgICAvLyBidGc6ICBodHRwczovL2dpdGh1Yi5jb20vQlRDR1BVL0JUQ0dQVS9ibG9iL3YwLjE3LjMvc3JjL3BvbGljeS9wb2xpY3kuaCNMNDhcbiAgICAgIC8vIGRhc2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXNocGF5L2Rhc2gvYmxvYi92MjIuMC4wLWJldGEuMS9zcmMvcG9saWN5L3BvbGljeS5oI0w0MS1MNDZcbiAgICAgIHJldHVybiB7IGZlZVJhdGVTYXRLQjogMzAwMCB9O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luLWNhc2gtbm9kZS9iaXRjb2luLWNhc2gtbm9kZS9ibG9iL3YyNy4xLjAvc3JjL3BvbGljeS9wb2xpY3kuaCNMNzYtTDgzXG4gICAgICAvLyBJIGFjdHVhbGx5IGhhdmVuJ3QgbG9va2VkIGF0IEJTViBhbmQgYW0gZGVwcmVzc2VkIHRoYXQgSSBzdGlsbCBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSBoZXJlXG4gICAgICByZXR1cm4geyBmZWVSYXRlU2F0S0I6IDEwMDAgfTtcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuZG9nZWNvaW46XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZG9nZWNvaW4vZG9nZWNvaW4vYmxvYi92MS4xNC44L3NyYy9wb2xpY3kvcG9saWN5LmgjTDY1LUw4MVxuICAgICAgLy8gKENPSU4gLyAxMDApIC8gMTA7XG4gICAgICByZXR1cm4geyBzYXRBbW91bnQ6IDFfMDAwXzAwMCB9O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIC8vICBodHRwczovL2dpdGh1Yi5jb20vbGl0ZWNvaW4tcHJvamVjdC9saXRlY29pbi9ibG9iL21hc3Rlci9zcmMvcG9saWN5L3BvbGljeS5oI0w0Ny1MNTJcbiAgICAgIHJldHVybiB7IGZlZVJhdGVTYXRLQjogMzBfMDAwIH07XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLnpjYXNoOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvbWFzdGVyL3NyYy9wcmltaXRpdmVzL3RyYW5zYWN0aW9uLmgjTDM5Ni1MMzk5XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemNhc2gvemNhc2gvYmxvYi92Ni4wLjAvc3JjL3BvbGljeS9wb2xpY3kuaCNMNDMtTDg5IChJIGRvbid0IHF1aXRlIGdldCBpdClcbiAgICAgIHJldHVybiB7IHNhdEFtb3VudDogMzAwIH07XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICAgIHRocm93IG5ldyBFcnJvcignZGVwcmVjYXRlZCBjb2luJyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNwZW5kU2l6ZShuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssIG91dHB1dFNpemU6IG51bWJlciwgaXNXaXRuZXNzOiBib29sZWFuKTogbnVtYmVyIHtcbiAgbmV0d29yayA9IHV0eG9saWIuZ2V0TWFpbm5ldChuZXR3b3JrKTtcbiAgc3dpdGNoIChuZXR3b3JrKSB7XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MubGl0ZWNvaW46XG4gICAgICAvKlxuICAgICAgICBidGM6ICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXRjb2luL2Jsb2IvdjI4LjAvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wyNi1MNjhcbiAgICAgICAgYmNoOiAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4tY2FzaC1ub2RlL2JpdGNvaW4tY2FzaC1ub2RlL2Jsb2IvdjI3LjEuMC9zcmMvcG9saWN5L3BvbGljeS5jcHAjTDE4LUwzNiAoYnRjLWlzaClcbiAgICAgICAgYnRnOiAgaHR0cHM6Ly9naXRodWIuY29tL0JUQ0dQVS9CVENHUFUvYmxvYi92MC4xNy4zL3NyYy9wb2xpY3kvcG9saWN5LmNwcCNMMTgtTDUwIChidGMtaXNoKVxuICAgICAgICBsdGM6ICBodHRwczovL2dpdGh1Yi5jb20vbGl0ZWNvaW4tcHJvamVjdC9saXRlY29pbi9ibG9iL3YwLjIxLjQvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wxNS1MNDcgKGJ0Yy1pc2gpXG5cbiAgICAgICAgVGhlIGZpeGVkIGNvbXBvbmVudCBoZXJlIGlzIDY5Ljc1IGZvciBpc1dpdG5lc3M9dHJ1ZSBhbmQgMTUwIGZvciBpc1dpdG5lc3M9ZmFsc2UuXG4gICAgICAgKi9cbiAgICAgIHJldHVybiBvdXRwdXRTaXplICsgMzIgKyA0ICsgMSArIDEwNyAvIChpc1dpdG5lc3MgPyA0IDogMSkgKyA0O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5kYXNoOlxuICAgICAgLy8gZGFzaDogaHR0cHM6Ly9naXRodWIuY29tL2Rhc2hwYXkvZGFzaC9ibG9iL3YyMS4xLjEvc3JjL3BvbGljeS9wb2xpY3kuY3BwI0wxNC1MMzAgKGJ0Yy1pc2gpXG4gICAgICAvLyBob3cgZGlkIHRoZXkgZW5kIHVwIHdpdGggMTQ4PyBJIGRvbid0IGtub3dcbiAgICAgIHJldHVybiBvdXRwdXRTaXplICsgMTQ4O1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuemNhc2g6XG4gICAgICAvLyBkb2dlOiBodHRwczovL2dpdGh1Yi5jb20vZG9nZWNvaW4vZG9nZWNvaW4vYmxvYi92MS4xNC44L3NyYy9wb2xpY3kvcG9saWN5LmgjTDY1LUw4MSAoaGFyZGNvZGVkKVxuICAgICAgLy8gemVjOiAgaHR0cHM6Ly9naXRodWIuY29tL3pjYXNoL3pjYXNoL2Jsb2IvdjYuMC4wL3NyYy9wb2xpY3kvcG9saWN5LmgjTDQzLUw4OSAoc29tZSB3ZWlyZCBvdGhlciB0aGluZywgZG9nZS1pc2gpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2R1c3QgbGltaXQgaXMgc2l6ZS1pbmRlcGVuZGVudCcpO1xuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlcHJlY2F0ZWQgY29pbicpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIG5ldHdvcmsnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RHVzdFRocmVzaG9sZFNhdChuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssIG91dHB1dFNpemU6IG51bWJlciwgaXNXaXRuZXNzOiBib29sZWFuKTogbnVtYmVyIHtcbiAgY29uc3QgZHVzdExpbWl0ID0gZ2V0RHVzdFJlbGF5TGltaXQobmV0d29yayk7XG4gIGlmICgnc2F0QW1vdW50JyBpbiBkdXN0TGltaXQpIHtcbiAgICByZXR1cm4gZHVzdExpbWl0LnNhdEFtb3VudDtcbiAgfVxuICBpZiAoJ2ZlZVJhdGVTYXRLQicgaW4gZHVzdExpbWl0KSB7XG4gICAgY29uc3Qgc3BlbmRTaXplID0gZ2V0U3BlbmRTaXplKG5ldHdvcmssIG91dHB1dFNpemUsIGlzV2l0bmVzcyk7XG4gICAgcmV0dXJuIE1hdGguY2VpbCgoZHVzdExpbWl0LmZlZVJhdGVTYXRLQiAqIHNwZW5kU2l6ZSkgLyAxMDAwKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgZHVzdExpbWl0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREdXN0VGhyZXNob2xkU2F0Rm9yT3V0cHV0U2NyaXB0KG5ldHdvcms6IHV0eG9saWIuTmV0d29yaywgc2NyaXB0OiBCdWZmZXIpOiBudW1iZXIge1xuICByZXR1cm4gZ2V0RHVzdFRocmVzaG9sZFNhdChuZXR3b3JrLCBzY3JpcHQubGVuZ3RoLCBpc1dpdG5lc3NPdXRwdXRTY3JpcHQoc2NyaXB0KSk7XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parsePayGoAttestation.d.ts","sourceRoot":"","sources":["../../../src/paygo/parsePayGoAttestation.ts"],"names":[],"mappings":"AAcA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAuBA"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.parsePayGoAttestation = parsePayGoAttestation;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
9
|
-
// The signed address will always have the following structure:
|
|
10
|
-
// 0x18Bitcoin Signed Message:\n<varint_length><ENTROPY><ADDRESS><UUID>
|
|
11
|
-
const PrefixLength = Buffer.from([0x18]).length + Buffer.from('Bitcoin Signed Message:\n').length;
|
|
12
|
-
// UUID has the structure 00000000-0000-0000-0000-000000000000, and after
|
|
13
|
-
// we Buffer.from and get it's length its 36.
|
|
14
|
-
const UuidBufferLength = 36;
|
|
15
|
-
// The entropy will always be 64 bytes
|
|
16
|
-
const EntropyLen = 64;
|
|
17
|
-
/**
|
|
18
|
-
* This function takes in the attestation proof of a PayGo address of the from
|
|
19
|
-
* 0x18Bitcoin Signed Message:\n<varint_length><ENTROPY><ADDRESS><UUID> and returns
|
|
20
|
-
* the address given its length. It is assumed that the ENTROPY is 64 bytes in the Buffer
|
|
21
|
-
* so if not given an address proof length we can still extract the address from the proof.
|
|
22
|
-
*
|
|
23
|
-
* @param message
|
|
24
|
-
* @param adressProofLength
|
|
25
|
-
*/
|
|
26
|
-
function parsePayGoAttestation(message) {
|
|
27
|
-
if (message.length <= PrefixLength + EntropyLen + UuidBufferLength) {
|
|
28
|
-
throw new Error('PayGo attestation proof is too short to contain a valid address');
|
|
29
|
-
}
|
|
30
|
-
// This generates the first part before the varint length so that we can
|
|
31
|
-
// determine how many bytes this is and iterate through the Buffer.
|
|
32
|
-
let offset = PrefixLength;
|
|
33
|
-
// we decode the varint of the message which is uint32
|
|
34
|
-
// https://en.bitcoin.it/wiki/Protocol_documentation
|
|
35
|
-
const varInt = utxo_lib_1.bufferutils.varuint.decode(message, offset);
|
|
36
|
-
(0, assert_1.default)(varInt);
|
|
37
|
-
offset += utxo_lib_1.bufferutils.varuint.decode.bytes;
|
|
38
|
-
const entropy = message.subarray(offset, offset + EntropyLen);
|
|
39
|
-
offset += EntropyLen;
|
|
40
|
-
const address = message.subarray(offset, message.length - UuidBufferLength);
|
|
41
|
-
offset += address.length;
|
|
42
|
-
const uuid = message.subarray(message.length - UuidBufferLength);
|
|
43
|
-
// we break up the original message and retuen the entropy, address and uuid in their buffers
|
|
44
|
-
return { entropy, address, uuid };
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VQYXlHb0F0dGVzdGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BheWdvL3BhcnNlUGF5R29BdHRlc3RhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVCQSxzREEyQkM7QUFsREQsb0RBQTRCO0FBRTVCLG1EQUFtRDtBQUVuRCwrREFBK0Q7QUFDL0QsdUVBQXVFO0FBRXZFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ2xHLHlFQUF5RTtBQUN6RSw2Q0FBNkM7QUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFDNUIsc0NBQXNDO0FBQ3RDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUV0Qjs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLE9BQWU7SUFLbkQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLFlBQVksR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxtRUFBbUU7SUFDbkUsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDO0lBRTFCLHNEQUFzRDtJQUN0RCxvREFBb0Q7SUFDcEQsTUFBTSxNQUFNLEdBQUcsc0JBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFDZixNQUFNLElBQUksc0JBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUUzQyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDOUQsTUFBTSxJQUFJLFVBQVUsQ0FBQztJQUNyQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLENBQUM7SUFDNUUsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDekIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLENBQUM7SUFFakUsNkZBQTZGO0lBQzdGLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGJ1ZmZlcnV0aWxzIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG4vLyBUaGUgc2lnbmVkIGFkZHJlc3Mgd2lsbCBhbHdheXMgaGF2ZSB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcbi8vIDB4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbjx2YXJpbnRfbGVuZ3RoPjxFTlRST1BZPjxBRERSRVNTPjxVVUlEPlxuXG5jb25zdCBQcmVmaXhMZW5ndGggPSBCdWZmZXIuZnJvbShbMHgxOF0pLmxlbmd0aCArIEJ1ZmZlci5mcm9tKCdCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbicpLmxlbmd0aDtcbi8vIFVVSUQgaGFzIHRoZSBzdHJ1Y3R1cmUgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwLCBhbmQgYWZ0ZXJcbi8vIHdlIEJ1ZmZlci5mcm9tIGFuZCBnZXQgaXQncyBsZW5ndGggaXRzIDM2LlxuY29uc3QgVXVpZEJ1ZmZlckxlbmd0aCA9IDM2O1xuLy8gVGhlIGVudHJvcHkgd2lsbCBhbHdheXMgYmUgNjQgYnl0ZXNcbmNvbnN0IEVudHJvcHlMZW4gPSA2NDtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGluIHRoZSBhdHRlc3RhdGlvbiBwcm9vZiBvZiBhIFBheUdvIGFkZHJlc3Mgb2YgdGhlIGZyb21cbiAqIDB4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbjx2YXJpbnRfbGVuZ3RoPjxFTlRST1BZPjxBRERSRVNTPjxVVUlEPiBhbmQgcmV0dXJuc1xuICogdGhlIGFkZHJlc3MgZ2l2ZW4gaXRzIGxlbmd0aC4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBFTlRST1BZIGlzIDY0IGJ5dGVzIGluIHRoZSBCdWZmZXJcbiAqIHNvIGlmIG5vdCBnaXZlbiBhbiBhZGRyZXNzIHByb29mIGxlbmd0aCB3ZSBjYW4gc3RpbGwgZXh0cmFjdCB0aGUgYWRkcmVzcyBmcm9tIHRoZSBwcm9vZi5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZVxuICogQHBhcmFtIGFkcmVzc1Byb29mTGVuZ3RoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBheUdvQXR0ZXN0YXRpb24obWVzc2FnZTogQnVmZmVyKToge1xuICBlbnRyb3B5OiBCdWZmZXI7XG4gIGFkZHJlc3M6IEJ1ZmZlcjtcbiAgdXVpZDogQnVmZmVyO1xufSB7XG4gIGlmIChtZXNzYWdlLmxlbmd0aCA8PSBQcmVmaXhMZW5ndGggKyBFbnRyb3B5TGVuICsgVXVpZEJ1ZmZlckxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUGF5R28gYXR0ZXN0YXRpb24gcHJvb2YgaXMgdG9vIHNob3J0IHRvIGNvbnRhaW4gYSB2YWxpZCBhZGRyZXNzJyk7XG4gIH1cblxuICAvLyBUaGlzIGdlbmVyYXRlcyB0aGUgZmlyc3QgcGFydCBiZWZvcmUgdGhlIHZhcmludCBsZW5ndGggc28gdGhhdCB3ZSBjYW5cbiAgLy8gZGV0ZXJtaW5lIGhvdyBtYW55IGJ5dGVzIHRoaXMgaXMgYW5kIGl0ZXJhdGUgdGhyb3VnaCB0aGUgQnVmZmVyLlxuICBsZXQgb2Zmc2V0ID0gUHJlZml4TGVuZ3RoO1xuXG4gIC8vIHdlIGRlY29kZSB0aGUgdmFyaW50IG9mIHRoZSBtZXNzYWdlIHdoaWNoIGlzIHVpbnQzMlxuICAvLyBodHRwczovL2VuLmJpdGNvaW4uaXQvd2lraS9Qcm90b2NvbF9kb2N1bWVudGF0aW9uXG4gIGNvbnN0IHZhckludCA9IGJ1ZmZlcnV0aWxzLnZhcnVpbnQuZGVjb2RlKG1lc3NhZ2UsIG9mZnNldCk7XG4gIGFzc2VydCh2YXJJbnQpO1xuICBvZmZzZXQgKz0gYnVmZmVydXRpbHMudmFydWludC5kZWNvZGUuYnl0ZXM7XG5cbiAgY29uc3QgZW50cm9weSA9IG1lc3NhZ2Uuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBFbnRyb3B5TGVuKTtcbiAgb2Zmc2V0ICs9IEVudHJvcHlMZW47XG4gIGNvbnN0IGFkZHJlc3MgPSBtZXNzYWdlLnN1YmFycmF5KG9mZnNldCwgbWVzc2FnZS5sZW5ndGggLSBVdWlkQnVmZmVyTGVuZ3RoKTtcbiAgb2Zmc2V0ICs9IGFkZHJlc3MubGVuZ3RoO1xuICBjb25zdCB1dWlkID0gbWVzc2FnZS5zdWJhcnJheShtZXNzYWdlLmxlbmd0aCAtIFV1aWRCdWZmZXJMZW5ndGgpO1xuXG4gIC8vIHdlIGJyZWFrIHVwIHRoZSBvcmlnaW5hbCBtZXNzYWdlIGFuZCByZXR1ZW4gdGhlIGVudHJvcHksIGFkZHJlc3MgYW5kIHV1aWQgaW4gdGhlaXIgYnVmZmVyc1xuICByZXR1cm4geyBlbnRyb3B5LCBhZGRyZXNzLCB1dWlkIH07XG59XG4iXX0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ErrorMultiplePayGoProofAtPsbtIndex = exports.ErrorOutputIndexOutOfBounds = exports.ErrorPayGoAddressProofFailedVerification = exports.ErrorMultiplePayGoProof = exports.ErrorNoPayGoProof = exports.PayGoError = void 0;
|
|
4
|
-
class PayGoError extends Error {
|
|
5
|
-
constructor(message) {
|
|
6
|
-
super(message);
|
|
7
|
-
this.name = this.constructor.name;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.PayGoError = PayGoError;
|
|
11
|
-
class ErrorNoPayGoProof extends PayGoError {
|
|
12
|
-
constructor(outputIndex) {
|
|
13
|
-
super(`There is no paygo address proof encoded in the PSBT at output ${outputIndex}.`);
|
|
14
|
-
this.outputIndex = outputIndex;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.ErrorNoPayGoProof = ErrorNoPayGoProof;
|
|
18
|
-
class ErrorMultiplePayGoProof extends PayGoError {
|
|
19
|
-
constructor() {
|
|
20
|
-
super('There are multiple paygo address proofs encoded in the PSBT. Something went wrong.');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.ErrorMultiplePayGoProof = ErrorMultiplePayGoProof;
|
|
24
|
-
class ErrorPayGoAddressProofFailedVerification extends PayGoError {
|
|
25
|
-
constructor() {
|
|
26
|
-
super('Cannot verify the paygo address signature with the provided pubkey.');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.ErrorPayGoAddressProofFailedVerification = ErrorPayGoAddressProofFailedVerification;
|
|
30
|
-
class ErrorOutputIndexOutOfBounds extends PayGoError {
|
|
31
|
-
constructor(outputIndex) {
|
|
32
|
-
super(`Output index ${outputIndex} is out of bounds for PSBT outputs.`);
|
|
33
|
-
this.outputIndex = outputIndex;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.ErrorOutputIndexOutOfBounds = ErrorOutputIndexOutOfBounds;
|
|
37
|
-
class ErrorMultiplePayGoProofAtPsbtIndex extends PayGoError {
|
|
38
|
-
constructor(outputIndex) {
|
|
39
|
-
super(`There are multiple PayGo addresses in the PSBT output ${outputIndex}.`);
|
|
40
|
-
this.outputIndex = outputIndex;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.ErrorMultiplePayGoProofAtPsbtIndex = ErrorMultiplePayGoProofAtPsbtIndex;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BheWdvL3BzYnQvRXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsVUFBVyxTQUFRLEtBQUs7SUFDbkMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBTEQsZ0NBS0M7QUFFRCxNQUFhLGlCQUFrQixTQUFRLFVBQVU7SUFDL0MsWUFBbUIsV0FBbUI7UUFDcEMsS0FBSyxDQUFDLGlFQUFpRSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRHRFLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBRXRDLENBQUM7Q0FDRjtBQUpELDhDQUlDO0FBRUQsTUFBYSx1QkFBd0IsU0FBUSxVQUFVO0lBQ3JEO1FBQ0UsS0FBSyxDQUFDLG9GQUFvRixDQUFDLENBQUM7SUFDOUYsQ0FBQztDQUNGO0FBSkQsMERBSUM7QUFFRCxNQUFhLHdDQUF5QyxTQUFRLFVBQVU7SUFDdEU7UUFDRSxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0NBQ0Y7QUFKRCw0RkFJQztBQUVELE1BQWEsMkJBQTRCLFNBQVEsVUFBVTtJQUN6RCxZQUFtQixXQUFtQjtRQUNwQyxLQUFLLENBQUMsZ0JBQWdCLFdBQVcscUNBQXFDLENBQUMsQ0FBQztRQUR2RCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUV0QyxDQUFDO0NBQ0Y7QUFKRCxrRUFJQztBQUVELE1BQWEsa0NBQW1DLFNBQVEsVUFBVTtJQUNoRSxZQUFtQixXQUFtQjtRQUNwQyxLQUFLLENBQUMseURBQXlELFdBQVcsR0FBRyxDQUFDLENBQUM7UUFEOUQsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFFdEMsQ0FBQztDQUNGO0FBSkQsZ0ZBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGF5R29FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvck5vUGF5R29Qcm9vZiBleHRlbmRzIFBheUdvRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3V0cHV0SW5kZXg6IG51bWJlcikge1xuICAgIHN1cGVyKGBUaGVyZSBpcyBubyBwYXlnbyBhZGRyZXNzIHByb29mIGVuY29kZWQgaW4gdGhlIFBTQlQgYXQgb3V0cHV0ICR7b3V0cHV0SW5kZXh9LmApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvck11bHRpcGxlUGF5R29Qcm9vZiBleHRlbmRzIFBheUdvRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignVGhlcmUgYXJlIG11bHRpcGxlIHBheWdvIGFkZHJlc3MgcHJvb2ZzIGVuY29kZWQgaW4gdGhlIFBTQlQuIFNvbWV0aGluZyB3ZW50IHdyb25nLicpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvclBheUdvQWRkcmVzc1Byb29mRmFpbGVkVmVyaWZpY2F0aW9uIGV4dGVuZHMgUGF5R29FcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdDYW5ub3QgdmVyaWZ5IHRoZSBwYXlnbyBhZGRyZXNzIHNpZ25hdHVyZSB3aXRoIHRoZSBwcm92aWRlZCBwdWJrZXkuJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yT3V0cHV0SW5kZXhPdXRPZkJvdW5kcyBleHRlbmRzIFBheUdvRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3V0cHV0SW5kZXg6IG51bWJlcikge1xuICAgIHN1cGVyKGBPdXRwdXQgaW5kZXggJHtvdXRwdXRJbmRleH0gaXMgb3V0IG9mIGJvdW5kcyBmb3IgUFNCVCBvdXRwdXRzLmApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvck11bHRpcGxlUGF5R29Qcm9vZkF0UHNidEluZGV4IGV4dGVuZHMgUGF5R29FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvdXRwdXRJbmRleDogbnVtYmVyKSB7XG4gICAgc3VwZXIoYFRoZXJlIGFyZSBtdWx0aXBsZSBQYXlHbyBhZGRyZXNzZXMgaW4gdGhlIFBTQlQgb3V0cHV0ICR7b3V0cHV0SW5kZXh9LmApO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"payGoAddressProof.d.ts","sourceRoot":"","sources":["../../../../src/paygo/psbt/payGoAddressProof.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAchD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,GACzB,IAAI,CAgCN;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,CAehG;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAEzF"}
|