@bitgo-beta/abstract-utxo 1.1.1-beta.232 → 1.1.1-beta.2321
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -0
- package/dist/cjs/src/abstractUtxoCoin.d.ts +466 -0
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -0
- package/dist/cjs/src/abstractUtxoCoin.js +644 -0
- package/dist/cjs/src/address/fixedScript.d.ts +44 -0
- package/dist/cjs/src/address/fixedScript.d.ts.map +1 -0
- package/dist/cjs/src/address/fixedScript.js +109 -0
- package/dist/cjs/src/address/index.d.ts +2 -0
- package/dist/cjs/src/address/index.d.ts.map +1 -0
- package/dist/cjs/src/address/index.js +8 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +14 -0
- package/dist/cjs/src/deriveKeyWithSeed.d.ts +12 -0
- package/dist/cjs/src/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/cjs/src/deriveKeyWithSeed.js +17 -0
- package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +19 -0
- package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/NamedDescriptor.js +77 -0
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +32 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts +17 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/builder.js +54 -0
- package/dist/cjs/src/descriptor/builder/index.d.ts +3 -0
- package/dist/cjs/src/descriptor/builder/index.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/index.js +8 -0
- package/dist/cjs/src/descriptor/builder/parse.d.ts +5 -0
- package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/parse.js +148 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.js +41 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +33 -0
- package/dist/cjs/src/descriptor/createWallet/index.d.ts +3 -0
- package/dist/cjs/src/descriptor/createWallet/index.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/createWallet/index.js +19 -0
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts +19 -0
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/descriptorWallet.js +54 -0
- package/dist/cjs/src/descriptor/index.d.ts +9 -0
- package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/index.js +53 -0
- package/dist/cjs/src/descriptor/validatePolicy.d.ts +22 -0
- package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/validatePolicy.js +94 -0
- package/dist/cjs/src/impl/bch/bch.d.ts +36 -0
- package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/bch.js +67 -0
- package/dist/cjs/src/impl/bch/index.d.ts +3 -0
- package/dist/cjs/src/impl/bch/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/index.js +19 -0
- package/dist/cjs/src/impl/bch/tbch.d.ts +12 -0
- package/dist/cjs/src/impl/bch/tbch.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/tbch.js +15 -0
- package/dist/cjs/src/impl/bcha/bcha.d.ts +9 -0
- package/dist/cjs/src/impl/bcha/bcha.d.ts.map +1 -0
- package/dist/cjs/src/impl/bcha/bcha.js +15 -0
- package/dist/cjs/src/impl/bcha/index.d.ts +3 -0
- package/dist/cjs/src/impl/bcha/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/bcha/index.js +19 -0
- package/dist/cjs/src/impl/bcha/tbcha.d.ts +12 -0
- package/dist/cjs/src/impl/bcha/tbcha.d.ts.map +1 -0
- package/dist/cjs/src/impl/bcha/tbcha.js +15 -0
- package/dist/cjs/src/impl/bsv/bsv.d.ts +9 -0
- package/dist/cjs/src/impl/bsv/bsv.d.ts.map +1 -0
- package/dist/cjs/src/impl/bsv/bsv.js +15 -0
- package/dist/cjs/src/impl/bsv/index.d.ts +3 -0
- package/dist/cjs/src/impl/bsv/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/bsv/index.js +19 -0
- package/dist/cjs/src/impl/bsv/tbsv.d.ts +12 -0
- package/dist/cjs/src/impl/bsv/tbsv.d.ts.map +1 -0
- package/dist/cjs/src/impl/bsv/tbsv.js +15 -0
- package/dist/cjs/src/impl/btc/btc.d.ts +15 -0
- package/dist/cjs/src/impl/btc/btc.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/btc.js +22 -0
- package/dist/cjs/src/impl/btc/index.d.ts +10 -0
- package/dist/cjs/src/impl/btc/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/index.js +26 -0
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +61 -0
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/inscriptionBuilder.js +170 -0
- package/dist/cjs/src/impl/btc/tbtc.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtc.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtc.js +15 -0
- package/dist/cjs/src/impl/btc/tbtc4.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtc4.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtc4.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcbgsig.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcsig.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtcsig.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcsig.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcstx.d.ts +10 -0
- package/dist/cjs/src/impl/btc/tbtcstx.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstx.js +18 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts +9 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcstxsignet.d.ts +10 -0
- package/dist/cjs/src/impl/btc/tbtcstxsignet.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstxsignet.js +18 -0
- package/dist/cjs/src/impl/btg/btg.d.ts +9 -0
- package/dist/cjs/src/impl/btg/btg.d.ts.map +1 -0
- package/dist/cjs/src/impl/btg/btg.js +15 -0
- package/dist/cjs/src/impl/btg/index.d.ts +2 -0
- package/dist/cjs/src/impl/btg/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/btg/index.js +18 -0
- package/dist/cjs/src/impl/dash/dash.d.ts +9 -0
- package/dist/cjs/src/impl/dash/dash.d.ts.map +1 -0
- package/dist/cjs/src/impl/dash/dash.js +15 -0
- package/dist/cjs/src/impl/dash/index.d.ts +3 -0
- package/dist/cjs/src/impl/dash/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/dash/index.js +19 -0
- package/dist/cjs/src/impl/dash/tdash.d.ts +12 -0
- package/dist/cjs/src/impl/dash/tdash.d.ts.map +1 -0
- package/dist/cjs/src/impl/dash/tdash.js +15 -0
- package/dist/cjs/src/impl/doge/doge.d.ts +33 -0
- package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/doge.js +76 -0
- package/dist/cjs/src/impl/doge/index.d.ts +3 -0
- package/dist/cjs/src/impl/doge/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/index.js +19 -0
- package/dist/cjs/src/impl/doge/tdoge.d.ts +12 -0
- package/dist/cjs/src/impl/doge/tdoge.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/tdoge.js +15 -0
- package/dist/cjs/src/impl/index.d.ts +11 -0
- package/dist/cjs/src/impl/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/index.js +47 -0
- package/dist/cjs/src/impl/ltc/index.d.ts +3 -0
- package/dist/cjs/src/impl/ltc/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/ltc/index.js +19 -0
- package/dist/cjs/src/impl/ltc/ltc.d.ts +8 -0
- package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -0
- package/dist/cjs/src/impl/ltc/ltc.js +15 -0
- package/dist/cjs/src/impl/ltc/tltc.d.ts +8 -0
- package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -0
- package/dist/cjs/src/impl/ltc/tltc.js +15 -0
- package/dist/cjs/src/impl/pearl/index.d.ts +3 -0
- package/dist/cjs/src/impl/pearl/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/pearl/index.js +19 -0
- package/dist/cjs/src/impl/pearl/pearl.d.ts +17 -0
- package/dist/cjs/src/impl/pearl/pearl.d.ts.map +1 -0
- package/dist/cjs/src/impl/pearl/pearl.js +24 -0
- package/dist/cjs/src/impl/pearl/tpearl.d.ts +8 -0
- package/dist/cjs/src/impl/pearl/tpearl.d.ts.map +1 -0
- package/dist/cjs/src/impl/pearl/tpearl.js +15 -0
- package/dist/cjs/src/impl/zec/address.d.ts +79 -0
- package/dist/cjs/src/impl/zec/address.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/address.js +157 -0
- package/dist/cjs/src/impl/zec/index.d.ts +7 -0
- package/dist/cjs/src/impl/zec/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/index.js +23 -0
- package/dist/cjs/src/impl/zec/recipients.d.ts +86 -0
- package/dist/cjs/src/impl/zec/recipients.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/recipients.js +98 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.js +51 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.js +57 -0
- package/dist/cjs/src/impl/zec/types.d.ts +8 -0
- package/dist/cjs/src/impl/zec/types.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/types.js +3 -0
- package/dist/cjs/src/impl/zec/tzec.d.ts +9 -0
- package/dist/cjs/src/impl/zec/tzec.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/tzec.js +15 -0
- package/dist/cjs/src/impl/zec/zec.d.ts +58 -0
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/zec.js +124 -0
- package/dist/cjs/src/index.d.ts +23 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +62 -0
- package/dist/cjs/src/keychains.d.ts +55 -0
- package/dist/cjs/src/keychains.d.ts.map +1 -0
- package/dist/cjs/src/keychains.js +143 -0
- package/dist/cjs/src/names.d.ts +16 -0
- package/dist/cjs/src/names.d.ts.map +1 -0
- package/dist/cjs/src/names.js +119 -0
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts +9 -0
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +22 -0
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts +46 -0
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.js +55 -0
- package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts +16 -0
- package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/TransactionExplanation.js +15 -0
- package/dist/cjs/src/offlineVault/descriptor/index.d.ts +2 -0
- package/dist/cjs/src/offlineVault/descriptor/index.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/descriptor/index.js +18 -0
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +39 -0
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/descriptor/transaction.js +80 -0
- package/dist/cjs/src/offlineVault/index.d.ts +6 -0
- package/dist/cjs/src/offlineVault/index.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/index.js +44 -0
- package/dist/{src → cjs/src}/recovery/RecoveryProvider.d.ts +1 -3
- package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -0
- package/dist/cjs/src/recovery/RecoveryProvider.js +22 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +176 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.js +417 -0
- package/dist/{src → cjs/src}/recovery/baseApi.d.ts +3 -6
- package/dist/cjs/src/recovery/baseApi.d.ts.map +1 -0
- package/dist/cjs/src/recovery/baseApi.js +73 -0
- package/dist/{src → cjs/src}/recovery/coingeckoApi.d.ts +0 -3
- package/dist/cjs/src/recovery/coingeckoApi.d.ts.map +1 -0
- package/dist/cjs/src/recovery/coingeckoApi.js +44 -0
- package/dist/{src → cjs/src}/recovery/crossChainRecovery.d.ts +21 -9
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -0
- package/dist/cjs/src/recovery/crossChainRecovery.js +302 -0
- package/dist/{src → cjs/src}/recovery/index.d.ts +0 -1
- package/dist/cjs/src/recovery/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/recovery/index.js +6 -3
- package/dist/cjs/src/recovery/mempoolApi.d.ts.map +1 -0
- package/dist/cjs/src/recovery/mempoolApi.js +36 -0
- package/dist/cjs/src/recovery/psbt.d.ts +68 -0
- package/dist/cjs/src/recovery/psbt.d.ts.map +1 -0
- package/dist/cjs/src/recovery/psbt.js +160 -0
- package/dist/cjs/src/tnumber.d.ts +4 -0
- package/dist/cjs/src/tnumber.d.ts.map +1 -0
- package/dist/cjs/src/tnumber.js +12 -0
- package/dist/cjs/src/transaction/bip322.d.ts +27 -0
- package/dist/cjs/src/transaction/bip322.d.ts.map +1 -0
- package/dist/cjs/src/transaction/bip322.js +139 -0
- package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts +2 -0
- package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/cjs/src/transaction/common/verifyPayGoAmount.js +3 -0
- package/dist/cjs/src/transaction/decode.d.ts +21 -0
- package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
- package/dist/cjs/src/transaction/decode.js +46 -0
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +5 -0
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/explainPsbt.js +48 -0
- package/dist/cjs/src/transaction/descriptor/index.d.ts +7 -0
- package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/index.js +14 -0
- package/dist/cjs/src/transaction/descriptor/parse.d.ts +18 -0
- package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/parse.js +85 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts +15 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.js +60 -0
- package/dist/cjs/src/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/cjs/src/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/recipient.js +3 -0
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/signPsbt.js +44 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +36 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +90 -0
- package/dist/cjs/src/transaction/explainTransaction.d.ts +19 -0
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/explainTransaction.js +85 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.js +32 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +47 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +152 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +47 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +3 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts +8 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/index.js +30 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.d.ts +4 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.js +3 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts +30 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.js +217 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +9 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +234 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +10 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.js +44 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +27 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +130 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +31 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +55 -0
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts +21 -0
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +182 -0
- package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts +9 -0
- package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
- package/dist/cjs/src/transaction/getPayGoVerificationPubkey.js +20 -0
- package/dist/cjs/src/transaction/index.d.ts +9 -0
- package/dist/cjs/src/transaction/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/index.js +52 -0
- package/dist/cjs/src/transaction/outputDifference.d.ts +44 -0
- package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -0
- package/dist/cjs/src/transaction/outputDifference.js +51 -0
- package/dist/cjs/src/transaction/parseTransaction.d.ts +5 -0
- package/dist/cjs/src/transaction/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/parseTransaction.js +48 -0
- package/dist/cjs/src/transaction/recipient.d.ts +76 -0
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -0
- package/dist/cjs/src/transaction/recipient.js +130 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts +18 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/signTransaction.js +114 -0
- package/dist/cjs/src/transaction/types.d.ts +47 -0
- package/dist/cjs/src/transaction/types.d.ts.map +1 -0
- package/dist/cjs/src/transaction/types.js +3 -0
- package/dist/cjs/src/transaction/verifyTransaction.d.ts +5 -0
- package/dist/cjs/src/transaction/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/verifyTransaction.js +50 -0
- package/dist/cjs/src/unspent.d.ts +59 -0
- package/dist/cjs/src/unspent.d.ts.map +1 -0
- package/dist/cjs/src/unspent.js +20 -0
- package/dist/cjs/src/verifyKey.d.ts +22 -0
- package/dist/cjs/src/verifyKey.d.ts.map +1 -0
- package/dist/cjs/src/verifyKey.js +110 -0
- package/dist/cjs/src/wallet.d.ts +15 -0
- package/dist/cjs/src/wallet.d.ts.map +1 -0
- package/dist/cjs/src/wallet.js +8 -0
- package/dist/cjs/test/integration/impl/bch/bch.d.ts +2 -0
- package/dist/cjs/test/integration/impl/bch/bch.d.ts.map +1 -0
- package/dist/cjs/test/integration/impl/bch/bch.js +76 -0
- package/dist/cjs/test/unit/address.d.ts +2 -0
- package/dist/cjs/test/unit/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/address.js +201 -0
- package/dist/cjs/test/unit/bip322.d.ts +2 -0
- package/dist/cjs/test/unit/bip322.d.ts.map +1 -0
- package/dist/cjs/test/unit/bip322.js +491 -0
- package/dist/cjs/test/unit/buildSignSendLegacyFormat.d.ts +2 -0
- package/dist/cjs/test/unit/buildSignSendLegacyFormat.d.ts.map +1 -0
- package/dist/cjs/test/unit/buildSignSendLegacyFormat.js +102 -0
- package/dist/cjs/test/unit/coins.d.ts +2 -0
- package/dist/cjs/test/unit/coins.d.ts.map +1 -0
- package/dist/cjs/test/unit/coins.js +161 -0
- package/dist/cjs/test/unit/customChangeWallet.d.ts +2 -0
- package/dist/cjs/test/unit/customChangeWallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/customChangeWallet.js +206 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts +2 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts.map +1 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.js +53 -0
- package/dist/cjs/test/unit/customSigner.d.ts +2 -0
- package/dist/cjs/test/unit/customSigner.d.ts.map +1 -0
- package/dist/cjs/test/unit/customSigner.js +99 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts +2 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.js +56 -0
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +51 -0
- package/dist/cjs/test/unit/descriptor/builder.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/builder.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/builder.js +92 -0
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +53 -0
- package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/descriptorWallet.js +62 -0
- package/dist/cjs/test/unit/descriptorAddress.d.ts +3 -0
- package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptorAddress.js +123 -0
- package/dist/cjs/test/unit/explainTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/explainTransaction.js +37 -0
- package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts +4 -0
- package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures/psbtHexProof.js +9 -0
- package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts +2 -0
- package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/bch/unit/bch.js +79 -0
- package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/bcha/unit/index.js +41 -0
- package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/bsv/unit/index.js +34 -0
- package/dist/cjs/test/unit/impl/btg/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/btg/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/btg/unit/index.js +33 -0
- package/dist/cjs/test/unit/impl/dash/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/dash/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/dash/unit/index.js +34 -0
- package/dist/cjs/test/unit/impl/doge/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/doge/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/doge/unit/index.js +34 -0
- package/dist/cjs/test/unit/impl/pearl/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/pearl/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/pearl/unit/index.js +111 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.js +69 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.js +470 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.js +227 -0
- package/dist/cjs/test/unit/impl/zec/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/index.js +30 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.js +91 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.js +57 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.js +57 -0
- package/dist/cjs/test/unit/keySignatures.d.ts +2 -0
- package/dist/cjs/test/unit/keySignatures.d.ts.map +1 -0
- package/dist/cjs/test/unit/keySignatures.js +54 -0
- package/dist/cjs/test/unit/keychains.d.ts +2 -0
- package/dist/cjs/test/unit/keychains.d.ts.map +1 -0
- package/dist/cjs/test/unit/keychains.js +87 -0
- package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts +2 -0
- package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts.map +1 -0
- package/dist/cjs/test/unit/offlineVault/halfSigned.js +124 -0
- package/dist/cjs/test/unit/parseTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/parseTransaction.js +155 -0
- package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.js +99 -0
- package/dist/cjs/test/unit/postProcessPrebuild.d.ts +2 -0
- package/dist/cjs/test/unit/postProcessPrebuild.d.ts.map +1 -0
- package/dist/cjs/test/unit/postProcessPrebuild.js +65 -0
- package/dist/cjs/test/unit/prebuildAndSign.d.ts +2 -0
- package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -0
- package/dist/cjs/test/unit/prebuildAndSign.js +218 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +149 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +147 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +352 -0
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +189 -0
- package/dist/cjs/test/unit/recovery/mock.d.ts +37 -0
- package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/mock.js +113 -0
- package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/signTransaction.js +223 -0
- package/dist/cjs/test/unit/tbtcstx.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstx.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstx.js +60 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.js +61 -0
- package/dist/cjs/test/unit/tbtcstxsignet.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstxsignet.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstxsignet.js +61 -0
- package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
- package/dist/cjs/test/unit/transaction/addressCodec.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/addressCodec.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/addressCodec.js +30 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +64 -0
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts +6 -0
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +51 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.js +140 -0
- package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/sign.js +76 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.js +100 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.js +84 -0
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +81 -0
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.js +103 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +179 -0
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +223 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.js +60 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +98 -0
- package/dist/cjs/test/unit/transaction/outputDifference.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
- package/dist/cjs/test/unit/transaction/recipient.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/recipient.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/recipient.js +52 -0
- package/dist/cjs/test/unit/transaction.d.ts +2 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +301 -0
- package/dist/cjs/test/unit/txFormat.d.ts +30 -0
- package/dist/cjs/test/unit/txFormat.d.ts.map +1 -0
- package/dist/cjs/test/unit/txFormat.js +161 -0
- package/dist/cjs/test/unit/util/address.d.ts +14 -0
- package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/address.js +16 -0
- package/dist/cjs/test/unit/util/assert.d.ts +3 -0
- package/dist/cjs/test/unit/util/assert.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/assert.js +24 -0
- package/dist/cjs/test/unit/util/fixtures.d.ts +13 -0
- package/dist/cjs/test/unit/util/fixtures.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/fixtures.js +105 -0
- package/dist/cjs/test/unit/util/index.d.ts +11 -0
- package/dist/cjs/test/unit/util/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/index.js +27 -0
- package/dist/cjs/test/unit/util/keychains.d.ts +55 -0
- package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/keychains.js +122 -0
- package/dist/cjs/test/unit/util/nockBitGo.d.ts +10 -0
- package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/nockBitGo.js +27 -0
- package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts +8 -0
- package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/nockIndexerAPI.js +22 -0
- package/dist/cjs/test/unit/util/psbt.d.ts +19 -0
- package/dist/cjs/test/unit/util/psbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/psbt.js +21 -0
- package/dist/cjs/test/unit/util/transaction.d.ts +28 -0
- package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/transaction.js +132 -0
- package/dist/cjs/test/unit/util/unspents.d.ts +71 -0
- package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/unspents.js +224 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts +30 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/utxoCoins.js +159 -0
- package/dist/cjs/test/unit/util/wallet.d.ts +4 -0
- package/dist/cjs/test/unit/util/wallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/wallet.js +9 -0
- package/dist/cjs/test/unit/verifyTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/verifyTransaction.js +539 -0
- package/dist/cjs/test/unit/wallet.d.ts +2 -0
- package/dist/cjs/test/unit/wallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/wallet.js +251 -0
- package/dist/cjs/test/unit/webauthn.d.ts +2 -0
- package/dist/cjs/test/unit/webauthn.d.ts.map +1 -0
- package/dist/cjs/test/unit/webauthn.js +77 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/abstractUtxoCoin.d.ts +466 -0
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -0
- package/dist/esm/abstractUtxoCoin.js +636 -0
- package/dist/esm/address/fixedScript.d.ts +44 -0
- package/dist/esm/address/fixedScript.d.ts.map +1 -0
- package/dist/esm/address/fixedScript.js +101 -0
- package/dist/esm/address/index.d.ts +2 -0
- package/dist/esm/address/index.d.ts.map +1 -0
- package/dist/esm/address/index.js +2 -0
- package/dist/esm/config.d.ts +9 -0
- package/dist/esm/config.js +11 -0
- package/dist/esm/deriveKeyWithSeed.d.ts +12 -0
- package/dist/esm/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/esm/deriveKeyWithSeed.js +14 -0
- package/dist/esm/descriptor/NamedDescriptor.d.ts +19 -0
- package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/esm/descriptor/NamedDescriptor.js +37 -0
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
- package/dist/esm/descriptor/assertDescriptorWalletAddress.js +26 -0
- package/dist/esm/descriptor/builder/builder.d.ts +17 -0
- package/dist/esm/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/builder.js +51 -0
- package/dist/esm/descriptor/builder/index.d.ts +3 -0
- package/dist/esm/descriptor/builder/index.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/index.js +3 -0
- package/dist/esm/descriptor/builder/parse.d.ts +5 -0
- package/dist/esm/descriptor/builder/parse.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/parse.js +144 -0
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.js +37 -0
- package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +12 -0
- package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/esm/descriptor/createWallet/createDescriptors.js +29 -0
- package/dist/esm/descriptor/createWallet/index.d.ts +3 -0
- package/dist/esm/descriptor/createWallet/index.d.ts.map +1 -0
- package/dist/esm/descriptor/createWallet/index.js +3 -0
- package/dist/esm/descriptor/descriptorWallet.d.ts +19 -0
- package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/esm/descriptor/descriptorWallet.js +16 -0
- package/dist/esm/descriptor/index.d.ts +9 -0
- package/dist/esm/descriptor/index.d.ts.map +1 -0
- package/dist/esm/descriptor/index.js +7 -0
- package/dist/esm/descriptor/validatePolicy.d.ts +22 -0
- package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/esm/descriptor/validatePolicy.js +82 -0
- package/dist/esm/impl/bch/bch.d.ts +36 -0
- package/dist/esm/impl/bch/bch.d.ts.map +1 -0
- package/dist/esm/impl/bch/bch.js +63 -0
- package/dist/esm/impl/bch/index.d.ts +3 -0
- package/dist/esm/impl/bch/index.d.ts.map +1 -0
- package/dist/esm/impl/bch/index.js +3 -0
- package/dist/esm/impl/bch/tbch.d.ts +12 -0
- package/dist/esm/impl/bch/tbch.d.ts.map +1 -0
- package/dist/esm/impl/bch/tbch.js +11 -0
- package/dist/esm/impl/bcha/bcha.d.ts +9 -0
- package/dist/esm/impl/bcha/bcha.d.ts.map +1 -0
- package/dist/esm/impl/bcha/bcha.js +11 -0
- package/dist/esm/impl/bcha/index.d.ts +3 -0
- package/dist/esm/impl/bcha/index.d.ts.map +1 -0
- package/dist/esm/impl/bcha/index.js +3 -0
- package/dist/esm/impl/bcha/tbcha.d.ts +12 -0
- package/dist/esm/impl/bcha/tbcha.d.ts.map +1 -0
- package/dist/esm/impl/bcha/tbcha.js +11 -0
- package/dist/esm/impl/bsv/bsv.d.ts +9 -0
- package/dist/esm/impl/bsv/bsv.d.ts.map +1 -0
- package/dist/esm/impl/bsv/bsv.js +11 -0
- package/dist/esm/impl/bsv/index.d.ts +3 -0
- package/dist/esm/impl/bsv/index.d.ts.map +1 -0
- package/dist/esm/impl/bsv/index.js +3 -0
- package/dist/esm/impl/bsv/tbsv.d.ts +12 -0
- package/dist/esm/impl/bsv/tbsv.d.ts.map +1 -0
- package/dist/esm/impl/bsv/tbsv.js +11 -0
- package/dist/esm/impl/btc/btc.d.ts +15 -0
- package/dist/esm/impl/btc/btc.d.ts.map +1 -0
- package/dist/esm/impl/btc/btc.js +18 -0
- package/dist/esm/impl/btc/index.d.ts +10 -0
- package/dist/esm/impl/btc/index.d.ts.map +1 -0
- package/dist/esm/impl/btc/index.js +10 -0
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts +61 -0
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -0
- package/dist/esm/impl/btc/inscriptionBuilder.js +163 -0
- package/dist/esm/impl/btc/tbtc.d.ts +12 -0
- package/dist/esm/impl/btc/tbtc.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtc.js +11 -0
- package/dist/esm/impl/btc/tbtc4.d.ts +12 -0
- package/dist/esm/impl/btc/tbtc4.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtc4.js +11 -0
- package/dist/esm/impl/btc/tbtcbgsig.d.ts +12 -0
- package/dist/esm/impl/btc/tbtcbgsig.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcbgsig.js +11 -0
- package/dist/esm/impl/btc/tbtcsig.d.ts +12 -0
- package/dist/esm/impl/btc/tbtcsig.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcsig.js +11 -0
- package/dist/esm/impl/btc/tbtcstx.d.ts +10 -0
- package/dist/esm/impl/btc/tbtcstx.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstx.js +14 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.d.ts +9 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.js +11 -0
- package/dist/esm/impl/btc/tbtcstxsignet.d.ts +10 -0
- package/dist/esm/impl/btc/tbtcstxsignet.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstxsignet.js +14 -0
- package/dist/esm/impl/btg/btg.d.ts +9 -0
- package/dist/esm/impl/btg/btg.d.ts.map +1 -0
- package/dist/esm/impl/btg/btg.js +11 -0
- package/dist/esm/impl/btg/index.d.ts +2 -0
- package/dist/esm/impl/btg/index.d.ts.map +1 -0
- package/dist/esm/impl/btg/index.js +2 -0
- package/dist/esm/impl/dash/dash.d.ts +9 -0
- package/dist/esm/impl/dash/dash.d.ts.map +1 -0
- package/dist/esm/impl/dash/dash.js +11 -0
- package/dist/esm/impl/dash/index.d.ts +3 -0
- package/dist/esm/impl/dash/index.d.ts.map +1 -0
- package/dist/esm/impl/dash/index.js +3 -0
- package/dist/esm/impl/dash/tdash.d.ts +12 -0
- package/dist/esm/impl/dash/tdash.d.ts.map +1 -0
- package/dist/esm/impl/dash/tdash.js +11 -0
- package/dist/esm/impl/doge/doge.d.ts +33 -0
- package/dist/esm/impl/doge/doge.d.ts.map +1 -0
- package/dist/esm/impl/doge/doge.js +72 -0
- package/dist/esm/impl/doge/index.d.ts +3 -0
- package/dist/esm/impl/doge/index.d.ts.map +1 -0
- package/dist/esm/impl/doge/index.js +3 -0
- package/dist/esm/impl/doge/tdoge.d.ts +12 -0
- package/dist/esm/impl/doge/tdoge.d.ts.map +1 -0
- package/dist/esm/impl/doge/tdoge.js +11 -0
- package/dist/esm/impl/index.d.ts +11 -0
- package/dist/esm/impl/index.d.ts.map +1 -0
- package/dist/esm/impl/index.js +11 -0
- package/dist/esm/impl/ltc/index.d.ts +3 -0
- package/dist/esm/impl/ltc/index.d.ts.map +1 -0
- package/dist/esm/impl/ltc/index.js +3 -0
- package/dist/esm/impl/ltc/ltc.d.ts +8 -0
- package/dist/esm/impl/ltc/ltc.d.ts.map +1 -0
- package/dist/esm/impl/ltc/ltc.js +11 -0
- package/dist/esm/impl/ltc/tltc.d.ts +8 -0
- package/dist/esm/impl/ltc/tltc.d.ts.map +1 -0
- package/dist/esm/impl/ltc/tltc.js +11 -0
- package/dist/esm/impl/pearl/index.d.ts +3 -0
- package/dist/esm/impl/pearl/index.d.ts.map +1 -0
- package/dist/esm/impl/pearl/index.js +3 -0
- package/dist/esm/impl/pearl/pearl.d.ts +17 -0
- package/dist/esm/impl/pearl/pearl.d.ts.map +1 -0
- package/dist/esm/impl/pearl/pearl.js +20 -0
- package/dist/esm/impl/pearl/tpearl.d.ts +8 -0
- package/dist/esm/impl/pearl/tpearl.d.ts.map +1 -0
- package/dist/esm/impl/pearl/tpearl.js +11 -0
- package/dist/esm/impl/zec/address.d.ts +79 -0
- package/dist/esm/impl/zec/address.d.ts.map +1 -0
- package/dist/esm/impl/zec/address.js +150 -0
- package/dist/esm/impl/zec/index.d.ts +7 -0
- package/dist/esm/impl/zec/index.d.ts.map +1 -0
- package/dist/esm/impl/zec/index.js +7 -0
- package/dist/esm/impl/zec/recipients.d.ts +86 -0
- package/dist/esm/impl/zec/recipients.d.ts.map +1 -0
- package/dist/esm/impl/zec/recipients.js +94 -0
- package/dist/esm/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/esm/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/esm/impl/zec/shieldedAddress.js +48 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.js +50 -0
- package/dist/esm/impl/zec/types.d.ts +8 -0
- package/dist/esm/impl/zec/types.d.ts.map +1 -0
- package/dist/esm/impl/zec/types.js +2 -0
- package/dist/esm/impl/zec/tzec.d.ts +9 -0
- package/dist/esm/impl/zec/tzec.d.ts.map +1 -0
- package/dist/esm/impl/zec/tzec.js +11 -0
- package/dist/esm/impl/zec/zec.d.ts +58 -0
- package/dist/esm/impl/zec/zec.d.ts.map +1 -0
- package/dist/esm/impl/zec/zec.js +117 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/keychains.d.ts +55 -0
- package/dist/esm/keychains.d.ts.map +1 -0
- package/dist/esm/keychains.js +98 -0
- package/dist/esm/names.d.ts +16 -0
- package/dist/esm/names.d.ts.map +1 -0
- package/dist/esm/names.js +108 -0
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts +9 -0
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +19 -0
- package/dist/esm/offlineVault/OfflineVaultSignable.d.ts +46 -0
- package/dist/esm/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
- package/dist/esm/offlineVault/OfflineVaultSignable.js +18 -0
- package/dist/esm/offlineVault/TransactionExplanation.d.ts +16 -0
- package/dist/esm/offlineVault/TransactionExplanation.d.ts.map +1 -0
- package/dist/esm/offlineVault/TransactionExplanation.js +12 -0
- package/dist/esm/offlineVault/descriptor/index.d.ts +2 -0
- package/dist/esm/offlineVault/descriptor/index.d.ts.map +1 -0
- package/dist/esm/offlineVault/descriptor/index.js +2 -0
- package/dist/esm/offlineVault/descriptor/transaction.d.ts +39 -0
- package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -0
- package/dist/esm/offlineVault/descriptor/transaction.js +41 -0
- package/dist/esm/offlineVault/index.d.ts +6 -0
- package/dist/esm/offlineVault/index.d.ts.map +1 -0
- package/dist/esm/offlineVault/index.js +4 -0
- package/dist/esm/recovery/RecoveryProvider.d.ts +20 -0
- package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -0
- package/dist/esm/recovery/RecoveryProvider.js +19 -0
- package/dist/esm/recovery/backupKeyRecovery.d.ts +176 -0
- package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/esm/recovery/backupKeyRecovery.js +406 -0
- package/dist/esm/recovery/baseApi.d.ts +24 -0
- package/dist/esm/recovery/baseApi.d.ts.map +1 -0
- package/dist/esm/recovery/baseApi.js +64 -0
- package/dist/esm/recovery/coingeckoApi.d.ts +6 -0
- package/dist/esm/recovery/coingeckoApi.d.ts.map +1 -0
- package/dist/esm/recovery/coingeckoApi.js +40 -0
- package/dist/esm/recovery/crossChainRecovery.d.ts +97 -0
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -0
- package/dist/esm/recovery/crossChainRecovery.js +295 -0
- package/dist/esm/recovery/index.d.ts +7 -0
- package/dist/{src → esm}/recovery/index.d.ts.map +1 -1
- package/dist/esm/recovery/index.js +7 -0
- package/dist/esm/recovery/mempoolApi.d.ts +7 -0
- package/dist/{src → esm}/recovery/mempoolApi.d.ts.map +1 -1
- package/dist/esm/recovery/mempoolApi.js +29 -0
- package/dist/esm/recovery/psbt.d.ts +68 -0
- package/dist/esm/recovery/psbt.d.ts.map +1 -0
- package/dist/esm/recovery/psbt.js +152 -0
- package/dist/esm/tnumber.d.ts +4 -0
- package/dist/esm/tnumber.d.ts.map +1 -0
- package/dist/esm/tnumber.js +9 -0
- package/dist/esm/transaction/bip322.d.ts +27 -0
- package/dist/esm/transaction/bip322.d.ts.map +1 -0
- package/dist/esm/transaction/bip322.js +100 -0
- package/dist/esm/transaction/common/verifyPayGoAmount.d.ts +1 -0
- package/dist/esm/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/esm/transaction/common/verifyPayGoAmount.js +1 -0
- package/dist/esm/transaction/decode.d.ts +21 -0
- package/dist/esm/transaction/decode.d.ts.map +1 -0
- package/dist/esm/transaction/decode.js +40 -0
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts +5 -0
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/explainPsbt.js +45 -0
- package/dist/esm/transaction/descriptor/index.d.ts +7 -0
- package/dist/esm/transaction/descriptor/index.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/index.js +6 -0
- package/dist/esm/transaction/descriptor/parse.d.ts +18 -0
- package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/parse.js +81 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts +15 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.js +55 -0
- package/dist/esm/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/esm/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/recipient.js +2 -0
- package/dist/esm/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/signPsbt.js +39 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +36 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.js +80 -0
- package/dist/esm/transaction/explainTransaction.d.ts +19 -0
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/explainTransaction.js +49 -0
- package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
- package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/SigningError.js +26 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +47 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +147 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +47 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -0
- package/dist/esm/transaction/fixedScript/index.d.ts +8 -0
- package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/index.js +7 -0
- package/dist/esm/transaction/fixedScript/musig2.d.ts +4 -0
- package/dist/esm/transaction/fixedScript/musig2.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/musig2.js +2 -0
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts +30 -0
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/parseOutput.js +210 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +9 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.js +228 -0
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts +10 -0
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/replayProtection.js +38 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +27 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +121 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +31 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signTransaction.js +47 -0
- package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts +21 -0
- package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/verifyTransaction.js +176 -0
- package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts +9 -0
- package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
- package/dist/esm/transaction/getPayGoVerificationPubkey.js +17 -0
- package/dist/esm/transaction/index.d.ts +9 -0
- package/dist/esm/transaction/index.d.ts.map +1 -0
- package/dist/esm/transaction/index.js +9 -0
- package/dist/esm/transaction/outputDifference.d.ts +44 -0
- package/dist/esm/transaction/outputDifference.d.ts.map +1 -0
- package/dist/esm/transaction/outputDifference.js +45 -0
- package/dist/esm/transaction/parseTransaction.d.ts +5 -0
- package/dist/esm/transaction/parseTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/parseTransaction.js +12 -0
- package/dist/esm/transaction/recipient.d.ts +76 -0
- package/dist/esm/transaction/recipient.d.ts.map +1 -0
- package/dist/esm/transaction/recipient.js +120 -0
- package/dist/esm/transaction/signTransaction.d.ts +18 -0
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/signTransaction.js +73 -0
- package/dist/esm/transaction/types.d.ts +47 -0
- package/dist/esm/transaction/types.d.ts.map +1 -0
- package/dist/esm/transaction/types.js +2 -0
- package/dist/esm/transaction/verifyTransaction.d.ts +5 -0
- package/dist/esm/transaction/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/verifyTransaction.js +14 -0
- package/dist/esm/unspent.d.ts +59 -0
- package/dist/esm/unspent.d.ts.map +1 -0
- package/dist/esm/unspent.js +15 -0
- package/dist/esm/verifyKey.d.ts +22 -0
- package/dist/esm/verifyKey.d.ts.map +1 -0
- package/dist/esm/verifyKey.js +102 -0
- package/dist/esm/wallet.d.ts +15 -0
- package/dist/esm/wallet.d.ts.map +1 -0
- package/dist/esm/wallet.js +5 -0
- package/package.json +49 -20
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -253
- package/dist/src/abstractUtxoCoin.d.ts +0 -392
- package/dist/src/abstractUtxoCoin.d.ts.map +0 -1
- package/dist/src/abstractUtxoCoin.js +0 -931
- package/dist/src/config.js +0 -14
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -18
- package/dist/src/parseOutput.d.ts +0 -22
- package/dist/src/parseOutput.d.ts.map +0 -1
- package/dist/src/parseOutput.js +0 -181
- package/dist/src/recovery/RecoveryProvider.d.ts.map +0 -1
- package/dist/src/recovery/RecoveryProvider.js +0 -24
- package/dist/src/recovery/backupKeyRecovery.d.ts +0 -62
- package/dist/src/recovery/backupKeyRecovery.d.ts.map +0 -1
- package/dist/src/recovery/backupKeyRecovery.js +0 -293
- package/dist/src/recovery/baseApi.d.ts.map +0 -1
- package/dist/src/recovery/baseApi.js +0 -73
- package/dist/src/recovery/coingeckoApi.d.ts.map +0 -1
- package/dist/src/recovery/coingeckoApi.js +0 -47
- package/dist/src/recovery/crossChainRecovery.d.ts.map +0 -1
- package/dist/src/recovery/crossChainRecovery.js +0 -294
- package/dist/src/recovery/mempoolApi.js +0 -33
- package/dist/src/recovery/smartbitApi.d.ts +0 -11
- package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
- package/dist/src/recovery/smartbitApi.js +0 -36
- package/dist/src/replayProtection.d.ts +0 -4
- package/dist/src/replayProtection.d.ts.map +0 -1
- package/dist/src/replayProtection.js +0 -21
- package/dist/src/sign.d.ts +0 -31
- package/dist/src/sign.d.ts.map +0 -1
- package/dist/src/sign.js +0 -104
- package/dist/tsconfig.tsbuildinfo +0 -8213
- /package/dist/{src → cjs/src}/config.d.ts +0 -0
- /package/dist/{src → cjs/src}/recovery/mempoolApi.d.ts +0 -0
- /package/dist/{src → esm}/config.d.ts.map +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toBaseParsedTransactionOutputsFromPsbt = toBaseParsedTransactionOutputsFromPsbt;
|
|
4
|
+
exports.parse = parse;
|
|
5
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
6
|
+
const keychains_1 = require("../../keychains");
|
|
7
|
+
const descriptor_1 = require("../../descriptor");
|
|
8
|
+
const outputDifference_1 = require("../outputDifference");
|
|
9
|
+
const decode_1 = require("../decode");
|
|
10
|
+
function sumValues(arr) {
|
|
11
|
+
return arr.reduce((sum, e) => sum + e.value, 0n);
|
|
12
|
+
}
|
|
13
|
+
function toRecipientOutput(recipient, addressCodec) {
|
|
14
|
+
return {
|
|
15
|
+
address: recipient.address,
|
|
16
|
+
value: recipient.amount === 'max' ? 'max' : BigInt(recipient.amount),
|
|
17
|
+
script: addressCodec.fromExtendedAddressFormatToScript(recipient.address),
|
|
18
|
+
scriptId: undefined, // Recipients are external outputs
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function parseOutputsWithPsbt(psbt, descriptorMap, recipientOutputs, addressCodec) {
|
|
22
|
+
const parsed = wasm_utxo_1.descriptorWallet.parse(psbt, descriptorMap, addressCodec.wasmName);
|
|
23
|
+
const outputs = parsed.outputs.map((output) => ({
|
|
24
|
+
...output,
|
|
25
|
+
script: Buffer.from(output.script),
|
|
26
|
+
}));
|
|
27
|
+
const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
|
|
28
|
+
const outputDiffs = (0, outputDifference_1.outputDifferencesWithExpected)(outputs, recipientOutputs);
|
|
29
|
+
return {
|
|
30
|
+
outputs,
|
|
31
|
+
changeOutputs,
|
|
32
|
+
...outputDiffs,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function toBaseOutputs(outputs, addressCodec) {
|
|
36
|
+
return outputs.map((o) => ({
|
|
37
|
+
address: addressCodec.toExtendedAddressFormat(o.script),
|
|
38
|
+
amount: o.value === 'max' ? 'max' : BigInt(o.value),
|
|
39
|
+
external: o.scriptId === undefined,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitOutputs, implicitOutputs, missingOutputs }, addressCodec) {
|
|
43
|
+
const explicitExternalOutputs = explicitOutputs.filter((o) => o.scriptId === undefined);
|
|
44
|
+
const implicitExternalOutputs = implicitOutputs.filter((o) => o.scriptId === undefined);
|
|
45
|
+
return {
|
|
46
|
+
outputs: toBaseOutputs(outputs, addressCodec),
|
|
47
|
+
changeOutputs: toBaseOutputs(changeOutputs, addressCodec),
|
|
48
|
+
explicitExternalOutputs: toBaseOutputs(explicitExternalOutputs, addressCodec),
|
|
49
|
+
explicitExternalSpendAmount: sumValues(explicitExternalOutputs),
|
|
50
|
+
implicitExternalOutputs: toBaseOutputs(implicitExternalOutputs, addressCodec),
|
|
51
|
+
implicitExternalSpendAmount: sumValues(implicitExternalOutputs),
|
|
52
|
+
missingOutputs: toBaseOutputs(missingOutputs, addressCodec),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, addressCodec) {
|
|
56
|
+
const wasmPsbt = psbt instanceof wasm_utxo_1.Psbt ? psbt : wasm_utxo_1.Psbt.deserialize(psbt);
|
|
57
|
+
return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(wasmPsbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, addressCodec)), addressCodec), addressCodec);
|
|
58
|
+
}
|
|
59
|
+
function parse(coin, wallet, params, addressCodec = coin.addressCodec) {
|
|
60
|
+
if (params.txParams.allowExternalChangeAddress) {
|
|
61
|
+
throw new Error('allowExternalChangeAddress is not supported for descriptor wallets');
|
|
62
|
+
}
|
|
63
|
+
if (params.txParams.changeAddress) {
|
|
64
|
+
throw new Error('changeAddress is not supported for descriptor wallets');
|
|
65
|
+
}
|
|
66
|
+
const keychains = params.verification?.keychains;
|
|
67
|
+
if (!keychains || !keychains_1.UtxoNamedKeychains.is(keychains)) {
|
|
68
|
+
throw new Error('keychain is required for descriptor wallets');
|
|
69
|
+
}
|
|
70
|
+
const { recipients } = params.txParams;
|
|
71
|
+
if (!recipients) {
|
|
72
|
+
throw new Error('recipients is required');
|
|
73
|
+
}
|
|
74
|
+
const wasmPsbt = (0, decode_1.decodeDescriptorPsbt)(params.txPrebuild);
|
|
75
|
+
const walletKeys = (0, keychains_1.toBip32Triple)(keychains);
|
|
76
|
+
const descriptorMap = (0, descriptor_1.getDescriptorMapFromWallet)(wallet, walletKeys, (0, descriptor_1.getPolicyForEnv)(params.wallet.bitgo.env));
|
|
77
|
+
return {
|
|
78
|
+
...toBaseParsedTransactionOutputsFromPsbt(wasmPsbt, descriptorMap, recipients, addressCodec),
|
|
79
|
+
keychains,
|
|
80
|
+
keySignatures: (0, keychains_1.getKeySignatures)(wallet) ?? {},
|
|
81
|
+
customChange: undefined,
|
|
82
|
+
needsCustomChangeKeySignatureVerification: false,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJGQSx3RkFnQkM7QUFPRCxzQkE4QkM7QUEvSUQsZ0RBQTBEO0FBSTFELCtDQUFzRjtBQUN0RixpREFBK0U7QUFHL0UsMERBQWtHO0FBQ2xHLHNDQUFpRDtBQUVqRCxTQUFTLFNBQVMsQ0FBQyxHQUF3QjtJQUN6QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUUQsU0FBUyxpQkFBaUIsQ0FBQyxTQUFnQyxFQUFFLFlBQTBCO0lBQ3JGLE9BQU87UUFDTCxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87UUFDMUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sRUFBRSxZQUFZLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUN6RSxRQUFRLEVBQUUsU0FBUyxFQUFFLGtDQUFrQztLQUN4RCxDQUFDO0FBQ0osQ0FBQztBQVFELFNBQVMsb0JBQW9CLENBQzNCLElBQVUsRUFDVixhQUE2QyxFQUM3QyxnQkFBbUMsRUFDbkMsWUFBMEI7SUFFMUIsTUFBTSxNQUFNLEdBQUcsNEJBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sT0FBTyxHQUFtQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENB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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFBzYnQsIGRlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IEJhc2VPdXRwdXQsIEJhc2VQYXJzZWRUcmFuc2FjdGlvbiwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldEtleVNpZ25hdHVyZXMsIHRvQmlwMzJUcmlwbGUsIFV0eG9OYW1lZEtleWNoYWlucyB9IGZyb20gJy4uLy4uL2tleWNoYWlucyc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCwgZ2V0UG9saWN5Rm9yRW52IH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBJRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3IvZGVzY3JpcHRvcldhbGxldCc7XG5pbXBvcnQgeyBBZGRyZXNzQ29kZWMgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHsgb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQsIE91dHB1dERpZmZlcmVuY2VXaXRoRXhwZWN0ZWQgfSBmcm9tICcuLi9vdXRwdXREaWZmZXJlbmNlJztcbmltcG9ydCB7IGRlY29kZURlc2NyaXB0b3JQc2J0IH0gZnJvbSAnLi4vZGVjb2RlJztcblxuZnVuY3Rpb24gc3VtVmFsdWVzKGFycjogeyB2YWx1ZTogYmlnaW50IH1bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUudmFsdWUsIDBuKTtcbn1cblxudHlwZSBQYXJzZWRPdXRwdXQgPSBPbWl0PGRlc2NyaXB0b3JXYWxsZXQuUGFyc2VkT3V0cHV0LCAnc2NyaXB0Jz4gJiB7IHNjcmlwdDogQnVmZmVyIH07XG5cbmV4cG9ydCB0eXBlIFJlY2lwaWVudE91dHB1dCA9IE9taXQ8UGFyc2VkT3V0cHV0LCAndmFsdWUnPiAmIHtcbiAgdmFsdWU6IGJpZ2ludCB8ICdtYXgnO1xufTtcblxuZnVuY3Rpb24gdG9SZWNpcGllbnRPdXRwdXQocmVjaXBpZW50OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjKTogUmVjaXBpZW50T3V0cHV0IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICB2YWx1ZTogcmVjaXBpZW50LmFtb3VudCA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludChyZWNpcGllbnQuYW1vdW50KSxcbiAgICBzY3JpcHQ6IGFkZHJlc3NDb2RlYy5mcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQocmVjaXBpZW50LmFkZHJlc3MpLFxuICAgIHNjcmlwdElkOiB1bmRlZmluZWQsIC8vIFJlY2lwaWVudHMgYXJlIGV4dGVybmFsIG91dHB1dHNcbiAgfTtcbn1cblxuLy8gVE9ETyhCVEMtMTY5Nyk6IGFsbG93IG91dHB1dHMgd2l0aCBgdmFsdWU6ICdtYXgnYCBoZXJlXG50eXBlIFBhcnNlZE91dHB1dHMgPSBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkPFBhcnNlZE91dHB1dCwgUmVjaXBpZW50T3V0cHV0PiAmIHtcbiAgb3V0cHV0czogUGFyc2VkT3V0cHV0W107XG4gIGNoYW5nZU91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xufTtcblxuZnVuY3Rpb24gcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gIHBzYnQ6IFBzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50T3V0cHV0czogUmVjaXBpZW50T3V0cHV0W10sXG4gIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjXG4pOiBQYXJzZWRPdXRwdXRzIHtcbiAgY29uc3QgcGFyc2VkID0gZGVzY3JpcHRvcldhbGxldC5wYXJzZShwc2J0LCBkZXNjcmlwdG9yTWFwLCBhZGRyZXNzQ29kZWMud2FzbU5hbWUpO1xuICBjb25zdCBvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSA9IHBhcnNlZC5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiAoe1xuICAgIC4uLm91dHB1dCxcbiAgICBzY3JpcHQ6IEJ1ZmZlci5mcm9tKG91dHB1dC5zY3JpcHQpLFxuICB9KSk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3Qgb3V0cHV0RGlmZnMgPSBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZChvdXRwdXRzLCByZWNpcGllbnRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzLFxuICAgIGNoYW5nZU91dHB1dHMsXG4gICAgLi4ub3V0cHV0RGlmZnMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUGFyc2VkT3V0cHV0W10sIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjKTogQmFzZU91dHB1dDxiaWdpbnQ+W107XG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRzKG91dHB1dHM6IFJlY2lwaWVudE91dHB1dFtdLCBhZGRyZXNzQ29kZWM6IEFkZHJlc3NDb2RlYyk6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+W107XG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRzKFxuICBvdXRwdXRzOiAoUGFyc2VkT3V0cHV0IHwgUmVjaXBpZW50T3V0cHV0KVtdLFxuICBhZGRyZXNzQ29kZWM6IEFkZHJlc3NDb2RlY1xuKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSB7XG4gIHJldHVybiBvdXRwdXRzLm1hcChcbiAgICAobyk6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+ID0+ICh7XG4gICAgICBhZGRyZXNzOiBhZGRyZXNzQ29kZWMudG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQoby5zY3JpcHQpLFxuICAgICAgYW1vdW50OiBvLnZhbHVlID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KG8udmFsdWUpLFxuICAgICAgZXh0ZXJuYWw6IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXRzQmlnSW50ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+PjtcblxuZnVuY3Rpb24gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICB7IG91dHB1dHMsIGNoYW5nZU91dHB1dHMsIGV4cGxpY2l0T3V0cHV0cywgaW1wbGljaXRPdXRwdXRzLCBtaXNzaW5nT3V0cHV0cyB9OiBQYXJzZWRPdXRwdXRzLFxuICBhZGRyZXNzQ29kZWM6IEFkZHJlc3NDb2RlY1xuKTogUGFyc2VkT3V0cHV0c0JpZ0ludCB7XG4gIGNvbnN0IGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzID0gZXhwbGljaXRPdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgaW1wbGljaXRFeHRlcm5hbE91dHB1dHMgPSBpbXBsaWNpdE91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICByZXR1cm4ge1xuICAgIG91dHB1dHM6IHRvQmFzZU91dHB1dHMob3V0cHV0cywgYWRkcmVzc0NvZGVjKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGNoYW5nZU91dHB1dHMsIGFkZHJlc3NDb2RlYyksXG4gICAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMsIGFkZHJlc3NDb2RlYyksXG4gICAgZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50OiBzdW1WYWx1ZXMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMpLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzLCBhZGRyZXNzQ29kZWMpLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBtaXNzaW5nT3V0cHV0czogdG9CYXNlT3V0cHV0cyhtaXNzaW5nT3V0cHV0cywgYWRkcmVzc0NvZGVjKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KFxuICBwc2J0OiBQc2J0IHwgVWludDhBcnJheSxcbiAgZGVzY3JpcHRvck1hcDogZGVzY3JpcHRvcldhbGxldC5EZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSxcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWNcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICBjb25zdCB3YXNtUHNidCA9IHBzYnQgaW5zdGFuY2VvZiBQc2J0ID8gcHNidCA6IFBzYnQuZGVzZXJpYWxpemUocHNidCk7XG4gIHJldHVybiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMoXG4gICAgcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gICAgICB3YXNtUHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgYWRkcmVzc0NvZGVjKSksXG4gICAgICBhZGRyZXNzQ29kZWNcbiAgICApLFxuICAgIGFkZHJlc3NDb2RlY1xuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gPSBCYXNlUGFyc2VkVHJhbnNhY3Rpb248XG4gIFRBbW91bnQsXG4gIEJhc2VPdXRwdXQ8VEFtb3VudCB8ICdtYXgnPlxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB3YWxsZXQ6IElEZXNjcmlwdG9yV2FsbGV0LFxuICBwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zPG51bWJlciB8IGJpZ2ludD4sXG4gIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjID0gY29pbi5hZGRyZXNzQ29kZWNcbik6IFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+IHtcbiAgaWYgKHBhcmFtcy50eFBhcmFtcy5hbGxvd0V4dGVybmFsQ2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MgaXMgbm90IHN1cHBvcnRlZCBmb3IgZGVzY3JpcHRvciB3YWxsZXRzJyk7XG4gIH1cbiAgaWYgKHBhcmFtcy50eFBhcmFtcy5jaGFuZ2VBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IGtleWNoYWlucyA9IHBhcmFtcy52ZXJpZmljYXRpb24/LmtleWNoYWlucztcbiAgaWYgKCFrZXljaGFpbnMgfHwgIVV0eG9OYW1lZEtleWNoYWlucy5pcyhrZXljaGFpbnMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXljaGFpbiBpcyByZXF1aXJlZCBmb3IgZGVzY3JpcHRvciB3YWxsZXRzJyk7XG4gIH1cbiAgY29uc3QgeyByZWNpcGllbnRzIH0gPSBwYXJhbXMudHhQYXJhbXM7XG4gIGlmICghcmVjaXBpZW50cykge1xuICAgIHRocm93IG5ldyBFcnJvcigncmVjaXBpZW50cyBpcyByZXF1aXJlZCcpO1xuICB9XG4gIGNvbnN0IHdhc21Qc2J0ID0gZGVjb2RlRGVzY3JpcHRvclBzYnQocGFyYW1zLnR4UHJlYnVpbGQpO1xuICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShrZXljaGFpbnMpO1xuICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYocGFyYW1zLndhbGxldC5iaXRnby5lbnYpKTtcbiAgcmV0dXJuIHtcbiAgICAuLi50b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidCh3YXNtUHNidCwgZGVzY3JpcHRvck1hcCwgcmVjaXBpZW50cywgYWRkcmVzc0NvZGVjKSxcbiAgICBrZXljaGFpbnMsXG4gICAga2V5U2lnbmF0dXJlczogZ2V0S2V5U2lnbmF0dXJlcyh3YWxsZXQpID8/IHt9LFxuICAgIGN1c3RvbUNoYW5nZTogdW5kZWZpbmVkLFxuICAgIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uOiBmYWxzZSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
|
|
2
|
+
import { BaseOutput, BaseParsedTransaction } from '../types';
|
|
3
|
+
import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
|
|
4
|
+
import { AddressCodec } from '../recipient';
|
|
5
|
+
import { ParsedDescriptorTransaction } from './parse';
|
|
6
|
+
type AmountType = 'number' | 'bigint' | 'string';
|
|
7
|
+
export declare function toAmountType(v: number | bigint | string, t: AmountType): number | bigint | string;
|
|
8
|
+
type AmountTypeOptions = {
|
|
9
|
+
amountTypeBaseOutput: AmountType;
|
|
10
|
+
amountTypeAggregate: AmountType;
|
|
11
|
+
};
|
|
12
|
+
export declare function parsedDescriptorTransactionToTNumber<TAmount extends number | bigint, TOutput>(obj: ParsedDescriptorTransaction<bigint>, params: AmountTypeOptions): BaseParsedTransaction<TAmount, TOutput>;
|
|
13
|
+
export declare function parseToAmountType<TAmount extends number | bigint>(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<TAmount>, addressCodec?: AddressCodec): BaseParsedTransaction<TAmount, BaseOutput<string>>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=parseToAmountType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseToAmountType.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/parseToAmountType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAS,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE7D,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAYjG;AAED,KAAK,iBAAiB,GAAG;IACvB,oBAAoB,EAAE,UAAU,CAAC;IACjC,mBAAmB,EAAE,UAAU,CAAC;CACjC,CAAC;AAyCF,wBAAgB,oCAAoC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,EAC3F,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,iBAAiB,GACxB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAIzC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACxC,YAAY,GAAE,YAAgC,GAC7C,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAKpD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toAmountType = toAmountType;
|
|
4
|
+
exports.parsedDescriptorTransactionToTNumber = parsedDescriptorTransactionToTNumber;
|
|
5
|
+
exports.parseToAmountType = parseToAmountType;
|
|
6
|
+
const parse_1 = require("./parse");
|
|
7
|
+
function toAmountType(v, t) {
|
|
8
|
+
if (v === 'max') {
|
|
9
|
+
return v;
|
|
10
|
+
}
|
|
11
|
+
switch (t) {
|
|
12
|
+
case 'number':
|
|
13
|
+
return Number(v);
|
|
14
|
+
case 'bigint':
|
|
15
|
+
return BigInt(v);
|
|
16
|
+
case 'string':
|
|
17
|
+
return String(v);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function baseOutputToTNumber(output, amountType) {
|
|
21
|
+
return {
|
|
22
|
+
address: output.address,
|
|
23
|
+
amount: toAmountType(output.amount, amountType),
|
|
24
|
+
external: output.external,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function entryToTNumber(k, v, params) {
|
|
28
|
+
switch (k) {
|
|
29
|
+
case 'outputs':
|
|
30
|
+
case 'changeOutputs':
|
|
31
|
+
case 'explicitExternalOutputs':
|
|
32
|
+
case 'implicitExternalOutputs':
|
|
33
|
+
case 'missingOutputs':
|
|
34
|
+
if (v === undefined) {
|
|
35
|
+
return [k, v];
|
|
36
|
+
}
|
|
37
|
+
if (Array.isArray(v)) {
|
|
38
|
+
return [k, v.map((o) => baseOutputToTNumber(o, params.amountTypeBaseOutput))];
|
|
39
|
+
}
|
|
40
|
+
throw new Error('expected array');
|
|
41
|
+
case 'explicitExternalSpendAmount':
|
|
42
|
+
case 'implicitExternalSpendAmount':
|
|
43
|
+
if (typeof v !== 'bigint') {
|
|
44
|
+
throw new Error('expected bigint');
|
|
45
|
+
}
|
|
46
|
+
return [k, toAmountType(v, params.amountTypeAggregate)];
|
|
47
|
+
default:
|
|
48
|
+
return [k, v];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function parsedDescriptorTransactionToTNumber(obj, params) {
|
|
52
|
+
return Object.fromEntries(Object.entries(obj).map(([k, v]) => entryToTNumber(k, v, params)));
|
|
53
|
+
}
|
|
54
|
+
function parseToAmountType(coin, wallet, params, addressCodec = coin.addressCodec) {
|
|
55
|
+
return parsedDescriptorTransactionToTNumber((0, parse_1.parse)(coin, wallet, params, addressCodec), {
|
|
56
|
+
amountTypeAggregate: coin.amountType,
|
|
57
|
+
amountTypeBaseOutput: 'string',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUb0Ftb3VudFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZVRvQW1vdW50VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLG9DQVlDO0FBOENELG9GQU9DO0FBRUQsOENBVUM7QUFqRkQsbUNBQTZEO0FBSTdELFNBQWdCLFlBQVksQ0FBQyxDQUEyQixFQUFFLENBQWE7SUFDckUsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDaEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLEtBQUssUUFBUTtZQUNYLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBT0QsU0FBUyxtQkFBbUIsQ0FDMUIsTUFBa0MsRUFDbEMsVUFBc0I7SUFFdEIsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztRQUN2QixNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFZO1FBQzFELFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtLQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUdyQixDQUFJLEVBQUUsQ0FBSSxFQUFFLE1BQXlCO0lBQ3JDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDVixLQUFLLFNBQVMsQ0FBQztRQUNmLEtBQUssZUFBZSxDQUFDO1FBQ3JCLEtBQUsseUJBQXlCLENBQUM7UUFDL0IsS0FBSyx5QkFBeUIsQ0FBQztRQUMvQixLQUFLLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoQixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFNLENBQUMsQ0FBQztZQUNyRixDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssNkJBQTZCLENBQUM7UUFDbkMsS0FBSyw2QkFBNkI7WUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFNLENBQUMsQ0FBQztRQUMvRDtZQUNFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFnQixvQ0FBb0MsQ0FDbEQsR0FBd0MsRUFDeEMsTUFBeUI7SUFFekIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBOEMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDcEUsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLElBQXNCLEVBQ3RCLE1BQXlCLEVBQ3pCLE1BQXdDLEVBQ3hDLGVBQTZCLElBQUksQ0FBQyxZQUFZO0lBRTlDLE9BQU8sb0NBQW9DLENBQThCLElBQUEsYUFBSyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFO1FBQ2xILG1CQUFtQixFQUFFLElBQUksQ0FBQyxVQUFVO1FBQ3BDLG9CQUFvQixFQUFFLFFBQVE7S0FDL0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBCYXNlT3V0cHV0LCBCYXNlUGFyc2VkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBJRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3IvZGVzY3JpcHRvcldhbGxldCc7XG5pbXBvcnQgeyBBZGRyZXNzQ29kZWMgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuXG5pbXBvcnQgeyBwYXJzZSwgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi9wYXJzZSc7XG5cbnR5cGUgQW1vdW50VHlwZSA9ICdudW1iZXInIHwgJ2JpZ2ludCcgfCAnc3RyaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQW1vdW50VHlwZSh2OiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcsIHQ6IEFtb3VudFR5cGUpOiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcge1xuICBpZiAodiA9PT0gJ21heCcpIHtcbiAgICByZXR1cm4gdjtcbiAgfVxuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIE51bWJlcih2KTtcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgcmV0dXJuIEJpZ0ludCh2KTtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgfVxufVxuXG50eXBlIEFtb3VudFR5cGVPcHRpb25zID0ge1xuICBhbW91bnRUeXBlQmFzZU91dHB1dDogQW1vdW50VHlwZTtcbiAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogQW1vdW50VHlwZTtcbn07XG5cbmZ1bmN0aW9uIGJhc2VPdXRwdXRUb1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG91dHB1dDogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4sXG4gIGFtb3VudFR5cGU6IEFtb3VudFR5cGVcbik6IEJhc2VPdXRwdXQ8VEFtb3VudD4ge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC5hbW91bnQsIGFtb3VudFR5cGUpIGFzIFRBbW91bnQsXG4gICAgZXh0ZXJuYWw6IG91dHB1dC5leHRlcm5hbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZW50cnlUb1ROdW1iZXI8XG4gIEsgZXh0ZW5kcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PixcbiAgViBleHRlbmRzIFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+W0tdXG4+KGs6IEssIHY6IFYsIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnMpOiBbSywgVl0ge1xuICBzd2l0Y2ggKGspIHtcbiAgICBjYXNlICdvdXRwdXRzJzpcbiAgICBjYXNlICdjaGFuZ2VPdXRwdXRzJzpcbiAgICBjYXNlICdleHBsaWNpdEV4dGVybmFsT3V0cHV0cyc6XG4gICAgY2FzZSAnaW1wbGljaXRFeHRlcm5hbE91dHB1dHMnOlxuICAgIGNhc2UgJ21pc3NpbmdPdXRwdXRzJzpcbiAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtrLCB2XTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgIHJldHVybiBbaywgdi5tYXAoKG8pID0+IGJhc2VPdXRwdXRUb1ROdW1iZXIobywgcGFyYW1zLmFtb3VudFR5cGVCYXNlT3V0cHV0KSkgYXMgVl07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGFycmF5Jyk7XG4gICAgY2FzZSAnZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50JzpcbiAgICBjYXNlICdpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQnOlxuICAgICAgaWYgKHR5cGVvZiB2ICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGJpZ2ludCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtrLCB0b0Ftb3VudFR5cGUodiwgcGFyYW1zLmFtb3VudFR5cGVBZ2dyZWdhdGUpIGFzIFZdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW2ssIHZdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb25Ub1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4oXG4gIG9iajogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnNcbik6IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUQW1vdW50LCBUT3V0cHV0PiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5tYXAoKFtrLCB2XSkgPT4gZW50cnlUb1ROdW1iZXIoayBhcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiwgdiwgcGFyYW1zKSlcbiAgKSBhcyBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VEFtb3VudCwgVE91dHB1dD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvQW1vdW50VHlwZTxUQW1vdW50IGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUQW1vdW50PixcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWMgPSBjb2luLmFkZHJlc3NDb2RlY1xuKTogQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ge1xuICByZXR1cm4gcGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uVG9UTnVtYmVyPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ocGFyc2UoY29pbiwgd2FsbGV0LCBwYXJhbXMsIGFkZHJlc3NDb2RlYyksIHtcbiAgICBhbW91bnRUeXBlQWdncmVnYXRlOiBjb2luLmFtb3VudFR5cGUsXG4gICAgYW1vdW50VHlwZUJhc2VPdXRwdXQ6ICdzdHJpbmcnLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipient.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/recipient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcmVjaXBpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWNpcGllbnQgPSB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7XG59O1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Psbt, descriptorWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
type SignerKey = Parameters<typeof descriptorWallet.signWithKey>[1];
|
|
3
|
+
export declare class ErrorUnknownInput extends Error {
|
|
4
|
+
vin: number;
|
|
5
|
+
constructor(vin: number);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Sign a PSBT with the given keychain.
|
|
9
|
+
*
|
|
10
|
+
* Checks the descriptor map for each input in the PSBT. If the input is not
|
|
11
|
+
* found in the descriptor map, the behavior is determined by the `onUnknownInput`
|
|
12
|
+
* parameter.
|
|
13
|
+
*
|
|
14
|
+
* @param psbt - psbt to sign
|
|
15
|
+
* @param descriptorMap - map of descriptor name to descriptor
|
|
16
|
+
* @param signerKey - key to sign with (BIP32 or ECPair)
|
|
17
|
+
* @param params - onUnknownInput: 'throw' | 'skip' | 'sign'.
|
|
18
|
+
* Determines what to do when an input is not found in the
|
|
19
|
+
* descriptor map.
|
|
20
|
+
*/
|
|
21
|
+
export declare function signPsbt(psbt: Psbt, descriptorMap: descriptorWallet.DescriptorMap, signerKey: SignerKey, params: {
|
|
22
|
+
onUnknownInput: 'throw' | 'skip' | 'sign';
|
|
23
|
+
}): void;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=signPsbt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/signPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CAG/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,CAAC,aAAa,EAC7C,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;IACN,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC3C,GACA,IAAI,CAiBN"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorUnknownInput = void 0;
|
|
4
|
+
exports.signPsbt = signPsbt;
|
|
5
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
6
|
+
class ErrorUnknownInput extends Error {
|
|
7
|
+
constructor(vin) {
|
|
8
|
+
super(`missing descriptor for input ${vin}`);
|
|
9
|
+
this.vin = vin;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ErrorUnknownInput = ErrorUnknownInput;
|
|
13
|
+
/**
|
|
14
|
+
* Sign a PSBT with the given keychain.
|
|
15
|
+
*
|
|
16
|
+
* Checks the descriptor map for each input in the PSBT. If the input is not
|
|
17
|
+
* found in the descriptor map, the behavior is determined by the `onUnknownInput`
|
|
18
|
+
* parameter.
|
|
19
|
+
*
|
|
20
|
+
* @param psbt - psbt to sign
|
|
21
|
+
* @param descriptorMap - map of descriptor name to descriptor
|
|
22
|
+
* @param signerKey - key to sign with (BIP32 or ECPair)
|
|
23
|
+
* @param params - onUnknownInput: 'throw' | 'skip' | 'sign'.
|
|
24
|
+
* Determines what to do when an input is not found in the
|
|
25
|
+
* descriptor map.
|
|
26
|
+
*/
|
|
27
|
+
function signPsbt(psbt, descriptorMap, signerKey, params) {
|
|
28
|
+
const inputs = psbt.getInputs();
|
|
29
|
+
const unknownInputs = inputs
|
|
30
|
+
.map((input, vin) => ({ input, vin }))
|
|
31
|
+
.filter(({ input }) => !wasm_utxo_1.descriptorWallet.findDescriptorForInput(input, descriptorMap));
|
|
32
|
+
if (unknownInputs.length > 0) {
|
|
33
|
+
switch (params.onUnknownInput) {
|
|
34
|
+
case 'skip':
|
|
35
|
+
return;
|
|
36
|
+
case 'throw':
|
|
37
|
+
throw new ErrorUnknownInput(unknownInputs[0].vin);
|
|
38
|
+
case 'sign':
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
wasm_utxo_1.descriptorWallet.signWithKey(psbt, signerKey);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9zaWduUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3QkEsNEJBd0JDO0FBaERELGdEQUEwRDtBQUkxRCxNQUFhLGlCQUFrQixTQUFRLEtBQUs7SUFDMUMsWUFBbUIsR0FBVztRQUM1QixLQUFLLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFENUIsUUFBRyxHQUFILEdBQUcsQ0FBUTtJQUU5QixDQUFDO0NBQ0Y7QUFKRCw4Q0FJQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixRQUFRLENBQ3RCLElBQVUsRUFDVixhQUE2QyxFQUM3QyxTQUFvQixFQUNwQixNQUVDO0lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sYUFBYSxHQUFHLE1BQU07U0FDekIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsNEJBQWdCLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFekYsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLFFBQVEsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzlCLEtBQUssTUFBTTtnQkFDVCxPQUFPO1lBQ1QsS0FBSyxPQUFPO2dCQUNWLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsS0FBSyxNQUFNO2dCQUNULE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNELDRCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBzYnQsIGRlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxudHlwZSBTaWduZXJLZXkgPSBQYXJhbWV0ZXJzPHR5cGVvZiBkZXNjcmlwdG9yV2FsbGV0LnNpZ25XaXRoS2V5PlsxXTtcblxuZXhwb3J0IGNsYXNzIEVycm9yVW5rbm93bklucHV0IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmluOiBudW1iZXIpIHtcbiAgICBzdXBlcihgbWlzc2luZyBkZXNjcmlwdG9yIGZvciBpbnB1dCAke3Zpbn1gKTtcbiAgfVxufVxuXG4vKipcbiAqIFNpZ24gYSBQU0JUIHdpdGggdGhlIGdpdmVuIGtleWNoYWluLlxuICpcbiAqIENoZWNrcyB0aGUgZGVzY3JpcHRvciBtYXAgZm9yIGVhY2ggaW5wdXQgaW4gdGhlIFBTQlQuIElmIHRoZSBpbnB1dCBpcyBub3RcbiAqIGZvdW5kIGluIHRoZSBkZXNjcmlwdG9yIG1hcCwgdGhlIGJlaGF2aW9yIGlzIGRldGVybWluZWQgYnkgdGhlIGBvblVua25vd25JbnB1dGBcbiAqIHBhcmFtZXRlci5cbiAqXG4gKiBAcGFyYW0gcHNidCAtIHBzYnQgdG8gc2lnblxuICogQHBhcmFtIGRlc2NyaXB0b3JNYXAgLSBtYXAgb2YgZGVzY3JpcHRvciBuYW1lIHRvIGRlc2NyaXB0b3JcbiAqIEBwYXJhbSBzaWduZXJLZXkgLSBrZXkgdG8gc2lnbiB3aXRoIChCSVAzMiBvciBFQ1BhaXIpXG4gKiBAcGFyYW0gcGFyYW1zIC0gb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfCAnc2tpcCcgfCAnc2lnbicuXG4gKiAgICAgICAgICAgICAgICAgRGV0ZXJtaW5lcyB3aGF0IHRvIGRvIHdoZW4gYW4gaW5wdXQgaXMgbm90IGZvdW5kIGluIHRoZVxuICogICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblBzYnQoXG4gIHBzYnQ6IFBzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcCxcbiAgc2lnbmVyS2V5OiBTaWduZXJLZXksXG4gIHBhcmFtczoge1xuICAgIG9uVW5rbm93bklucHV0OiAndGhyb3cnIHwgJ3NraXAnIHwgJ3NpZ24nO1xuICB9XG4pOiB2b2lkIHtcbiAgY29uc3QgaW5wdXRzID0gcHNidC5nZXRJbnB1dHMoKTtcbiAgY29uc3QgdW5rbm93bklucHV0cyA9IGlucHV0c1xuICAgIC5tYXAoKGlucHV0LCB2aW4pID0+ICh7IGlucHV0LCB2aW4gfSkpXG4gICAgLmZpbHRlcigoeyBpbnB1dCB9KSA9PiAhZGVzY3JpcHRvcldhbGxldC5maW5kRGVzY3JpcHRvckZvcklucHV0KGlucHV0LCBkZXNjcmlwdG9yTWFwKSk7XG5cbiAgaWYgKHVua25vd25JbnB1dHMubGVuZ3RoID4gMCkge1xuICAgIHN3aXRjaCAocGFyYW1zLm9uVW5rbm93bklucHV0KSB7XG4gICAgICBjYXNlICdza2lwJzpcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAndGhyb3cnOlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3JVbmtub3duSW5wdXQodW5rbm93bklucHV0c1swXS52aW4pO1xuICAgICAgY2FzZSAnc2lnbic6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBkZXNjcmlwdG9yV2FsbGV0LnNpZ25XaXRoS2V5KHBzYnQsIHNpZ25lcktleSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ITransactionRecipient } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import type { Psbt, descriptorWallet } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { AbstractUtxoCoin, VerifyTransactionOptions } from '../../abstractUtxoCoin';
|
|
4
|
+
import { BaseOutput, BaseParsedTransactionOutputs } from '../types';
|
|
5
|
+
import { AddressCodec } from '../recipient';
|
|
6
|
+
export declare class ValidationError extends Error {
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class ErrorMissingOutputs extends ValidationError {
|
|
10
|
+
missingOutputs: BaseOutput<bigint | 'max'>[];
|
|
11
|
+
constructor(missingOutputs: BaseOutput<bigint | 'max'>[]);
|
|
12
|
+
}
|
|
13
|
+
export declare class ErrorImplicitExternalOutputs extends ValidationError {
|
|
14
|
+
implicitExternalOutputs: BaseOutput<bigint | 'max'>[];
|
|
15
|
+
constructor(implicitExternalOutputs: BaseOutput<bigint | 'max'>[]);
|
|
16
|
+
}
|
|
17
|
+
export declare class AggregateValidationError extends ValidationError {
|
|
18
|
+
errors: ValidationError[];
|
|
19
|
+
constructor(errors: ValidationError[]);
|
|
20
|
+
}
|
|
21
|
+
export declare function assertExpectedOutputDifference(parsedOutputs: BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>): void;
|
|
22
|
+
export declare function assertValidTransaction(psbt: Psbt | Uint8Array, descriptors: descriptorWallet.DescriptorMap, recipients: ITransactionRecipient[], addressCodec: AddressCodec): void;
|
|
23
|
+
/**
|
|
24
|
+
* Wrapper around assertValidTransaction that returns a boolean instead of throwing.
|
|
25
|
+
*
|
|
26
|
+
* We follow the AbstractUtxoCoin interface here which is a bit confused - the return value is a boolean but we
|
|
27
|
+
* also throw errors (because we actually want to know what went wrong).
|
|
28
|
+
*
|
|
29
|
+
* @param coin
|
|
30
|
+
* @param params
|
|
31
|
+
* @param descriptorMap
|
|
32
|
+
* @returns {boolean} True if verification passes
|
|
33
|
+
* @throws {TxIntentMismatchError} if transaction validation fails
|
|
34
|
+
*/
|
|
35
|
+
export declare function verifyTransaction<TNumber extends number | bigint>(coin: AbstractUtxoCoin, params: VerifyTransactionOptions<TNumber>, descriptorMap: descriptorWallet.DescriptorMap, addressCodec?: AddressCodec): Promise<boolean>;
|
|
36
|
+
//# sourceMappingURL=verifyTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/verifyTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAoC,MAAM,sBAAsB,CAAC;AAC/F,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5C,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED,qBAAa,mBAAoB,SAAQ,eAAe;IACnC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAA5C,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGhE;AAED,qBAAa,4BAA6B,SAAQ,eAAe;IAC5C,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;gBAArD,uBAAuB,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;CAGzE;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IACxC,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAG7C;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,GAC9E,IAAI,CAcN;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,IAAI,GAAG,UAAU,EACvB,WAAW,EAAE,gBAAgB,CAAC,aAAa,EAC3C,UAAU,EAAE,qBAAqB,EAAE,EACnC,YAAY,EAAE,YAAY,GACzB,IAAI,CAEN;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,EACzC,aAAa,EAAE,gBAAgB,CAAC,aAAa,EAC7C,YAAY,GAAE,YAAgC,GAC7C,OAAO,CAAC,OAAO,CAAC,CAiDlB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateValidationError = exports.ErrorImplicitExternalOutputs = exports.ErrorMissingOutputs = exports.ValidationError = void 0;
|
|
4
|
+
exports.assertExpectedOutputDifference = assertExpectedOutputDifference;
|
|
5
|
+
exports.assertValidTransaction = assertValidTransaction;
|
|
6
|
+
exports.verifyTransaction = verifyTransaction;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const decode_1 = require("../decode");
|
|
9
|
+
const parse_1 = require("./parse");
|
|
10
|
+
class ValidationError extends Error {
|
|
11
|
+
constructor(message) {
|
|
12
|
+
super(message);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.ValidationError = ValidationError;
|
|
16
|
+
class ErrorMissingOutputs extends ValidationError {
|
|
17
|
+
constructor(missingOutputs) {
|
|
18
|
+
super(`missing outputs (count=${missingOutputs.length})`);
|
|
19
|
+
this.missingOutputs = missingOutputs;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ErrorMissingOutputs = ErrorMissingOutputs;
|
|
23
|
+
class ErrorImplicitExternalOutputs extends ValidationError {
|
|
24
|
+
constructor(implicitExternalOutputs) {
|
|
25
|
+
super(`unexpected implicit external outputs (count=${implicitExternalOutputs.length})`);
|
|
26
|
+
this.implicitExternalOutputs = implicitExternalOutputs;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ErrorImplicitExternalOutputs = ErrorImplicitExternalOutputs;
|
|
30
|
+
class AggregateValidationError extends ValidationError {
|
|
31
|
+
constructor(errors) {
|
|
32
|
+
super(`aggregate validation error (count=${errors.length})`);
|
|
33
|
+
this.errors = errors;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.AggregateValidationError = AggregateValidationError;
|
|
37
|
+
function assertExpectedOutputDifference(parsedOutputs) {
|
|
38
|
+
const errors = [];
|
|
39
|
+
if (parsedOutputs.missingOutputs.length > 0) {
|
|
40
|
+
errors.push(new ErrorMissingOutputs(parsedOutputs.missingOutputs));
|
|
41
|
+
}
|
|
42
|
+
if (parsedOutputs.implicitExternalOutputs.length > 0) {
|
|
43
|
+
// FIXME: for paygo we need to relax this a little bit
|
|
44
|
+
errors.push(new ErrorImplicitExternalOutputs(parsedOutputs.implicitExternalOutputs));
|
|
45
|
+
}
|
|
46
|
+
if (errors.length > 0) {
|
|
47
|
+
// FIXME(BTC-1688): enable ES2021
|
|
48
|
+
// throw new AggregateError(errors);
|
|
49
|
+
throw new AggregateValidationError(errors);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function assertValidTransaction(psbt, descriptors, recipients, addressCodec) {
|
|
53
|
+
assertExpectedOutputDifference((0, parse_1.toBaseParsedTransactionOutputsFromPsbt)(psbt, descriptors, recipients, addressCodec));
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Wrapper around assertValidTransaction that returns a boolean instead of throwing.
|
|
57
|
+
*
|
|
58
|
+
* We follow the AbstractUtxoCoin interface here which is a bit confused - the return value is a boolean but we
|
|
59
|
+
* also throw errors (because we actually want to know what went wrong).
|
|
60
|
+
*
|
|
61
|
+
* @param coin
|
|
62
|
+
* @param params
|
|
63
|
+
* @param descriptorMap
|
|
64
|
+
* @returns {boolean} True if verification passes
|
|
65
|
+
* @throws {TxIntentMismatchError} if transaction validation fails
|
|
66
|
+
*/
|
|
67
|
+
async function verifyTransaction(coin, params, descriptorMap, addressCodec = coin.addressCodec) {
|
|
68
|
+
let psbt;
|
|
69
|
+
try {
|
|
70
|
+
psbt = (0, decode_1.decodeDescriptorPsbt)(params.txPrebuild);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
const txExplanation = await sdk_core_1.TxIntentMismatchError.tryGetTxExplanation(coin, params.txPrebuild);
|
|
74
|
+
const errorDetail = e instanceof Error ? e.message : String(e);
|
|
75
|
+
throw new sdk_core_1.TxIntentMismatchError(`unexpected transaction type: ${errorDetail}`, params.reqId, [params.txParams], params.txPrebuild.txHex, txExplanation);
|
|
76
|
+
}
|
|
77
|
+
assertValidTransaction(psbt, descriptorMap, params.txParams.recipients ?? [], addressCodec);
|
|
78
|
+
const parsedOutputs = (0, parse_1.toBaseParsedTransactionOutputsFromPsbt)(psbt, descriptorMap, params.txParams.recipients ?? [], addressCodec);
|
|
79
|
+
if (params.txParams.qr) {
|
|
80
|
+
const allExternalOutputs = [...parsedOutputs.explicitExternalOutputs, ...parsedOutputs.implicitExternalOutputs];
|
|
81
|
+
if (allExternalOutputs.length > 0) {
|
|
82
|
+
const txExplanation = await sdk_core_1.TxIntentMismatchError.tryGetTxExplanation(coin, params.txPrebuild);
|
|
83
|
+
throw new sdk_core_1.TxIntentMismatchError('quantum-resistant sweep transactions must only contain wallet-internal outputs', params.reqId, [params.txParams], params.txPrebuild.txHex, txExplanation);
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
assertExpectedOutputDifference(parsedOutputs);
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci92ZXJpZnlUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQ0Esd0VBZ0JDO0FBRUQsd0RBT0M7QUFjRCw4Q0FzREM7QUEvSEQsbURBQStGO0FBTS9GLHNDQUFpRDtBQUVqRCxtQ0FBaUU7QUFFakUsTUFBYSxlQUFnQixTQUFRLEtBQUs7SUFDeEMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFKRCwwQ0FJQztBQUVELE1BQWEsbUJBQW9CLFNBQVEsZUFBZTtJQUN0RCxZQUFtQixjQUE0QztRQUM3RCxLQUFLLENBQUMsMEJBQTBCLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRHpDLG1CQUFjLEdBQWQsY0FBYyxDQUE4QjtJQUUvRCxDQUFDO0NBQ0Y7QUFKRCxrREFJQztBQUVELE1BQWEsNEJBQTZCLFNBQVEsZUFBZTtJQUMvRCxZQUFtQix1QkFBcUQ7UUFDdEUsS0FBSyxDQUFDLCtDQUErQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRHZFLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBOEI7SUFFeEUsQ0FBQztDQUNGO0FBSkQsb0VBSUM7QUFFRCxNQUFhLHdCQUF5QixTQUFRLGVBQWU7SUFDM0QsWUFBbUIsTUFBeUI7UUFDMUMsS0FBSyxDQUFDLHFDQUFxQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUQ1QyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtJQUU1QyxDQUFDO0NBQ0Y7QUFKRCw0REFJQztBQUVELFNBQWdCLDhCQUE4QixDQUM1QyxhQUErRTtJQUUvRSxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBQ3JDLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFN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RUQsOEJBQThCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFOUMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50LCBUeEludGVudE1pc21hdGNoRXJyb3IsIElCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB0eXBlIHsgUHNidCwgZGVzY3JpcHRvcldhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IEJhc2VPdXRwdXQsIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBBZGRyZXNzQ29kZWMgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHsgZGVjb2RlRGVzY3JpcHRvclBzYnQgfSBmcm9tICcuLi9kZWNvZGUnO1xuXG5pbXBvcnQgeyB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidCB9IGZyb20gJy4vcGFyc2UnO1xuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JNaXNzaW5nT3V0cHV0cyBleHRlbmRzIFZhbGlkYXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtaXNzaW5nT3V0cHV0czogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSkge1xuICAgIHN1cGVyKGBtaXNzaW5nIG91dHB1dHMgKGNvdW50PSR7bWlzc2luZ091dHB1dHMubGVuZ3RofSlgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyBleHRlbmRzIFZhbGlkYXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbXBsaWNpdEV4dGVybmFsT3V0cHV0czogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSkge1xuICAgIHN1cGVyKGB1bmV4cGVjdGVkIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKGNvdW50PSR7aW1wbGljaXRFeHRlcm5hbE91dHB1dHMubGVuZ3RofSlgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgVmFsaWRhdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yczogVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgICBzdXBlcihgYWdncmVnYXRlIHZhbGlkYXRpb24gZXJyb3IgKGNvdW50PSR7ZXJyb3JzLmxlbmd0aH0pYCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShcbiAgcGFyc2VkT3V0cHV0czogQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+PlxuKTogdm9pZCB7XG4gIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9yW10gPSBbXTtcbiAgaWYgKHBhcnNlZE91dHB1dHMubWlzc2luZ091dHB1dHMubGVuZ3RoID4gMCkge1xuICAgIGVycm9ycy5wdXNoKG5ldyBFcnJvck1pc3NpbmdPdXRwdXRzKHBhcnNlZE91dHB1dHMubWlzc2luZ091dHB1dHMpKTtcbiAgfVxuICBpZiAocGFyc2VkT3V0cHV0cy5pbXBsaWNpdEV4dGVybmFsT3V0cHV0cy5sZW5ndGggPiAwKSB7XG4gICAgLy8gRklYTUU6IGZvciBwYXlnbyB3ZSBuZWVkIHRvIHJlbGF4IHRoaXMgYSBsaXR0bGUgYml0XG4gICAgZXJyb3JzLnB1c2gobmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMocGFyc2VkT3V0cHV0cy5pbXBsaWNpdEV4dGVybmFsT3V0cHV0cykpO1xuICB9XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIC8vIEZJWE1FKEJUQy0xNjg4KTogZW5hYmxlIEVTMjAyMVxuICAgIC8vIHRocm93IG5ldyBBZ2dyZWdhdGVFcnJvcihlcnJvcnMpO1xuICAgIHRocm93IG5ldyBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IoZXJyb3JzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbihcbiAgcHNidDogUHNidCB8IFVpbnQ4QXJyYXksXG4gIGRlc2NyaXB0b3JzOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdLFxuICBhZGRyZXNzQ29kZWM6IEFkZHJlc3NDb2RlY1xuKTogdm9pZCB7XG4gIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZSh0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChwc2J0LCBkZXNjcmlwdG9ycywgcmVjaXBpZW50cywgYWRkcmVzc0NvZGVjKSk7XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuIGluc3RlYWQgb2YgdGhyb3dpbmcuXG4gKlxuICogV2UgZm9sbG93IHRoZSBBYnN0cmFjdFV0eG9Db2luIGludGVyZmFjZSBoZXJlIHdoaWNoIGlzIGEgYml0IGNvbmZ1c2VkIC0gdGhlIHJldHVybiB2YWx1ZSBpcyBhIGJvb2xlYW4gYnV0IHdlXG4gKiBhbHNvIHRocm93IGVycm9ycyAoYmVjYXVzZSB3ZSBhY3R1YWxseSB3YW50IHRvIGtub3cgd2hhdCB3ZW50IHdyb25nKS5cbiAqXG4gKiBAcGFyYW0gY29pblxuICogQHBhcmFtIHBhcmFtc1xuICogQHBhcmFtIGRlc2NyaXB0b3JNYXBcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZlcmlmaWNhdGlvbiBwYXNzZXNcbiAqIEB0aHJvd3Mge1R4SW50ZW50TWlzbWF0Y2hFcnJvcn0gaWYgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+LFxuICBkZXNjcmlwdG9yTWFwOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXAsXG4gIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjID0gY29pbi5hZGRyZXNzQ29kZWNcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBsZXQgcHNidDogUHNidDtcbiAgdHJ5IHtcbiAgICBwc2J0ID0gZGVjb2RlRGVzY3JpcHRvclBzYnQocGFyYW1zLnR4UHJlYnVpbGQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgdHhFeHBsYW5hdGlvbiA9IGF3YWl0IFR4SW50ZW50TWlzbWF0Y2hFcnJvci50cnlHZXRUeEV4cGxhbmF0aW9uKFxuICAgICAgY29pbiBhcyB1bmtub3duIGFzIElCYXNlQ29pbixcbiAgICAgIHBhcmFtcy50eFByZWJ1aWxkXG4gICAgKTtcbiAgICBjb25zdCBlcnJvckRldGFpbCA9IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKTtcbiAgICB0aHJvdyBuZXcgVHhJbnRlbnRNaXNtYXRjaEVycm9yKFxuICAgICAgYHVuZXhwZWN0ZWQgdHJhbnNhY3Rpb24gdHlwZTogJHtlcnJvckRldGFpbH1gLFxuICAgICAgcGFyYW1zLnJlcUlkLFxuICAgICAgW3BhcmFtcy50eFBhcmFtc10sXG4gICAgICBwYXJhbXMudHhQcmVidWlsZC50eEhleCxcbiAgICAgIHR4RXhwbGFuYXRpb25cbiAgICApO1xuICB9XG5cbiAgYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbihwc2J0LCBkZXNjcmlwdG9yTWFwLCBwYXJhbXMudHhQYXJhbXMucmVjaXBpZW50cyA/PyBbXSwgYWRkcmVzc0NvZGVjKTtcblxuICBjb25zdCBwYXJzZWRPdXRwdXRzID0gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQoXG4gICAgcHNidCxcbiAgICBkZXNjcmlwdG9yTWFwLFxuICAgIHBhcmFtcy50eFBhcmFtcy5yZWNpcGllbnRzID8/IFtdLFxuICAgIGFkZHJlc3NDb2RlY1xuICApO1xuXG4gIGlmIChwYXJhbXMudHhQYXJhbXMucXIpIHtcbiAgICBjb25zdCBhbGxFeHRlcm5hbE91dHB1dHMgPSBbLi4ucGFyc2VkT3V0cHV0cy5leHBsaWNpdEV4dGVybmFsT3V0cHV0cywgLi4ucGFyc2VkT3V0cHV0cy5pbXBsaWNpdEV4dGVybmFsT3V0cHV0c107XG4gICAgaWYgKGFsbEV4dGVybmFsT3V0cHV0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB0eEV4cGxhbmF0aW9uID0gYXdhaXQgVHhJbnRlbnRNaXNtYXRjaEVycm9yLnRyeUdldFR4RXhwbGFuYXRpb24oXG4gICAgICAgIGNvaW4gYXMgdW5rbm93biBhcyBJQmFzZUNvaW4sXG4gICAgICAgIHBhcmFtcy50eFByZWJ1aWxkXG4gICAgICApO1xuICAgICAgdGhyb3cgbmV3IFR4SW50ZW50TWlzbWF0Y2hFcnJvcihcbiAgICAgICAgJ3F1YW50dW0tcmVzaXN0YW50IHN3ZWVwIHRyYW5zYWN0aW9ucyBtdXN0IG9ubHkgY29udGFpbiB3YWxsZXQtaW50ZXJuYWwgb3V0cHV0cycsXG4gICAgICAgIHBhcmFtcy5yZXFJZCxcbiAgICAgICAgW3BhcmFtcy50eFBhcmFtc10sXG4gICAgICAgIHBhcmFtcy50eFByZWJ1aWxkLnR4SGV4LFxuICAgICAgICB0eEV4cGxhbmF0aW9uXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShwYXJzZWRPdXRwdXRzKTtcblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { fixedScriptWallet, Psbt as WasmPsbt } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { IWallet, Triple } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { UtxoCoinName, WasmUtxoCoinName } from '../names';
|
|
4
|
+
import type { Unspent } from '../unspent';
|
|
5
|
+
import type { TransactionExplanationUtxolibPsbt, TransactionExplanationWasm } from './fixedScript/explainTransaction';
|
|
6
|
+
import type { AddressCodec } from './recipient';
|
|
7
|
+
/**
|
|
8
|
+
* Decompose a raw transaction into useful information, such as the total amounts,
|
|
9
|
+
* change amounts, and transaction outputs.
|
|
10
|
+
*/
|
|
11
|
+
export declare function explainTx<TNumber extends number | bigint>(tx: fixedScriptWallet.BitGoPsbt | WasmPsbt, params: {
|
|
12
|
+
wallet?: IWallet;
|
|
13
|
+
pubs?: string[];
|
|
14
|
+
customChangeXpubs?: Triple<string>;
|
|
15
|
+
txInfo?: {
|
|
16
|
+
unspents?: Unspent<TNumber>[];
|
|
17
|
+
};
|
|
18
|
+
}, coinName: UtxoCoinName | WasmUtxoCoinName, addressCodec: AddressCodec): TransactionExplanationUtxolibPsbt | TransactionExplanationWasm;
|
|
19
|
+
//# sourceMappingURL=explainTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/explainTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAY,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKjE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,EAAE,iCAAiC,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGtH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACvD,EAAE,EAAE,iBAAiB,CAAC,SAAS,GAAG,QAAQ,EAC1C,MAAM,EAAE;IACN,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC;CAC5C,EACD,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EACzC,YAAY,EAAE,YAAY,GACzB,iCAAiC,GAAG,0BAA0B,CAiChE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
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.explainTx = explainTx;
|
|
37
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
38
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
39
|
+
const descriptor_1 = require("../descriptor");
|
|
40
|
+
const keychains_1 = require("../keychains");
|
|
41
|
+
const validatePolicy_1 = require("../descriptor/validatePolicy");
|
|
42
|
+
const replayProtection_1 = require("./fixedScript/replayProtection");
|
|
43
|
+
const fixedScript = __importStar(require("./fixedScript"));
|
|
44
|
+
const descriptor = __importStar(require("./descriptor"));
|
|
45
|
+
/**
|
|
46
|
+
* Decompose a raw transaction into useful information, such as the total amounts,
|
|
47
|
+
* change amounts, and transaction outputs.
|
|
48
|
+
*/
|
|
49
|
+
function explainTx(tx, params, coinName, addressCodec) {
|
|
50
|
+
if (params.wallet && (0, descriptor_1.isDescriptorWallet)(params.wallet)) {
|
|
51
|
+
if (!(tx instanceof wasm_utxo_1.Psbt)) {
|
|
52
|
+
throw new Error('descriptor wallets require PSBT format transactions');
|
|
53
|
+
}
|
|
54
|
+
if (!params.pubs || !(0, sdk_core_1.isTriple)(params.pubs)) {
|
|
55
|
+
throw new Error('pub triple is required for descriptor wallets');
|
|
56
|
+
}
|
|
57
|
+
const walletKeys = (0, keychains_1.toBip32Triple)(params.pubs);
|
|
58
|
+
const descriptors = (0, descriptor_1.getDescriptorMapFromWallet)(params.wallet, walletKeys, (0, validatePolicy_1.getPolicyForEnv)(params.wallet.bitgo.env));
|
|
59
|
+
return descriptor.explainPsbt(tx, descriptors, coinName);
|
|
60
|
+
}
|
|
61
|
+
if (tx instanceof wasm_utxo_1.fixedScriptWallet.BitGoPsbt) {
|
|
62
|
+
const pubs = params.pubs;
|
|
63
|
+
if (!pubs) {
|
|
64
|
+
throw new Error('pub triple is required');
|
|
65
|
+
}
|
|
66
|
+
const walletXpubs = (0, sdk_core_1.isTriple)(pubs) ? pubs : undefined;
|
|
67
|
+
if (!walletXpubs) {
|
|
68
|
+
throw new Error('pub triple must be valid triple or RootWalletKeys');
|
|
69
|
+
}
|
|
70
|
+
return fixedScript.explainPsbtWasm(tx, walletXpubs, {
|
|
71
|
+
addressCodec,
|
|
72
|
+
replayProtection: {
|
|
73
|
+
publicKeys: (0, replayProtection_1.getReplayProtectionPubkeys)(coinName),
|
|
74
|
+
},
|
|
75
|
+
customChangeWalletXpubs: params.customChangeXpubs,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else if (tx instanceof wasm_utxo_1.Psbt) {
|
|
79
|
+
throw new Error('descriptor Psbt is only supported for descriptor wallets');
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new Error('unsupported transaction type');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSw4QkEyQ0M7QUE3REQsZ0RBQXVFO0FBQ3ZFLG1EQUFpRTtBQUVqRSw4Q0FBK0U7QUFDL0UsNENBQTZDO0FBQzdDLGlFQUErRDtBQUkvRCxxRUFBNEU7QUFFNUUsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUUzQzs7O0dBR0c7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEVBQTBDLEVBQzFDLE1BS0MsRUFDRCxRQUF5QyxFQUN6QyxZQUEwQjtJQUUxQixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsQ0FBQyxFQUFFLFlBQVksZ0JBQVEsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUEsbUJBQVEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBQSx1Q0FBMEIsRUFBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwSCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxFQUFFLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUErQixJQUFBLG1CQUFRLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUNsRCxZQUFZO1lBQ1osZ0JBQWdCLEVBQUU7Z0JBQ2hCLFVBQVUsRUFBRSxJQUFBLDZDQUEwQixFQUFDLFFBQVEsQ0FBQzthQUNqRDtZQUNELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUFNLElBQUksRUFBRSxZQUFZLGdCQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCwgUHNidCBhcyBXYXNtUHNidCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0IHsgaXNUcmlwbGUsIElXYWxsZXQsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGlzRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgdG9CaXAzMlRyaXBsZSB9IGZyb20gJy4uL2tleWNoYWlucyc7XG5pbXBvcnQgeyBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuLi9kZXNjcmlwdG9yL3ZhbGlkYXRlUG9saWN5JztcbmltcG9ydCB7IFV0eG9Db2luTmFtZSwgV2FzbVV0eG9Db2luTmFtZSB9IGZyb20gJy4uL25hbWVzJztcbmltcG9ydCB0eXBlIHsgVW5zcGVudCB9IGZyb20gJy4uL3Vuc3BlbnQnO1xuXG5pbXBvcnQgeyBnZXRSZXBsYXlQcm90ZWN0aW9uUHVia2V5cyB9IGZyb20gJy4vZml4ZWRTY3JpcHQvcmVwbGF5UHJvdGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25VdHhvbGliUHNidCwgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbldhc20gfSBmcm9tICcuL2ZpeGVkU2NyaXB0L2V4cGxhaW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgKiBhcyBmaXhlZFNjcmlwdCBmcm9tICcuL2ZpeGVkU2NyaXB0JztcbmltcG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCB0eXBlIHsgQWRkcmVzc0NvZGVjIH0gZnJvbSAnLi9yZWNpcGllbnQnO1xuLyoqXG4gKiBEZWNvbXBvc2UgYSByYXcgdHJhbnNhY3Rpb24gaW50byB1c2VmdWwgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIHRvdGFsIGFtb3VudHMsXG4gKiBjaGFuZ2UgYW1vdW50cywgYW5kIHRyYW5zYWN0aW9uIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluVHg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQgfCBXYXNtUHNidCxcbiAgcGFyYW1zOiB7XG4gICAgd2FsbGV0PzogSVdhbGxldDtcbiAgICBwdWJzPzogc3RyaW5nW107XG4gICAgY3VzdG9tQ2hhbmdlWHB1YnM/OiBUcmlwbGU8c3RyaW5nPjtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogVW5zcGVudDxUTnVtYmVyPltdIH07XG4gIH0sXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUgfCBXYXNtVXR4b0NvaW5OYW1lLFxuICBhZGRyZXNzQ29kZWM6IEFkZHJlc3NDb2RlY1xuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvblV0eG9saWJQc2J0IHwgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbldhc20ge1xuICBpZiAocGFyYW1zLndhbGxldCAmJiBpc0Rlc2NyaXB0b3JXYWxsZXQocGFyYW1zLndhbGxldCkpIHtcbiAgICBpZiAoISh0eCBpbnN0YW5jZW9mIFdhc21Qc2J0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZXNjcmlwdG9yIHdhbGxldHMgcmVxdWlyZSBQU0JUIGZvcm1hdCB0cmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKCFwYXJhbXMucHVicyB8fCAhaXNUcmlwbGUocGFyYW1zLnB1YnMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3B1YiB0cmlwbGUgaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICAgIH1cbiAgICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShwYXJhbXMucHVicyk7XG4gICAgY29uc3QgZGVzY3JpcHRvcnMgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldChwYXJhbXMud2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYocGFyYW1zLndhbGxldC5iaXRnby5lbnYpKTtcbiAgICByZXR1cm4gZGVzY3JpcHRvci5leHBsYWluUHNidCh0eCwgZGVzY3JpcHRvcnMsIGNvaW5OYW1lKTtcbiAgfVxuICBpZiAodHggaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICBjb25zdCBwdWJzID0gcGFyYW1zLnB1YnM7XG4gICAgaWYgKCFwdWJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3B1YiB0cmlwbGUgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgY29uc3Qgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+IHwgdW5kZWZpbmVkID0gaXNUcmlwbGUocHVicykgPyAocHVicyBhcyBUcmlwbGU8c3RyaW5nPikgOiB1bmRlZmluZWQ7XG4gICAgaWYgKCF3YWxsZXRYcHVicykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdWIgdHJpcGxlIG11c3QgYmUgdmFsaWQgdHJpcGxlIG9yIFJvb3RXYWxsZXRLZXlzJyk7XG4gICAgfVxuICAgIHJldHVybiBmaXhlZFNjcmlwdC5leHBsYWluUHNidFdhc20odHgsIHdhbGxldFhwdWJzLCB7XG4gICAgICBhZGRyZXNzQ29kZWMsXG4gICAgICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgICAgIHB1YmxpY0tleXM6IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzKGNvaW5OYW1lKSxcbiAgICAgIH0sXG4gICAgICBjdXN0b21DaGFuZ2VXYWxsZXRYcHViczogcGFyYW1zLmN1c3RvbUNoYW5nZVhwdWJzLFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHR4IGluc3RhbmNlb2YgV2FzbVBzYnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Rlc2NyaXB0b3IgUHNidCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgZGVzY3JpcHRvciB3YWxsZXRzJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Unspent } from '../../unspent';
|
|
2
|
+
export type PsbtParsedScriptType = 'p2sh' | 'p2wsh' | 'p2shP2wsh' | 'p2shP2pk' | 'taprootKeyPathSpend' | 'taprootScriptPathSpend' | 'p2trLegacy' | 'p2trMusig2ScriptPath' | 'p2trMusig2KeyPath';
|
|
3
|
+
export declare class InputSigningError<TNumber extends number | bigint = number> extends Error {
|
|
4
|
+
inputIndex: number;
|
|
5
|
+
inputType: PsbtParsedScriptType | null;
|
|
6
|
+
unspent: Unspent<TNumber> | {
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
reason: Error | string;
|
|
10
|
+
static expectedWalletUnspent<TNumber extends number | bigint>(inputIndex: number, inputType: PsbtParsedScriptType | null, unspent: Unspent<TNumber> | {
|
|
11
|
+
id: string;
|
|
12
|
+
}): InputSigningError<TNumber>;
|
|
13
|
+
constructor(inputIndex: number, inputType: PsbtParsedScriptType | null, unspent: Unspent<TNumber> | {
|
|
14
|
+
id: string;
|
|
15
|
+
}, reason: Error | string);
|
|
16
|
+
}
|
|
17
|
+
export declare class BulkSigningError extends Error {
|
|
18
|
+
reason: Error | string;
|
|
19
|
+
constructor(reason: Error | string);
|
|
20
|
+
}
|
|
21
|
+
export declare class TransactionSigningError<TNumber extends number | bigint = number> extends Error {
|
|
22
|
+
constructor(signErrors: InputSigningError<TNumber>[], verifyError: InputSigningError<TNumber>[]);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=SigningError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SigningError.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/SigningError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,OAAO,GACP,WAAW,GACX,UAAU,GACV,qBAAqB,GACrB,wBAAwB,GACxB,YAAY,GACZ,sBAAsB,GACtB,mBAAmB,CAAC;AAExB,qBAAa,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK;IAe3E,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,oBAAoB,GAAG,IAAI;IACtC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;IAC1C,MAAM,EAAE,KAAK,GAAG,MAAM;IAjB/B,MAAM,CAAC,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC1D,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,oBAAoB,GAAG,IAAI,EACtC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GACzC,iBAAiB,CAAC,OAAO,CAAC;gBAUpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,oBAAoB,GAAG,IAAI,EACtC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAC1C,MAAM,EAAE,KAAK,GAAG,MAAM;CAIhC;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACtB,MAAM,EAAE,KAAK,GAAG,MAAM;gBAAtB,MAAM,EAAE,KAAK,GAAG,MAAM;CAI1C;AAED,qBAAa,uBAAuB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAE,SAAQ,KAAK;gBAC9E,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE;CAMhG"}
|