@bitgo-beta/abstract-utxo 1.1.1-beta.192 → 1.1.1-beta.1921
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 +461 -0
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -0
- package/dist/cjs/src/abstractUtxoCoin.js +705 -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 +105 -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/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 +33 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts +12 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/builder.js +37 -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 +116 -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 +8 -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 +92 -0
- package/dist/cjs/src/impl/bch/bch.d.ts +22 -0
- package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/bch.js +43 -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 +7 -0
- package/dist/cjs/src/impl/btc/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/index.js +23 -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 +171 -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/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 +35 -0
- package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/doge.js +79 -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 +10 -0
- package/dist/cjs/src/impl/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/index.js +46 -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/zec/index.d.ts +3 -0
- package/dist/cjs/src/impl/zec/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/index.js +19 -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 +12 -0
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/zec.js +15 -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 +56 -0
- package/dist/cjs/src/keychains.d.ts.map +1 -0
- package/dist/cjs/src/keychains.js +144 -0
- package/dist/cjs/src/names.d.ts +36 -0
- package/dist/cjs/src/names.d.ts.map +1 -0
- package/dist/cjs/src/names.js +231 -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 +23 -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 +158 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.js +411 -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 +299 -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 +62 -0
- package/dist/cjs/src/recovery/psbt.d.ts.map +1 -0
- package/dist/cjs/src/recovery/psbt.js +153 -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 +13 -0
- package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
- package/dist/cjs/src/transaction/decode.js +88 -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 +45 -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 +19 -0
- package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/parse.js +90 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts +14 -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 +24 -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 +37 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +81 -0
- package/dist/cjs/src/transaction/explainTransaction.d.ts +21 -0
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/explainTransaction.js +90 -0
- package/dist/cjs/src/transaction/fetchInputs.d.ts +27 -0
- package/dist/cjs/src/transaction/fetchInputs.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fetchInputs.js +111 -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 +41 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +120 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +80 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +346 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts +10 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/index.js +34 -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 +28 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.js +216 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +8 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +227 -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/signLegacyTransaction.d.ts +32 -0
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +156 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +20 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +157 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +20 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +116 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +34 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +78 -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 +199 -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 +10 -0
- package/dist/cjs/src/transaction/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/index.js +54 -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 +4 -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 +34 -0
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -0
- package/dist/cjs/src/transaction/recipient.js +69 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts +6 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/signTransaction.js +115 -0
- package/dist/cjs/src/transaction/types.d.ts +50 -0
- package/dist/cjs/src/transaction/types.d.ts.map +1 -0
- package/dist/cjs/src/transaction/types.js +7 -0
- package/dist/cjs/src/transaction/verifyTransaction.d.ts +4 -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 +55 -0
- package/dist/cjs/src/unspent.d.ts.map +1 -0
- package/dist/cjs/src/unspent.js +12 -0
- package/dist/cjs/src/verifyKey.d.ts +21 -0
- package/dist/cjs/src/verifyKey.d.ts.map +1 -0
- package/dist/cjs/src/verifyKey.js +108 -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/src/wasmUtil.d.ts +34 -0
- package/dist/cjs/src/wasmUtil.d.ts.map +1 -0
- package/dist/cjs/src/wasmUtil.js +95 -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 +152 -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 +410 -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 +99 -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 +215 -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/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 +78 -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 +103 -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 +97 -0
- package/dist/cjs/test/unit/fixtures/bip322/fixtures.d.ts +15 -0
- package/dist/cjs/test/unit/fixtures/bip322/fixtures.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures/bip322/fixtures.js +51 -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 +71 -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/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/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 +125 -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 +249 -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 +136 -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 +144 -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 +297 -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 +111 -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 +245 -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/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 +138 -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/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/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 +193 -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 +287 -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 +154 -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.d.ts +2 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +308 -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 +13 -0
- package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/address.js +15 -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 +23 -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 +131 -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 +175 -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 +327 -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/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/abstractUtxoCoin.d.ts +461 -0
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -0
- package/dist/esm/abstractUtxoCoin.js +664 -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 +97 -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/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 +27 -0
- package/dist/esm/descriptor/builder/builder.d.ts +12 -0
- package/dist/esm/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/builder.js +34 -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 +112 -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 +8 -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 +80 -0
- package/dist/esm/impl/bch/bch.d.ts +22 -0
- package/dist/esm/impl/bch/bch.d.ts.map +1 -0
- package/dist/esm/impl/bch/bch.js +39 -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 +7 -0
- package/dist/esm/impl/btc/index.d.ts.map +1 -0
- package/dist/esm/impl/btc/index.js +7 -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 +164 -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/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 +35 -0
- package/dist/esm/impl/doge/doge.d.ts.map +1 -0
- package/dist/esm/impl/doge/doge.js +75 -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 +10 -0
- package/dist/esm/impl/index.d.ts.map +1 -0
- package/dist/esm/impl/index.js +10 -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/zec/index.d.ts +3 -0
- package/dist/esm/impl/zec/index.d.ts.map +1 -0
- package/dist/esm/impl/zec/index.js +3 -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 +12 -0
- package/dist/esm/impl/zec/zec.d.ts.map +1 -0
- package/dist/esm/impl/zec/zec.js +11 -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 +56 -0
- package/dist/esm/keychains.d.ts.map +1 -0
- package/dist/esm/keychains.js +99 -0
- package/dist/esm/names.d.ts +36 -0
- package/dist/esm/names.d.ts.map +1 -0
- package/dist/esm/names.js +184 -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 +20 -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 +158 -0
- package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/esm/recovery/backupKeyRecovery.js +400 -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 +292 -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 +62 -0
- package/dist/esm/recovery/psbt.d.ts.map +1 -0
- package/dist/esm/recovery/psbt.js +145 -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 +13 -0
- package/dist/esm/transaction/decode.d.ts.map +1 -0
- package/dist/esm/transaction/decode.js +49 -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 +42 -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 +19 -0
- package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/parse.js +86 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts +14 -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 +24 -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 +37 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.js +71 -0
- package/dist/esm/transaction/explainTransaction.d.ts +21 -0
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/explainTransaction.js +54 -0
- package/dist/esm/transaction/fetchInputs.d.ts +27 -0
- package/dist/esm/transaction/fetchInputs.d.ts.map +1 -0
- package/dist/esm/transaction/fetchInputs.js +74 -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 +41 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +115 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +80 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.js +309 -0
- package/dist/esm/transaction/fixedScript/index.d.ts +10 -0
- package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/index.js +9 -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 +28 -0
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/parseOutput.js +209 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +8 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.js +221 -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/signLegacyTransaction.d.ts +32 -0
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +116 -0
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +20 -0
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +117 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +20 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +109 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +34 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signTransaction.js +71 -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 +160 -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 +10 -0
- package/dist/esm/transaction/index.d.ts.map +1 -0
- package/dist/esm/transaction/index.js +10 -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 +4 -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 +34 -0
- package/dist/esm/transaction/recipient.d.ts.map +1 -0
- package/dist/esm/transaction/recipient.js +61 -0
- package/dist/esm/transaction/signTransaction.d.ts +6 -0
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/signTransaction.js +76 -0
- package/dist/esm/transaction/types.d.ts +50 -0
- package/dist/esm/transaction/types.d.ts.map +1 -0
- package/dist/esm/transaction/types.js +4 -0
- package/dist/esm/transaction/verifyTransaction.d.ts +4 -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 +55 -0
- package/dist/esm/unspent.d.ts.map +1 -0
- package/dist/esm/unspent.js +8 -0
- package/dist/esm/verifyKey.d.ts +21 -0
- package/dist/esm/verifyKey.d.ts.map +1 -0
- package/dist/esm/verifyKey.js +100 -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/dist/esm/wasmUtil.d.ts +34 -0
- package/dist/esm/wasmUtil.d.ts.map +1 -0
- package/dist/esm/wasmUtil.js +54 -0
- package/package.json +47 -20
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -235
- 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 -170
- 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 -8017
- /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,74 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { getNetworkFromCoinName } from '../names';
|
|
3
|
+
/**
|
|
4
|
+
* Get the inputs for a psbt from a prebuild.
|
|
5
|
+
*/
|
|
6
|
+
export function getPsbtTxInputs(psbtArg, coinName) {
|
|
7
|
+
const network = getNetworkFromCoinName(coinName);
|
|
8
|
+
const psbt = psbtArg instanceof utxolib.bitgo.UtxoPsbt ? psbtArg : utxolib.bitgo.createPsbtFromHex(psbtArg, network);
|
|
9
|
+
const txInputs = psbt.txInputs;
|
|
10
|
+
return psbt.data.inputs.map((input, index) => {
|
|
11
|
+
let address;
|
|
12
|
+
let value;
|
|
13
|
+
if (input.witnessUtxo) {
|
|
14
|
+
address = utxolib.address.fromOutputScript(input.witnessUtxo.script, network);
|
|
15
|
+
value = input.witnessUtxo.value;
|
|
16
|
+
}
|
|
17
|
+
else if (input.nonWitnessUtxo) {
|
|
18
|
+
const tx = utxolib.bitgo.createTransactionFromBuffer(input.nonWitnessUtxo, network, {
|
|
19
|
+
amountType: 'bigint',
|
|
20
|
+
});
|
|
21
|
+
const txId = Buffer.from(txInputs[index].hash).reverse().toString('hex');
|
|
22
|
+
if (tx.getId() !== txId) {
|
|
23
|
+
throw new Error('input transaction hex does not match id');
|
|
24
|
+
}
|
|
25
|
+
const prevTxOutputIndex = txInputs[index].index;
|
|
26
|
+
address = utxolib.address.fromOutputScript(tx.outs[prevTxOutputIndex].script, network);
|
|
27
|
+
value = tx.outs[prevTxOutputIndex].value;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new Error('psbt input is missing both witnessUtxo and nonWitnessUtxo');
|
|
31
|
+
}
|
|
32
|
+
return { address, value, valueString: value.toString() };
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the inputs for a transaction from a prebuild.
|
|
37
|
+
*/
|
|
38
|
+
export async function getTxInputs(params) {
|
|
39
|
+
const { txPrebuild, bitgo, coin, disableNetworking, reqId } = params;
|
|
40
|
+
if (!txPrebuild.txHex) {
|
|
41
|
+
throw new Error(`txPrebuild.txHex not set`);
|
|
42
|
+
}
|
|
43
|
+
const transaction = coin.createTransactionFromHex(txPrebuild.txHex);
|
|
44
|
+
const transactionCache = {};
|
|
45
|
+
return await Promise.all(transaction.ins.map(async (currentInput) => {
|
|
46
|
+
const transactionId = Buffer.from(currentInput.hash).reverse().toString('hex');
|
|
47
|
+
const txHex = txPrebuild.txInfo?.txHexes?.[transactionId];
|
|
48
|
+
if (txHex) {
|
|
49
|
+
const localTx = coin.createTransactionFromHex(txHex);
|
|
50
|
+
if (localTx.getId() !== transactionId) {
|
|
51
|
+
throw new Error('input transaction hex does not match id');
|
|
52
|
+
}
|
|
53
|
+
const currentOutput = localTx.outs[currentInput.index];
|
|
54
|
+
const address = utxolib.address.fromOutputScript(currentOutput.script, coin.network);
|
|
55
|
+
return {
|
|
56
|
+
address,
|
|
57
|
+
value: currentOutput.value,
|
|
58
|
+
valueString: currentOutput.value.toString(),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
else if (!transactionCache[transactionId]) {
|
|
62
|
+
if (disableNetworking) {
|
|
63
|
+
throw new Error('attempting to retrieve transaction details externally with networking disabled');
|
|
64
|
+
}
|
|
65
|
+
if (reqId) {
|
|
66
|
+
bitgo.setRequestTracer(reqId);
|
|
67
|
+
}
|
|
68
|
+
transactionCache[transactionId] = await bitgo.get(coin.url(`/public/tx/${transactionId}`)).result();
|
|
69
|
+
}
|
|
70
|
+
const transactionDetails = transactionCache[transactionId];
|
|
71
|
+
return transactionDetails.outputs[currentInput.index];
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hJbnB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZmV0Y2hJbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUloRCxPQUFPLEVBQUUsc0JBQXNCLEVBQWdCLE1BQU0sVUFBVSxDQUFDO0FBRWhFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsT0FBd0MsRUFDeEMsUUFBc0I7SUFFdEIsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsTUFBTSxJQUFJLEdBQUcsT0FBTyxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDM0MsSUFBSSxPQUFlLENBQUM7UUFDcEIsSUFBSSxLQUFhLENBQUM7UUFDbEIsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFT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Q0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzVDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO1lBQ3BHLENBQUM7WUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEcsQ0FBQztRQUNELE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBUcmFuc2FjdGlvblByZWJ1aWxkIH0gZnJvbSAnLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBnZXROZXR3b3JrRnJvbUNvaW5OYW1lLCBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi9uYW1lcyc7XG5cbi8qKlxuICogR2V0IHRoZSBpbnB1dHMgZm9yIGEgcHNidCBmcm9tIGEgcHJlYnVpbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQc2J0VHhJbnB1dHMoXG4gIHBzYnRBcmc6IHN0cmluZyB8IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IHsgYWRkcmVzczogc3RyaW5nOyB2YWx1ZTogYmlnaW50OyB2YWx1ZVN0cmluZzogc3RyaW5nIH1bXSB7XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgY29uc3QgcHNidCA9IHBzYnRBcmcgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0ID8gcHNidEFyZyA6IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZyb21IZXgocHNidEFyZywgbmV0d29yayk7XG4gIGNvbnN0IHR4SW5wdXRzID0gcHNidC50eElucHV0cztcbiAgcmV0dXJuIHBzYnQuZGF0YS5pbnB1dHMubWFwKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICBsZXQgYWRkcmVzczogc3RyaW5nO1xuICAgIGxldCB2YWx1ZTogYmlnaW50O1xuICAgIGlmIChpbnB1dC53aXRuZXNzVXR4bykge1xuICAgICAgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdCwgbmV0d29yayk7XG4gICAgICB2YWx1ZSA9IGlucHV0LndpdG5lc3NVdHhvLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQubm9uV2l0bmVzc1V0eG8pIHtcbiAgICAgIGNvbnN0IHR4ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXI8YmlnaW50PihpbnB1dC5ub25XaXRuZXNzVXR4bywgbmV0d29yaywge1xuICAgICAgICBhbW91bnRUeXBlOiAnYmlnaW50JyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdHhJZCA9IChCdWZmZXIuZnJvbSh0eElucHV0c1tpbmRleF0uaGFzaCkucmV2ZXJzZSgpIGFzIEJ1ZmZlcikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgaWYgKHR4LmdldElkKCkgIT09IHR4SWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnB1dCB0cmFuc2FjdGlvbiBoZXggZG9lcyBub3QgbWF0Y2ggaWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByZXZUeE91dHB1dEluZGV4ID0gdHhJbnB1dHNbaW5kZXhdLmluZGV4O1xuICAgICAgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHR4Lm91dHNbcHJldlR4T3V0cHV0SW5kZXhdLnNjcmlwdCwgbmV0d29yayk7XG4gICAgICB2YWx1ZSA9IHR4Lm91dHNbcHJldlR4T3V0cHV0SW5kZXhdLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BzYnQgaW5wdXQgaXMgbWlzc2luZyBib3RoIHdpdG5lc3NVdHhvIGFuZCBub25XaXRuZXNzVXR4bycpO1xuICAgIH1cbiAgICByZXR1cm4geyBhZGRyZXNzLCB2YWx1ZSwgdmFsdWVTdHJpbmc6IHZhbHVlLnRvU3RyaW5nKCkgfTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBpbnB1dHMgZm9yIGEgdHJhbnNhY3Rpb24gZnJvbSBhIHByZWJ1aWxkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHhJbnB1dHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4ocGFyYW1zOiB7XG4gIHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ8VE51bWJlcj47XG4gIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW47XG4gIGRpc2FibGVOZXR3b3JraW5nOiBib29sZWFuO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xufSk6IFByb21pc2U8eyBhZGRyZXNzOiBzdHJpbmc7IHZhbHVlOiBUTnVtYmVyOyB2YWx1ZVN0cmluZzogc3RyaW5nIH1bXT4ge1xuICBjb25zdCB7IHR4UHJlYnVpbGQsIGJpdGdvLCBjb2luLCBkaXNhYmxlTmV0d29ya2luZywgcmVxSWQgfSA9IHBhcmFtcztcbiAgaWYgKCF0eFByZWJ1aWxkLnR4SGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0eFByZWJ1aWxkLnR4SGV4IG5vdCBzZXRgKTtcbiAgfVxuICBjb25zdCB0cmFuc2FjdGlvbiA9IGNvaW4uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4PFROdW1iZXI+KHR4UHJlYnVpbGQudHhIZXgpO1xuICBjb25zdCB0cmFuc2FjdGlvbkNhY2hlID0ge307XG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICB0cmFuc2FjdGlvbi5pbnMubWFwKGFzeW5jIChjdXJyZW50SW5wdXQpOiBQcm9taXNlPHsgYWRkcmVzczogc3RyaW5nOyB2YWx1ZTogVE51bWJlcjsgdmFsdWVTdHJpbmc6IHN0cmluZyB9PiA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbklkID0gKEJ1ZmZlci5mcm9tKGN1cnJlbnRJbnB1dC5oYXNoKS5yZXZlcnNlKCkgYXMgQnVmZmVyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBjb25zdCB0eEhleCA9IHR4UHJlYnVpbGQudHhJbmZvPy50eEhleGVzPy5bdHJhbnNhY3Rpb25JZF07XG4gICAgICBpZiAodHhIZXgpIHtcbiAgICAgICAgY29uc3QgbG9jYWxUeCA9IGNvaW4uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4PFROdW1iZXI+KHR4SGV4KTtcbiAgICAgICAgaWYgKGxvY2FsVHguZ2V0SWQoKSAhPT0gdHJhbnNhY3Rpb25JZCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW5wdXQgdHJhbnNhY3Rpb24gaGV4IGRvZXMgbm90IG1hdGNoIGlkJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudE91dHB1dCA9IGxvY2FsVHgub3V0c1tjdXJyZW50SW5wdXQuaW5kZXhdO1xuICAgICAgICBjb25zdCBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoY3VycmVudE91dHB1dC5zY3JpcHQsIGNvaW4ubmV0d29yayk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogY3VycmVudE91dHB1dC52YWx1ZSxcbiAgICAgICAgICB2YWx1ZVN0cmluZzogY3VycmVudE91dHB1dC52YWx1ZS50b1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmICghdHJhbnNhY3Rpb25DYWNoZVt0cmFuc2FjdGlvbklkXSkge1xuICAgICAgICBpZiAoZGlzYWJsZU5ldHdvcmtpbmcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F0dGVtcHRpbmcgdG8gcmV0cmlldmUgdHJhbnNhY3Rpb24gZGV0YWlscyBleHRlcm5hbGx5IHdpdGggbmV0d29ya2luZyBkaXNhYmxlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXFJZCkge1xuICAgICAgICAgIGJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxSWQpO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zYWN0aW9uQ2FjaGVbdHJhbnNhY3Rpb25JZF0gPSBhd2FpdCBiaXRnby5nZXQoY29pbi51cmwoYC9wdWJsaWMvdHgvJHt0cmFuc2FjdGlvbklkfWApKS5yZXN1bHQoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uRGV0YWlscyA9IHRyYW5zYWN0aW9uQ2FjaGVbdHJhbnNhY3Rpb25JZF07XG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb25EZXRhaWxzLm91dHB1dHNbY3VycmVudElucHV0LmluZGV4XTtcbiAgICB9KVxuICApO1xufVxuIl19
|
|
@@ -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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class InputSigningError extends Error {
|
|
2
|
+
static expectedWalletUnspent(inputIndex, inputType, unspent) {
|
|
3
|
+
return new InputSigningError(inputIndex, inputType, unspent, `not a wallet unspent, not a replay protection unspent`);
|
|
4
|
+
}
|
|
5
|
+
constructor(inputIndex, inputType, unspent, reason) {
|
|
6
|
+
super(`signing error at input ${inputIndex}: type=${inputType} unspentId=${unspent.id}: ${reason}`);
|
|
7
|
+
this.inputIndex = inputIndex;
|
|
8
|
+
this.inputType = inputType;
|
|
9
|
+
this.unspent = unspent;
|
|
10
|
+
this.reason = reason;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class BulkSigningError extends Error {
|
|
14
|
+
constructor(reason) {
|
|
15
|
+
const reasonMessage = reason instanceof Error ? reason.message : reason;
|
|
16
|
+
super(`bulk signing error: ${reasonMessage}`);
|
|
17
|
+
this.reason = reason;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class TransactionSigningError extends Error {
|
|
21
|
+
constructor(signErrors, verifyError) {
|
|
22
|
+
super(`sign errors at inputs: [${signErrors.join(',')}], ` +
|
|
23
|
+
`verify errors at inputs: [${verifyError.join(',')}], see log for details`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmluZ0Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L1NpZ25pbmdFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLE9BQU8saUJBQTRELFNBQVEsS0FBSztJQUNwRixNQUFNLENBQUMscUJBQXFCLENBQzFCLFVBQWtCLEVBQ2xCLFNBQXNDLEVBQ3RDLE9BQTBDO1FBRTFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsdURBQXVELENBQ3hELENBQUM7SUFDSixDQUFDO0lBRUQsWUFDUyxVQUFrQixFQUNsQixTQUFzQyxFQUN0QyxPQUEwQyxFQUMxQyxNQUFzQjtRQUU3QixLQUFLLENBQUMsMEJBQTBCLFVBQVUsVUFBVSxTQUFTLGNBQWMsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBTDdGLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBNkI7UUFDdEMsWUFBTyxHQUFQLE9BQU8sQ0FBbUM7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7SUFHL0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLEtBQUs7SUFDekMsWUFBbUIsTUFBc0I7UUFDdkMsTUFBTSxhQUFhLEdBQUcsTUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hFLEtBQUssQ0FBQyx1QkFBdUIsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUY3QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUd6QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sdUJBQWtFLFNBQVEsS0FBSztJQUMxRixZQUFZLFVBQXdDLEVBQUUsV0FBeUM7UUFDN0YsS0FBSyxDQUNILDJCQUEyQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQ2xELDZCQUE2QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FDN0UsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVW5zcGVudCB9IGZyb20gJy4uLy4uL3Vuc3BlbnQnO1xuXG5leHBvcnQgdHlwZSBQc2J0UGFyc2VkU2NyaXB0VHlwZSA9XG4gIHwgJ3Ayc2gnXG4gIHwgJ3Ayd3NoJ1xuICB8ICdwMnNoUDJ3c2gnXG4gIHwgJ3Ayc2hQMnBrJ1xuICB8ICd0YXByb290S2V5UGF0aFNwZW5kJ1xuICB8ICd0YXByb290U2NyaXB0UGF0aFNwZW5kJ1xuICB8ICdwMnRyTGVnYWN5J1xuICB8ICdwMnRyTXVzaWcyU2NyaXB0UGF0aCdcbiAgfCAncDJ0ck11c2lnMktleVBhdGgnO1xuXG5leHBvcnQgY2xhc3MgSW5wdXRTaWduaW5nRXJyb3I8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gZXh0ZW5kcyBFcnJvciB7XG4gIHN0YXRpYyBleHBlY3RlZFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gICAgaW5wdXRJbmRleDogbnVtYmVyLFxuICAgIGlucHV0VHlwZTogUHNidFBhcnNlZFNjcmlwdFR5cGUgfCBudWxsLFxuICAgIHVuc3BlbnQ6IFVuc3BlbnQ8VE51bWJlcj4gfCB7IGlkOiBzdHJpbmcgfVxuICApOiBJbnB1dFNpZ25pbmdFcnJvcjxUTnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihcbiAgICAgIGlucHV0SW5kZXgsXG4gICAgICBpbnB1dFR5cGUsXG4gICAgICB1bnNwZW50LFxuICAgICAgYG5vdCBhIHdhbGxldCB1bnNwZW50LCBub3QgYSByZXBsYXkgcHJvdGVjdGlvbiB1bnNwZW50YFxuICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW5wdXRJbmRleDogbnVtYmVyLFxuICAgIHB1YmxpYyBpbnB1dFR5cGU6IFBzYnRQYXJzZWRTY3JpcHRUeXBlIHwgbnVsbCxcbiAgICBwdWJsaWMgdW5zcGVudDogVW5zcGVudDxUTnVtYmVyPiB8IHsgaWQ6IHN0cmluZyB9LFxuICAgIHB1YmxpYyByZWFzb246IEVycm9yIHwgc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKGBzaWduaW5nIGVycm9yIGF0IGlucHV0ICR7aW5wdXRJbmRleH06IHR5cGU9JHtpbnB1dFR5cGV9IHVuc3BlbnRJZD0ke3Vuc3BlbnQuaWR9OiAke3JlYXNvbn1gKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVsa1NpZ25pbmdFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYXNvbjogRXJyb3IgfCBzdHJpbmcpIHtcbiAgICBjb25zdCByZWFzb25NZXNzYWdlID0gcmVhc29uIGluc3RhbmNlb2YgRXJyb3IgPyByZWFzb24ubWVzc2FnZSA6IHJlYXNvbjtcbiAgICBzdXBlcihgYnVsayBzaWduaW5nIGVycm9yOiAke3JlYXNvbk1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2lnbmluZ0Vycm9yPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihzaWduRXJyb3JzOiBJbnB1dFNpZ25pbmdFcnJvcjxUTnVtYmVyPltdLCB2ZXJpZnlFcnJvcjogSW5wdXRTaWduaW5nRXJyb3I8VE51bWJlcj5bXSkge1xuICAgIHN1cGVyKFxuICAgICAgYHNpZ24gZXJyb3JzIGF0IGlucHV0czogWyR7c2lnbkVycm9ycy5qb2luKCcsJyl9XSwgYCArXG4gICAgICAgIGB2ZXJpZnkgZXJyb3JzIGF0IGlucHV0czogWyR7dmVyaWZ5RXJyb3Iuam9pbignLCcpfV0sIHNlZSBsb2cgZm9yIGRldGFpbHNgXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { Triple } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import type { FixedScriptWalletOutput, Output, BitGoPsbt } from '../types';
|
|
4
|
+
import type { TransactionExplanationWasm } from './explainTransaction';
|
|
5
|
+
interface ExplainPsbtWasmParams {
|
|
6
|
+
replayProtection: {
|
|
7
|
+
checkSignature?: boolean;
|
|
8
|
+
publicKeys: Buffer[];
|
|
9
|
+
};
|
|
10
|
+
customChangeWalletXpubs?: Triple<string> | fixedScriptWallet.RootWalletKeys;
|
|
11
|
+
}
|
|
12
|
+
export interface ExplainedInput<TAmount = bigint> {
|
|
13
|
+
address: string;
|
|
14
|
+
value: TAmount;
|
|
15
|
+
}
|
|
16
|
+
export interface TransactionExplanationBigInt {
|
|
17
|
+
id: string;
|
|
18
|
+
inputs: ExplainedInput[];
|
|
19
|
+
inputAmount: bigint;
|
|
20
|
+
outputs: Output<bigint>[];
|
|
21
|
+
changeOutputs: FixedScriptWalletOutput<bigint>[];
|
|
22
|
+
customChangeOutputs: FixedScriptWalletOutput<bigint>[];
|
|
23
|
+
outputAmount: bigint;
|
|
24
|
+
changeAmount: bigint;
|
|
25
|
+
customChangeAmount: bigint;
|
|
26
|
+
fee: bigint;
|
|
27
|
+
}
|
|
28
|
+
export declare function explainPsbtWasmBigInt(psbt: BitGoPsbt, walletXpubs: Triple<string> | fixedScriptWallet.RootWalletKeys, params: ExplainPsbtWasmParams): TransactionExplanationBigInt;
|
|
29
|
+
export declare function explainPsbtWasm(psbt: BitGoPsbt, walletXpubs: Triple<string> | fixedScriptWallet.RootWalletKeys, params: ExplainPsbtWasmParams): TransactionExplanationWasm;
|
|
30
|
+
export interface AggregatedTransactionExplanation {
|
|
31
|
+
inputCount: number;
|
|
32
|
+
outputCount: number;
|
|
33
|
+
changeOutputCount: number;
|
|
34
|
+
inputAmount: bigint;
|
|
35
|
+
outputAmount: bigint;
|
|
36
|
+
changeAmount: bigint;
|
|
37
|
+
fee: bigint;
|
|
38
|
+
}
|
|
39
|
+
export declare function aggregateTransactionExplanations(explanations: TransactionExplanationBigInt[]): AggregatedTransactionExplanation;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=explainPsbtWasm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/explainPsbtWasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAmCvE,UAAU,qBAAqB;IAC7B,gBAAgB,EAAE;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,cAAc,CAAC;CAC7E;AAED,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,MAAM;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,aAAa,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IACjD,mBAAmB,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,cAAc,EAC9D,MAAM,EAAE,qBAAqB,GAC5B,4BAA4B,CA0C9B;AAUD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,cAAc,EAC9D,MAAM,EAAE,qBAAqB,GAC5B,0BAA0B,CAc5B;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,4BAA4B,EAAE,GAC3C,gCAAgC,CA4BlC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
function scriptToAddress(script) {
|
|
2
|
+
return `scriptPubKey:${Buffer.from(script).toString('hex')}`;
|
|
3
|
+
}
|
|
4
|
+
function isParsedWalletOutput(output) {
|
|
5
|
+
return output.scriptId !== null;
|
|
6
|
+
}
|
|
7
|
+
function isParsedExternalOutput(output) {
|
|
8
|
+
return output.scriptId === null;
|
|
9
|
+
}
|
|
10
|
+
function toChangeOutputBigInt(output) {
|
|
11
|
+
return {
|
|
12
|
+
address: output.address ?? scriptToAddress(output.script),
|
|
13
|
+
amount: output.value,
|
|
14
|
+
chain: output.scriptId.chain,
|
|
15
|
+
index: output.scriptId.index,
|
|
16
|
+
external: false,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function toExternalOutputBigInt(output) {
|
|
20
|
+
return {
|
|
21
|
+
address: output.address ?? scriptToAddress(output.script),
|
|
22
|
+
amount: output.value,
|
|
23
|
+
external: true,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function explainPsbtWasmBigInt(psbt, walletXpubs, params) {
|
|
27
|
+
const parsed = psbt.parseTransactionWithWalletKeys(walletXpubs, { replayProtection: params.replayProtection });
|
|
28
|
+
const changeOutputs = [];
|
|
29
|
+
const outputs = [];
|
|
30
|
+
const parsedCustomChangeOutputs = params.customChangeWalletXpubs
|
|
31
|
+
? psbt.parseOutputsWithWalletKeys(params.customChangeWalletXpubs)
|
|
32
|
+
: undefined;
|
|
33
|
+
const customChangeOutputs = [];
|
|
34
|
+
parsed.outputs.forEach((output, i) => {
|
|
35
|
+
const parseCustomChangeOutput = parsedCustomChangeOutputs?.[i];
|
|
36
|
+
if (isParsedWalletOutput(output)) {
|
|
37
|
+
changeOutputs.push(toChangeOutputBigInt(output));
|
|
38
|
+
}
|
|
39
|
+
else if (parseCustomChangeOutput && isParsedWalletOutput(parseCustomChangeOutput)) {
|
|
40
|
+
customChangeOutputs.push(toChangeOutputBigInt(parseCustomChangeOutput));
|
|
41
|
+
}
|
|
42
|
+
else if (isParsedExternalOutput(output)) {
|
|
43
|
+
outputs.push(toExternalOutputBigInt(output));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw new Error('Invalid output');
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const inputs = parsed.inputs.map((input) => ({ address: input.address, value: input.value }));
|
|
50
|
+
const inputAmount = inputs.reduce((sum, input) => sum + input.value, 0n);
|
|
51
|
+
const outputAmount = outputs.reduce((sum, output) => sum + output.amount, 0n);
|
|
52
|
+
const changeAmount = changeOutputs.reduce((sum, output) => sum + output.amount, 0n);
|
|
53
|
+
const customChangeAmount = customChangeOutputs.reduce((sum, output) => sum + output.amount, 0n);
|
|
54
|
+
return {
|
|
55
|
+
id: psbt.unsignedTxId(),
|
|
56
|
+
inputs,
|
|
57
|
+
inputAmount,
|
|
58
|
+
outputs,
|
|
59
|
+
changeOutputs,
|
|
60
|
+
customChangeOutputs,
|
|
61
|
+
outputAmount,
|
|
62
|
+
changeAmount,
|
|
63
|
+
customChangeAmount,
|
|
64
|
+
fee: parsed.minerFee,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function stringifyOutput(output) {
|
|
68
|
+
return { ...output, amount: output.amount.toString() };
|
|
69
|
+
}
|
|
70
|
+
function stringifyChangeOutput(output) {
|
|
71
|
+
return { ...output, amount: output.amount.toString() };
|
|
72
|
+
}
|
|
73
|
+
export function explainPsbtWasm(psbt, walletXpubs, params) {
|
|
74
|
+
const result = explainPsbtWasmBigInt(psbt, walletXpubs, params);
|
|
75
|
+
return {
|
|
76
|
+
id: result.id,
|
|
77
|
+
inputs: result.inputs.map((i) => ({ address: i.address, value: i.value.toString() })),
|
|
78
|
+
inputAmount: result.inputAmount.toString(),
|
|
79
|
+
outputAmount: result.outputAmount.toString(),
|
|
80
|
+
changeAmount: result.changeAmount.toString(),
|
|
81
|
+
customChangeAmount: result.customChangeAmount.toString(),
|
|
82
|
+
outputs: result.outputs.map(stringifyOutput),
|
|
83
|
+
changeOutputs: result.changeOutputs.map(stringifyChangeOutput),
|
|
84
|
+
customChangeOutputs: result.customChangeOutputs.map(stringifyChangeOutput),
|
|
85
|
+
fee: result.fee.toString(),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function aggregateTransactionExplanations(explanations) {
|
|
89
|
+
let inputCount = 0;
|
|
90
|
+
let outputCount = 0;
|
|
91
|
+
let changeOutputCount = 0;
|
|
92
|
+
let fee = 0n;
|
|
93
|
+
let inputAmount = 0n;
|
|
94
|
+
let outputAmount = 0n;
|
|
95
|
+
let changeAmount = 0n;
|
|
96
|
+
for (const e of explanations) {
|
|
97
|
+
inputCount += e.inputs.length;
|
|
98
|
+
outputCount += e.outputs.length;
|
|
99
|
+
changeOutputCount += e.changeOutputs.length;
|
|
100
|
+
fee += e.fee;
|
|
101
|
+
inputAmount += e.inputAmount;
|
|
102
|
+
outputAmount += e.outputAmount;
|
|
103
|
+
changeAmount += e.changeAmount;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
inputCount,
|
|
107
|
+
outputCount,
|
|
108
|
+
changeOutputCount,
|
|
109
|
+
inputAmount,
|
|
110
|
+
outputAmount,
|
|
111
|
+
changeAmount,
|
|
112
|
+
fee,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxTQUFTLGVBQWUsQ0FBQyxNQUFrQjtJQUN6QyxPQUFPLGdCQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFLRCxTQUFTLG9CQUFvQixDQUFDLE1BQWlEO0lBQzdFLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBaUQ7SUFDL0UsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxNQUEwQjtJQUN0RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDNUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSztRQUM1QixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBNEI7SUFDMUQsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3pELE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztRQUNwQixRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUM7QUFDSixDQUFDO0FBNEJELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsSUFB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QUFDLFFBQVEsRUFBRTtLQUMzQixDQUFDO0FBQ0osQ0FBQztBQVlELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsWUFBNEM7SUFFNUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNwQixJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUMxQixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUV0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdCLFVBQVUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QixXQUFXLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDNUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDYixXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUM3QixZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUMvQixZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNqQyxDQUFDO0lBRUQsT0FBTztRQUNMLFVBQVU7UUFDVixXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLFdBQVc7UUFDWCxZQUFZO1FBQ1osWUFBWTtRQUNaLEdBQUc7S0FDSixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQsIE91dHB1dCwgQml0R29Qc2J0IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25XYXNtIH0gZnJvbSAnLi9leHBsYWluVHJhbnNhY3Rpb24nO1xuXG5mdW5jdGlvbiBzY3JpcHRUb0FkZHJlc3Moc2NyaXB0OiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgcmV0dXJuIGBzY3JpcHRQdWJLZXk6JHtCdWZmZXIuZnJvbShzY3JpcHQpLnRvU3RyaW5nKCdoZXgnKX1gO1xufVxuXG50eXBlIFBhcnNlZFdhbGxldE91dHB1dCA9IGZpeGVkU2NyaXB0V2FsbGV0LlBhcnNlZE91dHB1dCAmIHsgc2NyaXB0SWQ6IGZpeGVkU2NyaXB0V2FsbGV0LlNjcmlwdElkIH07XG50eXBlIFBhcnNlZEV4dGVybmFsT3V0cHV0ID0gZml4ZWRTY3JpcHRXYWxsZXQuUGFyc2VkT3V0cHV0ICYgeyBzY3JpcHRJZDogbnVsbCB9O1xuXG5mdW5jdGlvbiBpc1BhcnNlZFdhbGxldE91dHB1dChvdXRwdXQ6IFBhcnNlZFdhbGxldE91dHB1dCB8IFBhcnNlZEV4dGVybmFsT3V0cHV0KTogb3V0cHV0IGlzIFBhcnNlZFdhbGxldE91dHB1dCB7XG4gIHJldHVybiBvdXRwdXQuc2NyaXB0SWQgIT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzUGFyc2VkRXh0ZXJuYWxPdXRwdXQob3V0cHV0OiBQYXJzZWRXYWxsZXRPdXRwdXQgfCBQYXJzZWRFeHRlcm5hbE91dHB1dCk6IG91dHB1dCBpcyBQYXJzZWRFeHRlcm5hbE91dHB1dCB7XG4gIHJldHVybiBvdXRwdXQuc2NyaXB0SWQgPT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIHRvQ2hhbmdlT3V0cHV0QmlnSW50KG91dHB1dDogUGFyc2VkV2FsbGV0T3V0cHV0KTogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8YmlnaW50PiB7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MgPz8gc2NyaXB0VG9BZGRyZXNzKG91dHB1dC5zY3JpcHQpLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLFxuICAgIGNoYWluOiBvdXRwdXQuc2NyaXB0SWQuY2hhaW4sXG4gICAgaW5kZXg6IG91dHB1dC5zY3JpcHRJZC5pbmRleCxcbiAgICBleHRlcm5hbDogZmFsc2UsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHRvRXh0ZXJuYWxPdXRwdXRCaWdJbnQob3V0cHV0OiBQYXJzZWRFeHRlcm5hbE91dHB1dCk6IE91dHB1dDxiaWdpbnQ+IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyA/PyBzY3JpcHRUb0FkZHJlc3Mob3V0cHV0LnNjcmlwdCksXG4gICAgYW1vdW50OiBvdXRwdXQudmFsdWUsXG4gICAgZXh0ZXJuYWw6IHRydWUsXG4gIH07XG59XG5cbmludGVyZmFjZSBFeHBsYWluUHNidFdhc21QYXJhbXMge1xuICByZXBsYXlQcm90ZWN0aW9uOiB7XG4gICAgY2hlY2tTaWduYXR1cmU/OiBib29sZWFuO1xuICAgIHB1YmxpY0tleXM6IEJ1ZmZlcltdO1xuICB9O1xuICBjdXN0b21DaGFuZ2VXYWxsZXRYcHVicz86IFRyaXBsZTxzdHJpbmc+IHwgZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwbGFpbmVkSW5wdXQ8VEFtb3VudCA9IGJpZ2ludD4ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHZhbHVlOiBUQW1vdW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb25CaWdJbnQge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEV4cGxhaW5lZElucHV0W107XG4gIGlucHV0QW1vdW50OiBiaWdpbnQ7XG4gIG91dHB1dHM6IE91dHB1dDxiaWdpbnQ+W107XG4gIGNoYW5nZU91dHB1dHM6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD5bXTtcbiAgY3VzdG9tQ2hhbmdlT3V0cHV0czogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8YmlnaW50PltdO1xuICBvdXRwdXRBbW91bnQ6IGJpZ2ludDtcbiAgY2hhbmdlQW1vdW50OiBiaWdpbnQ7XG4gIGN1c3RvbUNoYW5nZUFtb3VudDogYmlnaW50O1xuICBmZWU6IGJpZ2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Qc2J0V2FzbUJpZ0ludChcbiAgcHNidDogQml0R29Qc2J0LFxuICB3YWxsZXRYcHViczogVHJpcGxlPHN0cmluZz4gfCBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiBFeHBsYWluUHNidFdhc21QYXJhbXNcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25CaWdJbnQge1xuICBjb25zdCBwYXJzZWQgPSBwc2J0LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyh3YWxsZXRYcHVicywgeyByZXBsYXlQcm90ZWN0aW9uOiBwYXJhbXMucmVwbGF5UHJvdGVjdGlvbiB9KTtcblxuICBjb25zdCBjaGFuZ2VPdXRwdXRzOiBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxiaWdpbnQ+W10gPSBbXTtcbiAgY29uc3Qgb3V0cHV0czogT3V0cHV0PGJpZ2ludD5bXSA9IFtdO1xuICBjb25zdCBwYXJzZWRDdXN0b21DaGFuZ2VPdXRwdXRzID0gcGFyYW1zLmN1c3RvbUNoYW5nZVdhbGxldFhwdWJzXG4gICAgPyBwc2J0LnBhcnNlT3V0cHV0c1dpdGhXYWxsZXRLZXlzKHBhcmFtcy5jdXN0b21DaGFuZ2VXYWxsZXRYcHVicylcbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBjdXN0b21DaGFuZ2VPdXRwdXRzOiBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxiaWdpbnQ+W10gPSBbXTtcblxuICBwYXJzZWQub3V0cHV0cy5mb3JFYWNoKChvdXRwdXQsIGkpID0+IHtcbiAgICBjb25zdCBwYXJzZUN1c3RvbUNoYW5nZU91dHB1dCA9IHBhcnNlZEN1c3RvbUNoYW5nZU91dHB1dHM/LltpXTtcbiAgICBpZiAoaXNQYXJzZWRXYWxsZXRPdXRwdXQob3V0cHV0KSkge1xuICAgICAgY2hhbmdlT3V0cHV0cy5wdXNoKHRvQ2hhbmdlT3V0cHV0QmlnSW50KG91dHB1dCkpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VDdXN0b21DaGFuZ2VPdXRwdXQgJiYgaXNQYXJzZWRXYWxsZXRPdXRwdXQocGFyc2VDdXN0b21DaGFuZ2VPdXRwdXQpKSB7XG4gICAgICBjdXN0b21DaGFuZ2VPdXRwdXRzLnB1c2godG9DaGFuZ2VPdXRwdXRCaWdJbnQocGFyc2VDdXN0b21DaGFuZ2VPdXRwdXQpKTtcbiAgICB9IGVsc2UgaWYgKGlzUGFyc2VkRXh0ZXJuYWxPdXRwdXQob3V0cHV0KSkge1xuICAgICAgb3V0cHV0cy5wdXNoKHRvRXh0ZXJuYWxPdXRwdXRCaWdJbnQob3V0cHV0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBvdXRwdXQnKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGlucHV0cyA9IHBhcnNlZC5pbnB1dHMubWFwKChpbnB1dCkgPT4gKHsgYWRkcmVzczogaW5wdXQuYWRkcmVzcywgdmFsdWU6IGlucHV0LnZhbHVlIH0pKTtcbiAgY29uc3QgaW5wdXRBbW91bnQgPSBpbnB1dHMucmVkdWNlKChzdW0sIGlucHV0KSA9PiBzdW0gKyBpbnB1dC52YWx1ZSwgMG4pO1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvdXRwdXQpID0+IHN1bSArIG91dHB1dC5hbW91bnQsIDBuKTtcbiAgY29uc3QgY2hhbmdlQW1vdW50ID0gY2hhbmdlT3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQuYW1vdW50LCAwbik7XG4gIGNvbnN0IGN1c3RvbUNoYW5nZUFtb3VudCA9IGN1c3RvbUNoYW5nZU91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgb3V0cHV0LmFtb3VudCwgMG4pO1xuXG4gIHJldHVybiB7XG4gICAgaWQ6IHBzYnQudW5zaWduZWRUeElkKCksXG4gICAgaW5wdXRzLFxuICAgIGlucHV0QW1vdW50LFxuICAgIG91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgICBjdXN0b21DaGFuZ2VPdXRwdXRzLFxuICAgIG91dHB1dEFtb3VudCxcbiAgICBjaGFuZ2VBbW91bnQsXG4gICAgY3VzdG9tQ2hhbmdlQW1vdW50LFxuICAgIGZlZTogcGFyc2VkLm1pbmVyRmVlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlPdXRwdXQob3V0cHV0OiBPdXRwdXQ8YmlnaW50Pik6IE91dHB1dCB7XG4gIHJldHVybiB7IC4uLm91dHB1dCwgYW1vdW50OiBvdXRwdXQuYW1vdW50LnRvU3RyaW5nKCkgfTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5Q2hhbmdlT3V0cHV0KG91dHB1dDogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8YmlnaW50Pik6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0IHtcbiAgcmV0dXJuIHsgLi4ub3V0cHV0LCBhbW91bnQ6IG91dHB1dC5hbW91bnQudG9TdHJpbmcoKSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblBzYnRXYXNtKFxuICBwc2J0OiBCaXRHb1BzYnQsXG4gIHdhbGxldFhwdWJzOiBUcmlwbGU8c3RyaW5nPiB8IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICBwYXJhbXM6IEV4cGxhaW5Qc2J0V2FzbVBhcmFtc1xuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbldhc20ge1xuICBjb25zdCByZXN1bHQgPSBleHBsYWluUHNidFdhc21CaWdJbnQocHNidCwgd2FsbGV0WHB1YnMsIHBhcmFtcyk7XG4gIHJldHVybiB7XG4gICAgaWQ6IHJlc3VsdC5pZCxcbiAgICBpbnB1dHM6IHJlc3VsdC5pbnB1dHMubWFwKChpKSA9PiAoeyBhZGRyZXNzOiBpLmFkZHJlc3MsIHZhbHVlOiBpLnZhbHVlLnRvU3RyaW5nKCkgfSkpLFxuICAgIGlucHV0QW1vdW50OiByZXN1bHQuaW5wdXRBbW91bnQudG9TdHJpbmcoKSxcbiAgICBvdXRwdXRBbW91bnQ6IHJlc3VsdC5vdXRwdXRBbW91bnQudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VBbW91bnQ6IHJlc3VsdC5jaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBjdXN0b21DaGFuZ2VBbW91bnQ6IHJlc3VsdC5jdXN0b21DaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBvdXRwdXRzOiByZXN1bHQub3V0cHV0cy5tYXAoc3RyaW5naWZ5T3V0cHV0KSxcbiAgICBjaGFuZ2VPdXRwdXRzOiByZXN1bHQuY2hhbmdlT3V0cHV0cy5tYXAoc3RyaW5naWZ5Q2hhbmdlT3V0cHV0KSxcbiAgICBjdXN0b21DaGFuZ2VPdXRwdXRzOiByZXN1bHQuY3VzdG9tQ2hhbmdlT3V0cHV0cy5tYXAoc3RyaW5naWZ5Q2hhbmdlT3V0cHV0KSxcbiAgICBmZWU6IHJlc3VsdC5mZWUudG9TdHJpbmcoKSxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVkVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIGlucHV0Q291bnQ6IG51bWJlcjtcbiAgb3V0cHV0Q291bnQ6IG51bWJlcjtcbiAgY2hhbmdlT3V0cHV0Q291bnQ6IG51bWJlcjtcbiAgaW5wdXRBbW91bnQ6IGJpZ2ludDtcbiAgb3V0cHV0QW1vdW50OiBiaWdpbnQ7XG4gIGNoYW5nZUFtb3VudDogYmlnaW50O1xuICBmZWU6IGJpZ2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZVRyYW5zYWN0aW9uRXhwbGFuYXRpb25zKFxuICBleHBsYW5hdGlvbnM6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25CaWdJbnRbXVxuKTogQWdncmVnYXRlZFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBsZXQgaW5wdXRDb3VudCA9IDA7XG4gIGxldCBvdXRwdXRDb3VudCA9IDA7XG4gIGxldCBjaGFuZ2VPdXRwdXRDb3VudCA9IDA7XG4gIGxldCBmZWUgPSAwbjtcbiAgbGV0IGlucHV0QW1vdW50ID0gMG47XG4gIGxldCBvdXRwdXRBbW91bnQgPSAwbjtcbiAgbGV0IGNoYW5nZUFtb3VudCA9IDBuO1xuXG4gIGZvciAoY29uc3QgZSBvZiBleHBsYW5hdGlvbnMpIHtcbiAgICBpbnB1dENvdW50ICs9IGUuaW5wdXRzLmxlbmd0aDtcbiAgICBvdXRwdXRDb3VudCArPSBlLm91dHB1dHMubGVuZ3RoO1xuICAgIGNoYW5nZU91dHB1dENvdW50ICs9IGUuY2hhbmdlT3V0cHV0cy5sZW5ndGg7XG4gICAgZmVlICs9IGUuZmVlO1xuICAgIGlucHV0QW1vdW50ICs9IGUuaW5wdXRBbW91bnQ7XG4gICAgb3V0cHV0QW1vdW50ICs9IGUub3V0cHV0QW1vdW50O1xuICAgIGNoYW5nZUFtb3VudCArPSBlLmNoYW5nZUFtb3VudDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaW5wdXRDb3VudCxcbiAgICBvdXRwdXRDb3VudCxcbiAgICBjaGFuZ2VPdXRwdXRDb3VudCxcbiAgICBpbnB1dEFtb3VudCxcbiAgICBvdXRwdXRBbW91bnQsXG4gICAgY2hhbmdlQW1vdW50LFxuICAgIGZlZSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { bitgo } from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { ITransactionExplanation as BaseTransactionExplanation } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import type { Bip322Message } from '../../abstractUtxoCoin';
|
|
4
|
+
import type { Output, FixedScriptWalletOutput } from '../types';
|
|
5
|
+
import type { Unspent } from '../../unspent';
|
|
6
|
+
import { UtxoCoinName } from '../../names';
|
|
7
|
+
export interface AbstractUtxoTransactionExplanation<TFee = string, TChangeOutput extends Output = Output> extends BaseTransactionExplanation<TFee, string> {
|
|
8
|
+
/** NOTE: this actually only captures external outputs */
|
|
9
|
+
outputs: Output[];
|
|
10
|
+
changeOutputs: TChangeOutput[];
|
|
11
|
+
customChangeOutputs?: TChangeOutput[];
|
|
12
|
+
customChangeAmount?: string;
|
|
13
|
+
/**
|
|
14
|
+
* BIP322 messages extracted from the transaction inputs.
|
|
15
|
+
* These messages are used for verifying the transaction against the BIP322 standard.
|
|
16
|
+
*/
|
|
17
|
+
messages?: Bip322Message[];
|
|
18
|
+
}
|
|
19
|
+
/** @deprecated - the signature fields are not very useful */
|
|
20
|
+
interface TransactionExplanationWithSignatures<TFee = string, TChangeOutput extends Output = Output> extends AbstractUtxoTransactionExplanation<TFee, TChangeOutput> {
|
|
21
|
+
/** @deprecated - unused outside of tests */
|
|
22
|
+
locktime?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Number of input signatures per input.
|
|
25
|
+
* @deprecated - this is not very useful without knowing who signed each input.
|
|
26
|
+
*/
|
|
27
|
+
inputSignatures: number[];
|
|
28
|
+
/**
|
|
29
|
+
* Highest input signature count for the transaction
|
|
30
|
+
* @deprecated - this is not very useful without knowing who signed each input.
|
|
31
|
+
*/
|
|
32
|
+
signatures: number;
|
|
33
|
+
}
|
|
34
|
+
/** For our wasm backend, we do not return the deprecated fields. We set TFee to string for backwards compatibility. */
|
|
35
|
+
export type TransactionExplanationWasm = AbstractUtxoTransactionExplanation<string, FixedScriptWalletOutput> & {
|
|
36
|
+
inputs: Array<{
|
|
37
|
+
address: string;
|
|
38
|
+
value: string;
|
|
39
|
+
}>;
|
|
40
|
+
inputAmount: string;
|
|
41
|
+
};
|
|
42
|
+
/** When parsing the legacy transaction format, we cannot always infer the fee so we set it to string | undefined */
|
|
43
|
+
export type TransactionExplanationUtxolibLegacy = TransactionExplanationWithSignatures<string | undefined>;
|
|
44
|
+
/** When parsing a PSBT, we can infer the fee so we set TFee to string. */
|
|
45
|
+
export type TransactionExplanationUtxolibPsbt = TransactionExplanationWithSignatures<string>;
|
|
46
|
+
export type TransactionExplanationDescriptor = TransactionExplanationWithSignatures<string, Output>;
|
|
47
|
+
export type TransactionExplanation = TransactionExplanationUtxolibLegacy | TransactionExplanationUtxolibPsbt | TransactionExplanationWasm;
|
|
48
|
+
export type ChangeAddressInfo = {
|
|
49
|
+
address: string;
|
|
50
|
+
chain: number;
|
|
51
|
+
index: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Decompose a raw psbt into useful information, such as the total amounts,
|
|
55
|
+
* change amounts, and transaction outputs.
|
|
56
|
+
*
|
|
57
|
+
* @param psbt {bitgo.UtxoPsbt} The PSBT to explain
|
|
58
|
+
* @param pubs {bitgo.RootWalletKeys | string[]} The public keys to use for the explanation
|
|
59
|
+
* @param coinName {UtxoCoinName} The coin name to use for the explanation
|
|
60
|
+
* @param strict {boolean} Whether to throw an error if the PayGo address proof is invalid
|
|
61
|
+
*/
|
|
62
|
+
export declare function explainPsbt(psbt: bitgo.UtxoPsbt, params: {
|
|
63
|
+
pubs?: bitgo.RootWalletKeys | string[];
|
|
64
|
+
customChangePubs?: bitgo.RootWalletKeys | string[];
|
|
65
|
+
}, coinName: UtxoCoinName, { strict }?: {
|
|
66
|
+
strict?: boolean;
|
|
67
|
+
}): TransactionExplanationUtxolibPsbt;
|
|
68
|
+
export declare function explainLegacyTx<TNumber extends number | bigint>(tx: bitgo.UtxoTransaction<TNumber>, params: {
|
|
69
|
+
pubs?: string[];
|
|
70
|
+
txInfo?: {
|
|
71
|
+
unspents?: Unspent<TNumber>[];
|
|
72
|
+
};
|
|
73
|
+
changeInfo?: {
|
|
74
|
+
address: string;
|
|
75
|
+
chain: number;
|
|
76
|
+
index: number;
|
|
77
|
+
}[];
|
|
78
|
+
}, coinName: UtxoCoinName): TransactionExplanationUtxolibLegacy;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=explainTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"explainTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/explainTransaction.ts"],"names":[],"mappings":"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"}
|