@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,86 @@
|
|
|
1
|
+
import { descriptorWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { getKeySignatures, toBip32Triple, UtxoNamedKeychains } from '../../keychains';
|
|
3
|
+
import { getDescriptorMapFromWallet, getPolicyForEnv } from '../../descriptor';
|
|
4
|
+
import { fromExtendedAddressFormatToScript, toExtendedAddressFormat } from '../recipient';
|
|
5
|
+
import { outputDifferencesWithExpected } from '../outputDifference';
|
|
6
|
+
import { sumValues, toWasmPsbt } from '../../wasmUtil';
|
|
7
|
+
function toRecipientOutput(recipient, coinName) {
|
|
8
|
+
return {
|
|
9
|
+
address: recipient.address,
|
|
10
|
+
value: recipient.amount === 'max' ? 'max' : BigInt(recipient.amount),
|
|
11
|
+
script: fromExtendedAddressFormatToScript(recipient.address, coinName),
|
|
12
|
+
scriptId: undefined, // Recipients are external outputs
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function parseOutputsWithPsbt(psbt, descriptorMap, recipientOutputs, coinName) {
|
|
16
|
+
const parsed = descriptorWallet.parse(psbt, descriptorMap, coinName);
|
|
17
|
+
const outputs = parsed.outputs.map((output) => ({
|
|
18
|
+
...output,
|
|
19
|
+
script: Buffer.from(output.script),
|
|
20
|
+
}));
|
|
21
|
+
const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
|
|
22
|
+
const outputDiffs = outputDifferencesWithExpected(outputs, recipientOutputs);
|
|
23
|
+
return {
|
|
24
|
+
outputs,
|
|
25
|
+
changeOutputs,
|
|
26
|
+
...outputDiffs,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function toBaseOutputs(outputs, coinName) {
|
|
30
|
+
return outputs.map((o) => ({
|
|
31
|
+
address: toExtendedAddressFormat(o.script, coinName),
|
|
32
|
+
amount: o.value === 'max' ? 'max' : BigInt(o.value),
|
|
33
|
+
external: o.scriptId === undefined,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitOutputs, implicitOutputs, missingOutputs }, coinName) {
|
|
37
|
+
const explicitExternalOutputs = explicitOutputs.filter((o) => o.scriptId === undefined);
|
|
38
|
+
const implicitExternalOutputs = implicitOutputs.filter((o) => o.scriptId === undefined);
|
|
39
|
+
return {
|
|
40
|
+
outputs: toBaseOutputs(outputs, coinName),
|
|
41
|
+
changeOutputs: toBaseOutputs(changeOutputs, coinName),
|
|
42
|
+
explicitExternalOutputs: toBaseOutputs(explicitExternalOutputs, coinName),
|
|
43
|
+
explicitExternalSpendAmount: sumValues(explicitExternalOutputs),
|
|
44
|
+
implicitExternalOutputs: toBaseOutputs(implicitExternalOutputs, coinName),
|
|
45
|
+
implicitExternalSpendAmount: sumValues(implicitExternalOutputs),
|
|
46
|
+
missingOutputs: toBaseOutputs(missingOutputs, coinName),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, coinName) {
|
|
50
|
+
const wasmPsbt = toWasmPsbt(psbt);
|
|
51
|
+
return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(wasmPsbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, coinName)), coinName), coinName);
|
|
52
|
+
}
|
|
53
|
+
export function parse(coin, wallet, params) {
|
|
54
|
+
if (params.txParams.allowExternalChangeAddress) {
|
|
55
|
+
throw new Error('allowExternalChangeAddress is not supported for descriptor wallets');
|
|
56
|
+
}
|
|
57
|
+
if (params.txParams.changeAddress) {
|
|
58
|
+
throw new Error('changeAddress is not supported for descriptor wallets');
|
|
59
|
+
}
|
|
60
|
+
const keychains = params.verification?.keychains;
|
|
61
|
+
if (!keychains || !UtxoNamedKeychains.is(keychains)) {
|
|
62
|
+
throw new Error('keychain is required for descriptor wallets');
|
|
63
|
+
}
|
|
64
|
+
const { recipients } = params.txParams;
|
|
65
|
+
if (!recipients) {
|
|
66
|
+
throw new Error('recipients is required');
|
|
67
|
+
}
|
|
68
|
+
const psbt = coin.decodeTransactionFromPrebuild(params.txPrebuild);
|
|
69
|
+
let wasmPsbt;
|
|
70
|
+
try {
|
|
71
|
+
wasmPsbt = toWasmPsbt(psbt);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
throw new Error(`expected psbt to be a wasm-utxo or utxo-lib PSBT: ${e instanceof Error ? e.message : e}`);
|
|
75
|
+
}
|
|
76
|
+
const walletKeys = toBip32Triple(keychains);
|
|
77
|
+
const descriptorMap = getDescriptorMapFromWallet(wallet, walletKeys, getPolicyForEnv(params.wallet.bitgo.env));
|
|
78
|
+
return {
|
|
79
|
+
...toBaseParsedTransactionOutputsFromPsbt(wasmPsbt, descriptorMap, recipients, coin.name),
|
|
80
|
+
keychains,
|
|
81
|
+
keySignatures: getKeySignatures(wallet) ?? {},
|
|
82
|
+
customChange: undefined,
|
|
83
|
+
needsCustomChangeKeySignatureVerification: false,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVEsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRixPQUFPLEVBQUUsNkJBQTZCLEVBQWdDLE1BQU0scUJBQXFCLENBQUM7QUFFbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRSxTQUFTLGlCQUFpQixDQUFDLFNBQWdDLEVBQUUsUUFBc0I7SUFDakYsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3RFLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0NBQWtDO0tBQ3hELENBQUM7QUFDSixDQUFDO0FBUUQsU0FBUyxvQkFBb0IsQ0FDM0IsSUFBVSxFQUNWLGFBQTZDLEVBQzdDLGdCQUFtQyxFQUNuQyxRQUFzQjtJQUV0QixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxNQUFNLE9BQU8sR0FBbUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUQsR0FBRyxNQUFNO1FBQ1QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztLQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxXQUFXLEdBQUcsNkJBQTZCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDN0UsT0FBTztRQUNMLE9BQU87UUFDUCxhQUFhO1FBQ2IsR0FBRyxXQUFXO0tBQ2YsQ0FBQztBQUNKLENBQUM7QUFJRCxTQUFTLGFBQWEsQ0FDcEIsT0FBMkMsRUFDM0MsUUFBc0I7SUFFdEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixDQUFDLENBQUMsRUFBOEIsRUFBRSxDQUFDLENBQUM7UUFDbEMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO1FBQ3BELE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNuRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTO0tBQ25DLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUlELFNBQVMsOEJBQThCLENBQ3JDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBaUIsRUFDM0YsUUFBc0I7SUFFdEIsTUFBTSx1QkFBdUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN4RixPQUFPO1FBQ0wsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3pDLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUNyRCx1QkFBdUIsRUFBRSxhQUFhLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDO1FBQ3pFLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQztRQUMvRCx1QkFBdUIsRUFBRSxhQUFhLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDO1FBQ3pFLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQztRQUMvRCxjQUFjLEVBQUUsYUFBYSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7S0FDeEQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsc0NBQXNDLENBQ3BELElBQXFDLEVBQ3JDLGFBQTZDLEVBQzdDLFVBQW1DLEVBQ25DLFFBQXNCO0lBRXRCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxPQUFPLDhCQUE4QixDQUNuQyxvQkFBb0IsQ0FDbEIsUUFBUSxFQUNSLGFBQWEsRUFDYixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFDckQsUUFBUSxDQUNULEVBQ0QsUUFBUSxDQUNULENBQUM7QUFDSixDQUFDO0FBT0QsTUFBTSxVQUFVLEtBQUssQ0FDbkIsSUFBc0IsRUFDdEIsTUFBeUIsRUFDekIsTUFBZ0Q7SUFFaEQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztJQUNqRCxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLElBQUksUUFBYyxDQUFDO0lBQ25CLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBdUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sYUFBYSxHQUFHLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0csT0FBTztRQUNMLEdBQUcsc0NBQXNDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6RixTQUFTO1FBQ1QsYUFBYSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDN0MsWUFBWSxFQUFFLFNBQVM7UUFDdkIseUNBQXlDLEVBQUUsS0FBSztLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFBzYnQsIGRlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcbmltcG9ydCB7IEJhc2VPdXRwdXQsIEJhc2VQYXJzZWRUcmFuc2FjdGlvbiwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldEtleVNpZ25hdHVyZXMsIHRvQmlwMzJUcmlwbGUsIFV0eG9OYW1lZEtleWNoYWlucyB9IGZyb20gJy4uLy4uL2tleWNoYWlucyc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCwgZ2V0UG9saWN5Rm9yRW52IH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBJRGVzY3JpcHRvcldhbGxldCB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3IvZGVzY3JpcHRvcldhbGxldCc7XG5pbXBvcnQgeyBmcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQsIHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0IH0gZnJvbSAnLi4vcmVjaXBpZW50JztcbmltcG9ydCB7IG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkLCBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkIH0gZnJvbSAnLi4vb3V0cHV0RGlmZmVyZW5jZSc7XG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5pbXBvcnQgeyBzdW1WYWx1ZXMsIHRvV2FzbVBzYnQsIFV0eG9MaWJQc2J0IH0gZnJvbSAnLi4vLi4vd2FzbVV0aWwnO1xuXG50eXBlIFBhcnNlZE91dHB1dCA9IE9taXQ8ZGVzY3JpcHRvcldhbGxldC5QYXJzZWRPdXRwdXQsICdzY3JpcHQnPiAmIHsgc2NyaXB0OiBCdWZmZXIgfTtcblxuZXhwb3J0IHR5cGUgUmVjaXBpZW50T3V0cHV0ID0gT21pdDxQYXJzZWRPdXRwdXQsICd2YWx1ZSc+ICYge1xuICB2YWx1ZTogYmlnaW50IHwgJ21heCc7XG59O1xuXG5mdW5jdGlvbiB0b1JlY2lwaWVudE91dHB1dChyZWNpcGllbnQ6IElUcmFuc2FjdGlvblJlY2lwaWVudCwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IFJlY2lwaWVudE91dHB1dCB7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogcmVjaXBpZW50LmFkZHJlc3MsXG4gICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQgPT09ICdtYXgnID8gJ21heCcgOiBCaWdJbnQocmVjaXBpZW50LmFtb3VudCksXG4gICAgc2NyaXB0OiBmcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQocmVjaXBpZW50LmFkZHJlc3MsIGNvaW5OYW1lKSxcbiAgICBzY3JpcHRJZDogdW5kZWZpbmVkLCAvLyBSZWNpcGllbnRzIGFyZSBleHRlcm5hbCBvdXRwdXRzXG4gIH07XG59XG5cbi8vIFRPRE8oQlRDLTE2OTcpOiBhbGxvdyBvdXRwdXRzIHdpdGggYHZhbHVlOiAnbWF4J2AgaGVyZVxudHlwZSBQYXJzZWRPdXRwdXRzID0gT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZDxQYXJzZWRPdXRwdXQsIFJlY2lwaWVudE91dHB1dD4gJiB7XG4gIG91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xuICBjaGFuZ2VPdXRwdXRzOiBQYXJzZWRPdXRwdXRbXTtcbn07XG5cbmZ1bmN0aW9uIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICBwc2J0OiBQc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudE91dHB1dHM6IFJlY2lwaWVudE91dHB1dFtdLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBQYXJzZWRPdXRwdXRzIHtcbiAgY29uc3QgcGFyc2VkID0gZGVzY3JpcHRvcldhbGxldC5wYXJzZShwc2J0LCBkZXNjcmlwdG9yTWFwLCBjb2luTmFtZSk7XG4gIGNvbnN0IG91dHB1dHM6IFBhcnNlZE91dHB1dFtdID0gcGFyc2VkLm91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgLi4ub3V0cHV0LFxuICAgIHNjcmlwdDogQnVmZmVyLmZyb20ob3V0cHV0LnNjcmlwdCksXG4gIH0pKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBvdXRwdXREaWZmcyA9IG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkKG91dHB1dHMsIHJlY2lwaWVudE91dHB1dHMpO1xuICByZXR1cm4ge1xuICAgIG91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgICAuLi5vdXRwdXREaWZmcyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IEJhc2VPdXRwdXQ8YmlnaW50PltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhvdXRwdXRzOiBSZWNpcGllbnRPdXRwdXRbXSwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+W107XG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRzKFxuICBvdXRwdXRzOiAoUGFyc2VkT3V0cHV0IHwgUmVjaXBpZW50T3V0cHV0KVtdLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdIHtcbiAgcmV0dXJuIG91dHB1dHMubWFwKFxuICAgIChvKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4gPT4gKHtcbiAgICAgIGFkZHJlc3M6IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG8uc2NyaXB0LCBjb2luTmFtZSksXG4gICAgICBhbW91bnQ6IG8udmFsdWUgPT09ICdtYXgnID8gJ21heCcgOiBCaWdJbnQoby52YWx1ZSksXG4gICAgICBleHRlcm5hbDogby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkLFxuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZE91dHB1dHNCaWdJbnQgPSBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzPGJpZ2ludCwgQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4+O1xuXG5mdW5jdGlvbiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMoXG4gIHsgb3V0cHV0cywgY2hhbmdlT3V0cHV0cywgZXhwbGljaXRPdXRwdXRzLCBpbXBsaWNpdE91dHB1dHMsIG1pc3NpbmdPdXRwdXRzIH06IFBhcnNlZE91dHB1dHMsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICBjb25zdCBleHBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGV4cGxpY2l0T3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzID0gaW1wbGljaXRPdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKG91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGNoYW5nZU91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBleHBsaWNpdEV4dGVybmFsT3V0cHV0czogdG9CYXNlT3V0cHV0cyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cywgY29pbk5hbWUpLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBpbXBsaWNpdEV4dGVybmFsT3V0cHV0czogdG9CYXNlT3V0cHV0cyhpbXBsaWNpdEV4dGVybmFsT3V0cHV0cywgY29pbk5hbWUpLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBtaXNzaW5nT3V0cHV0czogdG9CYXNlT3V0cHV0cyhtaXNzaW5nT3V0cHV0cywgY29pbk5hbWUpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQoXG4gIHBzYnQ6IFBzYnQgfCBVdHhvTGliUHNidCB8IFVpbnQ4QXJyYXksXG4gIGRlc2NyaXB0b3JNYXA6IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W10sXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICBjb25zdCB3YXNtUHNidCA9IHRvV2FzbVBzYnQocHNidCk7XG4gIHJldHVybiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMoXG4gICAgcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gICAgICB3YXNtUHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgY29pbk5hbWUpKSxcbiAgICAgIGNvaW5OYW1lXG4gICAgKSxcbiAgICBjb2luTmFtZVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gPSBCYXNlUGFyc2VkVHJhbnNhY3Rpb248XG4gIFRBbW91bnQsXG4gIEJhc2VPdXRwdXQ8VEFtb3VudCB8ICdtYXgnPlxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlKFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICB3YWxsZXQ6IElEZXNjcmlwdG9yV2FsbGV0LFxuICBwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zPG51bWJlciB8IGJpZ2ludD5cbik6IFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+IHtcbiAgaWYgKHBhcmFtcy50eFBhcmFtcy5hbGxvd0V4dGVybmFsQ2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MgaXMgbm90IHN1cHBvcnRlZCBmb3IgZGVzY3JpcHRvciB3YWxsZXRzJyk7XG4gIH1cbiAgaWYgKHBhcmFtcy50eFBhcmFtcy5jaGFuZ2VBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IGtleWNoYWlucyA9IHBhcmFtcy52ZXJpZmljYXRpb24/LmtleWNoYWlucztcbiAgaWYgKCFrZXljaGFpbnMgfHwgIVV0eG9OYW1lZEtleWNoYWlucy5pcyhrZXljaGFpbnMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXljaGFpbiBpcyByZXF1aXJlZCBmb3IgZGVzY3JpcHRvciB3YWxsZXRzJyk7XG4gIH1cbiAgY29uc3QgeyByZWNpcGllbnRzIH0gPSBwYXJhbXMudHhQYXJhbXM7XG4gIGlmICghcmVjaXBpZW50cykge1xuICAgIHRocm93IG5ldyBFcnJvcigncmVjaXBpZW50cyBpcyByZXF1aXJlZCcpO1xuICB9XG4gIGNvbnN0IHBzYnQgPSBjb2luLmRlY29kZVRyYW5zYWN0aW9uRnJvbVByZWJ1aWxkKHBhcmFtcy50eFByZWJ1aWxkKTtcbiAgbGV0IHdhc21Qc2J0OiBQc2J0O1xuICB0cnkge1xuICAgIHdhc21Qc2J0ID0gdG9XYXNtUHNidChwc2J0IGFzIFBzYnQgfCBVdHhvTGliUHNidCB8IFVpbnQ4QXJyYXkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBwc2J0IHRvIGJlIGEgd2FzbS11dHhvIG9yIHV0eG8tbGliIFBTQlQ6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgfVxuICBjb25zdCB3YWxsZXRLZXlzID0gdG9CaXAzMlRyaXBsZShrZXljaGFpbnMpO1xuICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQod2FsbGV0LCB3YWxsZXRLZXlzLCBnZXRQb2xpY3lGb3JFbnYocGFyYW1zLndhbGxldC5iaXRnby5lbnYpKTtcbiAgcmV0dXJuIHtcbiAgICAuLi50b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidCh3YXNtUHNidCwgZGVzY3JpcHRvck1hcCwgcmVjaXBpZW50cywgY29pbi5uYW1lKSxcbiAgICBrZXljaGFpbnMsXG4gICAga2V5U2lnbmF0dXJlczogZ2V0S2V5U2lnbmF0dXJlcyh3YWxsZXQpID8/IHt9LFxuICAgIGN1c3RvbUNoYW5nZTogdW5kZWZpbmVkLFxuICAgIG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uOiBmYWxzZSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
|
|
2
|
+
import { BaseOutput, BaseParsedTransaction } from '../types';
|
|
3
|
+
import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
|
|
4
|
+
import { ParsedDescriptorTransaction } from './parse';
|
|
5
|
+
type AmountType = 'number' | 'bigint' | 'string';
|
|
6
|
+
export declare function toAmountType(v: number | bigint | string, t: AmountType): number | bigint | string;
|
|
7
|
+
type AmountTypeOptions = {
|
|
8
|
+
amountTypeBaseOutput: AmountType;
|
|
9
|
+
amountTypeAggregate: AmountType;
|
|
10
|
+
};
|
|
11
|
+
export declare function parsedDescriptorTransactionToTNumber<TAmount extends number | bigint, TOutput>(obj: ParsedDescriptorTransaction<bigint>, params: AmountTypeOptions): BaseParsedTransaction<TAmount, TOutput>;
|
|
12
|
+
export declare function parseToAmountType<TAmount extends number | bigint>(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<TAmount>): BaseParsedTransaction<TAmount, BaseOutput<string>>;
|
|
13
|
+
export {};
|
|
14
|
+
//# 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;AAEtE,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,GACvC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAKpD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { parse } from './parse';
|
|
2
|
+
export function toAmountType(v, t) {
|
|
3
|
+
if (v === 'max') {
|
|
4
|
+
return v;
|
|
5
|
+
}
|
|
6
|
+
switch (t) {
|
|
7
|
+
case 'number':
|
|
8
|
+
return Number(v);
|
|
9
|
+
case 'bigint':
|
|
10
|
+
return BigInt(v);
|
|
11
|
+
case 'string':
|
|
12
|
+
return String(v);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function baseOutputToTNumber(output, amountType) {
|
|
16
|
+
return {
|
|
17
|
+
address: output.address,
|
|
18
|
+
amount: toAmountType(output.amount, amountType),
|
|
19
|
+
external: output.external,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function entryToTNumber(k, v, params) {
|
|
23
|
+
switch (k) {
|
|
24
|
+
case 'outputs':
|
|
25
|
+
case 'changeOutputs':
|
|
26
|
+
case 'explicitExternalOutputs':
|
|
27
|
+
case 'implicitExternalOutputs':
|
|
28
|
+
case 'missingOutputs':
|
|
29
|
+
if (v === undefined) {
|
|
30
|
+
return [k, v];
|
|
31
|
+
}
|
|
32
|
+
if (Array.isArray(v)) {
|
|
33
|
+
return [k, v.map((o) => baseOutputToTNumber(o, params.amountTypeBaseOutput))];
|
|
34
|
+
}
|
|
35
|
+
throw new Error('expected array');
|
|
36
|
+
case 'explicitExternalSpendAmount':
|
|
37
|
+
case 'implicitExternalSpendAmount':
|
|
38
|
+
if (typeof v !== 'bigint') {
|
|
39
|
+
throw new Error('expected bigint');
|
|
40
|
+
}
|
|
41
|
+
return [k, toAmountType(v, params.amountTypeAggregate)];
|
|
42
|
+
default:
|
|
43
|
+
return [k, v];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function parsedDescriptorTransactionToTNumber(obj, params) {
|
|
47
|
+
return Object.fromEntries(Object.entries(obj).map(([k, v]) => entryToTNumber(k, v, params)));
|
|
48
|
+
}
|
|
49
|
+
export function parseToAmountType(coin, wallet, params) {
|
|
50
|
+
return parsedDescriptorTransactionToTNumber(parse(coin, wallet, params), {
|
|
51
|
+
amountTypeAggregate: coin.amountType,
|
|
52
|
+
amountTypeBaseOutput: 'string',
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUb0Ftb3VudFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZVRvQW1vdW50VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxFQUErQixNQUFNLFNBQVMsQ0FBQztBQUk3RCxNQUFNLFVBQVUsWUFBWSxDQUFDLENBQTJCLEVBQUUsQ0FBYTtJQUNyRSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ1YsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUM7QUFPRCxTQUFTLG1CQUFtQixDQUMxQixNQUFrQyxFQUNsQyxVQUFzQjtJQUV0QixPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQVk7UUFDMUQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO0tBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxjQUFjLENBR3JCLENBQUksRUFBRSxDQUFJLEVBQUUsTUFBeUI7SUFDckMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxlQUFlLENBQUM7UUFDckIsS0FBSyx5QkFBeUIsQ0FBQztRQUMvQixLQUFLLHlCQUF5QixDQUFDO1FBQy9CLEtBQUssZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQU0sQ0FBQyxDQUFDO1lBQ3JGLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsS0FBSyw2QkFBNkIsQ0FBQztRQUNuQyxLQUFLLDZCQUE2QjtZQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQU0sQ0FBQyxDQUFDO1FBQy9EO1lBQ0UsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsR0FBd0MsRUFDeEMsTUFBeUI7SUFFekIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBOEMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDcEUsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFzQixFQUN0QixNQUF5QixFQUN6QixNQUF3QztJQUV4QyxPQUFPLG9DQUFvQyxDQUE4QixLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRTtRQUNwRyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVTtRQUNwQyxvQkFBb0IsRUFBRSxRQUFRO0tBQy9CLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuXG5pbXBvcnQgeyBwYXJzZSwgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi9wYXJzZSc7XG5cbnR5cGUgQW1vdW50VHlwZSA9ICdudW1iZXInIHwgJ2JpZ2ludCcgfCAnc3RyaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQW1vdW50VHlwZSh2OiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcsIHQ6IEFtb3VudFR5cGUpOiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcge1xuICBpZiAodiA9PT0gJ21heCcpIHtcbiAgICByZXR1cm4gdjtcbiAgfVxuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIE51bWJlcih2KTtcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgcmV0dXJuIEJpZ0ludCh2KTtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgfVxufVxuXG50eXBlIEFtb3VudFR5cGVPcHRpb25zID0ge1xuICBhbW91bnRUeXBlQmFzZU91dHB1dDogQW1vdW50VHlwZTtcbiAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogQW1vdW50VHlwZTtcbn07XG5cbmZ1bmN0aW9uIGJhc2VPdXRwdXRUb1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG91dHB1dDogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4sXG4gIGFtb3VudFR5cGU6IEFtb3VudFR5cGVcbik6IEJhc2VPdXRwdXQ8VEFtb3VudD4ge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC5hbW91bnQsIGFtb3VudFR5cGUpIGFzIFRBbW91bnQsXG4gICAgZXh0ZXJuYWw6IG91dHB1dC5leHRlcm5hbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZW50cnlUb1ROdW1iZXI8XG4gIEsgZXh0ZW5kcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PixcbiAgViBleHRlbmRzIFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+W0tdXG4+KGs6IEssIHY6IFYsIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnMpOiBbSywgVl0ge1xuICBzd2l0Y2ggKGspIHtcbiAgICBjYXNlICdvdXRwdXRzJzpcbiAgICBjYXNlICdjaGFuZ2VPdXRwdXRzJzpcbiAgICBjYXNlICdleHBsaWNpdEV4dGVybmFsT3V0cHV0cyc6XG4gICAgY2FzZSAnaW1wbGljaXRFeHRlcm5hbE91dHB1dHMnOlxuICAgIGNhc2UgJ21pc3NpbmdPdXRwdXRzJzpcbiAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtrLCB2XTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgIHJldHVybiBbaywgdi5tYXAoKG8pID0+IGJhc2VPdXRwdXRUb1ROdW1iZXIobywgcGFyYW1zLmFtb3VudFR5cGVCYXNlT3V0cHV0KSkgYXMgVl07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGFycmF5Jyk7XG4gICAgY2FzZSAnZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50JzpcbiAgICBjYXNlICdpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQnOlxuICAgICAgaWYgKHR5cGVvZiB2ICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGJpZ2ludCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtrLCB0b0Ftb3VudFR5cGUodiwgcGFyYW1zLmFtb3VudFR5cGVBZ2dyZWdhdGUpIGFzIFZdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW2ssIHZdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb25Ub1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4oXG4gIG9iajogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnNcbik6IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUQW1vdW50LCBUT3V0cHV0PiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5tYXAoKFtrLCB2XSkgPT4gZW50cnlUb1ROdW1iZXIoayBhcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiwgdiwgcGFyYW1zKSlcbiAgKSBhcyBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VEFtb3VudCwgVE91dHB1dD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvQW1vdW50VHlwZTxUQW1vdW50IGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUQW1vdW50PlxuKTogQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ge1xuICByZXR1cm4gcGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uVG9UTnVtYmVyPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ocGFyc2UoY29pbiwgd2FsbGV0LCBwYXJhbXMpLCB7XG4gICAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogY29pbi5hbW91bnRUeXBlLFxuICAgIGFtb3VudFR5cGVCYXNlT3V0cHV0OiAnc3RyaW5nJyxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -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,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcmVjaXBpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWNpcGllbnQgPSB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7XG59O1xuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Psbt, descriptorWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import type { SignerKey } from '../../wasmUtil';
|
|
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
|
+
//# 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,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,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,39 @@
|
|
|
1
|
+
import { descriptorWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
export class ErrorUnknownInput extends Error {
|
|
3
|
+
constructor(vin) {
|
|
4
|
+
super(`missing descriptor for input ${vin}`);
|
|
5
|
+
this.vin = vin;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Sign a PSBT with the given keychain.
|
|
10
|
+
*
|
|
11
|
+
* Checks the descriptor map for each input in the PSBT. If the input is not
|
|
12
|
+
* found in the descriptor map, the behavior is determined by the `onUnknownInput`
|
|
13
|
+
* parameter.
|
|
14
|
+
*
|
|
15
|
+
* @param psbt - psbt to sign
|
|
16
|
+
* @param descriptorMap - map of descriptor name to descriptor
|
|
17
|
+
* @param signerKey - key to sign with (BIP32 or ECPair)
|
|
18
|
+
* @param params - onUnknownInput: 'throw' | 'skip' | 'sign'.
|
|
19
|
+
* Determines what to do when an input is not found in the
|
|
20
|
+
* descriptor map.
|
|
21
|
+
*/
|
|
22
|
+
export function signPsbt(psbt, descriptorMap, signerKey, params) {
|
|
23
|
+
const inputs = psbt.getInputs();
|
|
24
|
+
const unknownInputs = inputs
|
|
25
|
+
.map((input, vin) => ({ input, vin }))
|
|
26
|
+
.filter(({ input }) => !descriptorWallet.findDescriptorForInput(input, descriptorMap));
|
|
27
|
+
if (unknownInputs.length > 0) {
|
|
28
|
+
switch (params.onUnknownInput) {
|
|
29
|
+
case 'skip':
|
|
30
|
+
return;
|
|
31
|
+
case 'throw':
|
|
32
|
+
throw new ErrorUnknownInput(unknownInputs[0].vin);
|
|
33
|
+
case 'sign':
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
descriptorWallet.signWithKey(psbt, signerKey);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9zaWduUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVEsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkxRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsS0FBSztJQUMxQyxZQUFtQixHQUFXO1FBQzVCLEtBQUssQ0FBQyxnQ0FBZ0MsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUQ1QixRQUFHLEdBQUgsR0FBRyxDQUFRO0lBRTlCLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFVLEVBQ1YsYUFBNkMsRUFDN0MsU0FBb0IsRUFDcEIsTUFFQztJQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxNQUFNLGFBQWEsR0FBRyxNQUFNO1NBQ3pCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNyQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRXpGLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM3QixRQUFRLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM5QixLQUFLLE1BQU07Z0JBQ1QsT0FBTztZQUNULEtBQUssT0FBTztnQkFDVixNQUFNLElBQUksaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELEtBQUssTUFBTTtnQkFDVCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQc2J0LCBkZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB0eXBlIHsgU2lnbmVyS2V5IH0gZnJvbSAnLi4vLi4vd2FzbVV0aWwnO1xuXG5leHBvcnQgY2xhc3MgRXJyb3JVbmtub3duSW5wdXQgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2aW46IG51bWJlcikge1xuICAgIHN1cGVyKGBtaXNzaW5nIGRlc2NyaXB0b3IgZm9yIGlucHV0ICR7dmlufWApO1xuICB9XG59XG5cbi8qKlxuICogU2lnbiBhIFBTQlQgd2l0aCB0aGUgZ2l2ZW4ga2V5Y2hhaW4uXG4gKlxuICogQ2hlY2tzIHRoZSBkZXNjcmlwdG9yIG1hcCBmb3IgZWFjaCBpbnB1dCBpbiB0aGUgUFNCVC4gSWYgdGhlIGlucHV0IGlzIG5vdFxuICogZm91bmQgaW4gdGhlIGRlc2NyaXB0b3IgbWFwLCB0aGUgYmVoYXZpb3IgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYG9uVW5rbm93bklucHV0YFxuICogcGFyYW1ldGVyLlxuICpcbiAqIEBwYXJhbSBwc2J0IC0gcHNidCB0byBzaWduXG4gKiBAcGFyYW0gZGVzY3JpcHRvck1hcCAtIG1hcCBvZiBkZXNjcmlwdG9yIG5hbWUgdG8gZGVzY3JpcHRvclxuICogQHBhcmFtIHNpZ25lcktleSAtIGtleSB0byBzaWduIHdpdGggKEJJUDMyIG9yIEVDUGFpcilcbiAqIEBwYXJhbSBwYXJhbXMgLSBvblVua25vd25JbnB1dDogJ3Rocm93JyB8ICdza2lwJyB8ICdzaWduJy5cbiAqICAgICAgICAgICAgICAgICBEZXRlcm1pbmVzIHdoYXQgdG8gZG8gd2hlbiBhbiBpbnB1dCBpcyBub3QgZm91bmQgaW4gdGhlXG4gKiAgICAgICAgICAgICAgICAgZGVzY3JpcHRvciBtYXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduUHNidChcbiAgcHNidDogUHNidCxcbiAgZGVzY3JpcHRvck1hcDogZGVzY3JpcHRvcldhbGxldC5EZXNjcmlwdG9yTWFwLFxuICBzaWduZXJLZXk6IFNpZ25lcktleSxcbiAgcGFyYW1zOiB7XG4gICAgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfCAnc2tpcCcgfCAnc2lnbic7XG4gIH1cbik6IHZvaWQge1xuICBjb25zdCBpbnB1dHMgPSBwc2J0LmdldElucHV0cygpO1xuICBjb25zdCB1bmtub3duSW5wdXRzID0gaW5wdXRzXG4gICAgLm1hcCgoaW5wdXQsIHZpbikgPT4gKHsgaW5wdXQsIHZpbiB9KSlcbiAgICAuZmlsdGVyKCh7IGlucHV0IH0pID0+ICFkZXNjcmlwdG9yV2FsbGV0LmZpbmREZXNjcmlwdG9yRm9ySW5wdXQoaW5wdXQsIGRlc2NyaXB0b3JNYXApKTtcblxuICBpZiAodW5rbm93bklucHV0cy5sZW5ndGggPiAwKSB7XG4gICAgc3dpdGNoIChwYXJhbXMub25Vbmtub3duSW5wdXQpIHtcbiAgICAgIGNhc2UgJ3NraXAnOlxuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICd0aHJvdyc6XG4gICAgICAgIHRocm93IG5ldyBFcnJvclVua25vd25JbnB1dCh1bmtub3duSW5wdXRzWzBdLnZpbik7XG4gICAgICBjYXNlICdzaWduJzpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGRlc2NyaXB0b3JXYWxsZXQuc2lnbldpdGhLZXkocHNidCwgc2lnbmVyS2V5KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
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 { UtxoCoinName } from '../../names';
|
|
6
|
+
import { UtxoLibPsbt } from '../../wasmUtil';
|
|
7
|
+
export declare class ValidationError extends Error {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class ErrorMissingOutputs extends ValidationError {
|
|
11
|
+
missingOutputs: BaseOutput<bigint | 'max'>[];
|
|
12
|
+
constructor(missingOutputs: BaseOutput<bigint | 'max'>[]);
|
|
13
|
+
}
|
|
14
|
+
export declare class ErrorImplicitExternalOutputs extends ValidationError {
|
|
15
|
+
implicitExternalOutputs: BaseOutput<bigint | 'max'>[];
|
|
16
|
+
constructor(implicitExternalOutputs: BaseOutput<bigint | 'max'>[]);
|
|
17
|
+
}
|
|
18
|
+
export declare class AggregateValidationError extends ValidationError {
|
|
19
|
+
errors: ValidationError[];
|
|
20
|
+
constructor(errors: ValidationError[]);
|
|
21
|
+
}
|
|
22
|
+
export declare function assertExpectedOutputDifference(parsedOutputs: BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>): void;
|
|
23
|
+
export declare function assertValidTransaction(psbt: Psbt | UtxoLibPsbt | Uint8Array, descriptors: descriptorWallet.DescriptorMap, recipients: ITransactionRecipient[], coinName: UtxoCoinName): void;
|
|
24
|
+
/**
|
|
25
|
+
* Wrapper around assertValidTransaction that returns a boolean instead of throwing.
|
|
26
|
+
*
|
|
27
|
+
* We follow the AbstractUtxoCoin interface here which is a bit confused - the return value is a boolean but we
|
|
28
|
+
* also throw errors (because we actually want to know what went wrong).
|
|
29
|
+
*
|
|
30
|
+
* @param coin
|
|
31
|
+
* @param params
|
|
32
|
+
* @param descriptorMap
|
|
33
|
+
* @returns {boolean} True if verification passes
|
|
34
|
+
* @throws {TxIntentMismatchError} if transaction validation fails
|
|
35
|
+
*/
|
|
36
|
+
export declare function verifyTransaction<TNumber extends number | bigint>(coin: AbstractUtxoCoin, params: VerifyTransactionOptions<TNumber>, descriptorMap: descriptorWallet.DescriptorMap): Promise<boolean>;
|
|
37
|
+
//# 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,aAAa,CAAC;AAC3C,OAAO,EAAc,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIzD,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,WAAW,GAAG,UAAU,EACrC,WAAW,EAAE,gBAAgB,CAAC,aAAa,EAC3C,UAAU,EAAE,qBAAqB,EAAE,EACnC,QAAQ,EAAE,YAAY,GACrB,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,GAC5C,OAAO,CAAC,OAAO,CAAC,CAuBlB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { TxIntentMismatchError } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { toWasmPsbt } from '../../wasmUtil';
|
|
3
|
+
import { toBaseParsedTransactionOutputsFromPsbt } from './parse';
|
|
4
|
+
export class ValidationError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ErrorMissingOutputs extends ValidationError {
|
|
10
|
+
constructor(missingOutputs) {
|
|
11
|
+
super(`missing outputs (count=${missingOutputs.length})`);
|
|
12
|
+
this.missingOutputs = missingOutputs;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class ErrorImplicitExternalOutputs extends ValidationError {
|
|
16
|
+
constructor(implicitExternalOutputs) {
|
|
17
|
+
super(`unexpected implicit external outputs (count=${implicitExternalOutputs.length})`);
|
|
18
|
+
this.implicitExternalOutputs = implicitExternalOutputs;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class AggregateValidationError extends ValidationError {
|
|
22
|
+
constructor(errors) {
|
|
23
|
+
super(`aggregate validation error (count=${errors.length})`);
|
|
24
|
+
this.errors = errors;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function assertExpectedOutputDifference(parsedOutputs) {
|
|
28
|
+
const errors = [];
|
|
29
|
+
if (parsedOutputs.missingOutputs.length > 0) {
|
|
30
|
+
errors.push(new ErrorMissingOutputs(parsedOutputs.missingOutputs));
|
|
31
|
+
}
|
|
32
|
+
if (parsedOutputs.implicitExternalOutputs.length > 0) {
|
|
33
|
+
// FIXME: for paygo we need to relax this a little bit
|
|
34
|
+
errors.push(new ErrorImplicitExternalOutputs(parsedOutputs.implicitExternalOutputs));
|
|
35
|
+
}
|
|
36
|
+
if (errors.length > 0) {
|
|
37
|
+
// FIXME(BTC-1688): enable ES2021
|
|
38
|
+
// throw new AggregateError(errors);
|
|
39
|
+
throw new AggregateValidationError(errors);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function assertValidTransaction(psbt, descriptors, recipients, coinName) {
|
|
43
|
+
assertExpectedOutputDifference(toBaseParsedTransactionOutputsFromPsbt(psbt, descriptors, recipients, coinName));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Wrapper around assertValidTransaction that returns a boolean instead of throwing.
|
|
47
|
+
*
|
|
48
|
+
* We follow the AbstractUtxoCoin interface here which is a bit confused - the return value is a boolean but we
|
|
49
|
+
* also throw errors (because we actually want to know what went wrong).
|
|
50
|
+
*
|
|
51
|
+
* @param coin
|
|
52
|
+
* @param params
|
|
53
|
+
* @param descriptorMap
|
|
54
|
+
* @returns {boolean} True if verification passes
|
|
55
|
+
* @throws {TxIntentMismatchError} if transaction validation fails
|
|
56
|
+
*/
|
|
57
|
+
export async function verifyTransaction(coin, params, descriptorMap) {
|
|
58
|
+
const tx = coin.decodeTransactionFromPrebuild(params.txPrebuild);
|
|
59
|
+
let psbt;
|
|
60
|
+
try {
|
|
61
|
+
psbt = toWasmPsbt(tx);
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
const txExplanation = await TxIntentMismatchError.tryGetTxExplanation(coin, params.txPrebuild);
|
|
65
|
+
const errorDetail = e instanceof Error ? e.message : String(e);
|
|
66
|
+
throw new TxIntentMismatchError(`unexpected transaction type: ${errorDetail}`, params.reqId, [params.txParams], params.txPrebuild.txHex, txExplanation);
|
|
67
|
+
}
|
|
68
|
+
assertValidTransaction(psbt, descriptorMap, params.txParams.recipients ?? [], coin.name);
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci92ZXJpZnlUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXlCLHFCQUFxQixFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFNL0YsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVqRSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxLQUFLO0lBQ3hDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFDdEQsWUFBbUIsY0FBNEM7UUFDN0QsS0FBSyxDQUFDLDBCQUEwQixjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUR6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7SUFFL0QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGVBQWU7SUFDL0QsWUFBbUIsdUJBQXFEO1FBQ3RFLEtBQUssQ0FBQywrQ0FBK0MsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUR2RSw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQThCO0lBRXhFLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxlQUFlO0lBQzNELFlBQW1CLE1BQXlCO1FBQzFDLEtBQUssQ0FBQyxxQ0FBcUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFENUMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFFNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxhQUErRTtJQUUvRSxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBQ3JDLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxJQUFJLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckQsc0RBQXNEO1FBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEIsaUNBQWlDO1FBQ2pDLG9DQUFvQztRQUNwQyxNQUFNLElBQUksd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLElBQXFDLEVBQ3JDLFdBQTJDLEVBQzNDLFVBQW1DLEVBQ25DLFFBQXNCO0lBRXRCLDhCQUE4QixDQUFDLHNDQUFzQyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDbEgsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsSUFBc0IsRUFDdEIsTUFBeUMsRUFDekMsYUFBNkM7SUFFN0MsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRSxJQUFJLElBQVUsQ0FBQztJQUNmLElBQUksQ0FBQztRQUNILElBQUksR0FBRyxVQUFVLENBQUMsRUFBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsTUFBTSxhQUFhLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FDbkUsSUFBNEIsRUFDNUIsTUFBTSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLElBQUkscUJBQXFCLENBQzdCLGdDQUFnQyxXQUFXLEVBQUUsRUFDN0MsTUFBTSxDQUFDLEtBQUssRUFDWixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDakIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3ZCLGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIFR4SW50ZW50TWlzbWF0Y2hFcnJvciwgSUJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBQc2J0LCBkZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcbmltcG9ydCB7IHRvV2FzbVBzYnQsIFV0eG9MaWJQc2J0IH0gZnJvbSAnLi4vLi4vd2FzbVV0aWwnO1xuXG5pbXBvcnQgeyB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidCB9IGZyb20gJy4vcGFyc2UnO1xuXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JNaXNzaW5nT3V0cHV0cyBleHRlbmRzIFZhbGlkYXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtaXNzaW5nT3V0cHV0czogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSkge1xuICAgIHN1cGVyKGBtaXNzaW5nIG91dHB1dHMgKGNvdW50PSR7bWlzc2luZ091dHB1dHMubGVuZ3RofSlgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyBleHRlbmRzIFZhbGlkYXRpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbXBsaWNpdEV4dGVybmFsT3V0cHV0czogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSkge1xuICAgIHN1cGVyKGB1bmV4cGVjdGVkIGltcGxpY2l0IGV4dGVybmFsIG91dHB1dHMgKGNvdW50PSR7aW1wbGljaXRFeHRlcm5hbE91dHB1dHMubGVuZ3RofSlgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgVmFsaWRhdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yczogVmFsaWRhdGlvbkVycm9yW10pIHtcbiAgICBzdXBlcihgYWdncmVnYXRlIHZhbGlkYXRpb24gZXJyb3IgKGNvdW50PSR7ZXJyb3JzLmxlbmd0aH0pYCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShcbiAgcGFyc2VkT3V0cHV0czogQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+PlxuKTogdm9pZCB7XG4gIGNvbnN0IGVycm9yczogVmFsaWRhdGlvbkVycm9yW10gPSBbXTtcbiAgaWYgKHBhcnNlZE91dHB1dHMubWlzc2luZ091dHB1dHMubGVuZ3RoID4gMCkge1xuICAgIGVycm9ycy5wdXNoKG5ldyBFcnJvck1pc3NpbmdPdXRwdXRzKHBhcnNlZE91dHB1dHMubWlzc2luZ091dHB1dHMpKTtcbiAgfVxuICBpZiAocGFyc2VkT3V0cHV0cy5pbXBsaWNpdEV4dGVybmFsT3V0cHV0cy5sZW5ndGggPiAwKSB7XG4gICAgLy8gRklYTUU6IGZvciBwYXlnbyB3ZSBuZWVkIHRvIHJlbGF4IHRoaXMgYSBsaXR0bGUgYml0XG4gICAgZXJyb3JzLnB1c2gobmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMocGFyc2VkT3V0cHV0cy5pbXBsaWNpdEV4dGVybmFsT3V0cHV0cykpO1xuICB9XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIC8vIEZJWE1FKEJUQy0xNjg4KTogZW5hYmxlIEVTMjAyMVxuICAgIC8vIHRocm93IG5ldyBBZ2dyZWdhdGVFcnJvcihlcnJvcnMpO1xuICAgIHRocm93IG5ldyBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IoZXJyb3JzKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbihcbiAgcHNidDogUHNidCB8IFV0eG9MaWJQc2J0IHwgVWludDhBcnJheSxcbiAgZGVzY3JpcHRvcnM6IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W10sXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IHZvaWQge1xuICBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UodG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQocHNidCwgZGVzY3JpcHRvcnMsIHJlY2lwaWVudHMsIGNvaW5OYW1lKSk7XG59XG5cbi8qKlxuICogV3JhcHBlciBhcm91bmQgYXNzZXJ0VmFsaWRUcmFuc2FjdGlvbiB0aGF0IHJldHVybnMgYSBib29sZWFuIGluc3RlYWQgb2YgdGhyb3dpbmcuXG4gKlxuICogV2UgZm9sbG93IHRoZSBBYnN0cmFjdFV0eG9Db2luIGludGVyZmFjZSBoZXJlIHdoaWNoIGlzIGEgYml0IGNvbmZ1c2VkIC0gdGhlIHJldHVybiB2YWx1ZSBpcyBhIGJvb2xlYW4gYnV0IHdlXG4gKiBhbHNvIHRocm93IGVycm9ycyAoYmVjYXVzZSB3ZSBhY3R1YWxseSB3YW50IHRvIGtub3cgd2hhdCB3ZW50IHdyb25nKS5cbiAqXG4gKiBAcGFyYW0gY29pblxuICogQHBhcmFtIHBhcmFtc1xuICogQHBhcmFtIGRlc2NyaXB0b3JNYXBcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZlcmlmaWNhdGlvbiBwYXNzZXNcbiAqIEB0aHJvd3Mge1R4SW50ZW50TWlzbWF0Y2hFcnJvcn0gaWYgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+LFxuICBkZXNjcmlwdG9yTWFwOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXBcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCB0eCA9IGNvaW4uZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQocGFyYW1zLnR4UHJlYnVpbGQpO1xuICBsZXQgcHNidDogUHNidDtcbiAgdHJ5IHtcbiAgICBwc2J0ID0gdG9XYXNtUHNidCh0eCBhcyBQc2J0IHwgVXR4b0xpYlBzYnQgfCBVaW50OEFycmF5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnN0IHR4RXhwbGFuYXRpb24gPSBhd2FpdCBUeEludGVudE1pc21hdGNoRXJyb3IudHJ5R2V0VHhFeHBsYW5hdGlvbihcbiAgICAgIGNvaW4gYXMgdW5rbm93biBhcyBJQmFzZUNvaW4sXG4gICAgICBwYXJhbXMudHhQcmVidWlsZFxuICAgICk7XG4gICAgY29uc3QgZXJyb3JEZXRhaWwgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG4gICAgdGhyb3cgbmV3IFR4SW50ZW50TWlzbWF0Y2hFcnJvcihcbiAgICAgIGB1bmV4cGVjdGVkIHRyYW5zYWN0aW9uIHR5cGU6ICR7ZXJyb3JEZXRhaWx9YCxcbiAgICAgIHBhcmFtcy5yZXFJZCxcbiAgICAgIFtwYXJhbXMudHhQYXJhbXNdLFxuICAgICAgcGFyYW1zLnR4UHJlYnVpbGQudHhIZXgsXG4gICAgICB0eEV4cGxhbmF0aW9uXG4gICAgKTtcbiAgfVxuXG4gIGFzc2VydFZhbGlkVHJhbnNhY3Rpb24ocHNidCwgZGVzY3JpcHRvck1hcCwgcGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMgPz8gW10sIGNvaW4ubmFtZSk7XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { IWallet, Triple } from '@bitgo-beta/sdk-core';
|
|
4
|
+
import { UtxoCoinName } from '../names';
|
|
5
|
+
import type { Unspent } from '../unspent';
|
|
6
|
+
import type { TransactionExplanationUtxolibLegacy, TransactionExplanationUtxolibPsbt, TransactionExplanationWasm } from './fixedScript/explainTransaction';
|
|
7
|
+
import * as fixedScript from './fixedScript';
|
|
8
|
+
/**
|
|
9
|
+
* Decompose a raw transaction into useful information, such as the total amounts,
|
|
10
|
+
* change amounts, and transaction outputs.
|
|
11
|
+
*/
|
|
12
|
+
export declare function explainTx<TNumber extends number | bigint>(tx: utxolib.bitgo.UtxoTransaction<TNumber> | utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt, params: {
|
|
13
|
+
wallet?: IWallet;
|
|
14
|
+
pubs?: string[];
|
|
15
|
+
customChangeXpubs?: Triple<string>;
|
|
16
|
+
txInfo?: {
|
|
17
|
+
unspents?: Unspent<TNumber>[];
|
|
18
|
+
};
|
|
19
|
+
changeInfo?: fixedScript.ChangeAddressInfo[];
|
|
20
|
+
}, coinName: UtxoCoinName): TransactionExplanationUtxolibLegacy | TransactionExplanationUtxolibPsbt | TransactionExplanationWasm;
|
|
21
|
+
//# 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,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAY,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKjE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C,OAAO,KAAK,EACV,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACvD,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EACjG,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;IAC3C,UAAU,CAAC,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC;CAC9C,EACD,QAAQ,EAAE,YAAY,GACrB,mCAAmC,GAAG,iCAAiC,GAAG,0BAA0B,CA0CtG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { isTriple } from '@bitgo-beta/sdk-core';
|
|
4
|
+
import { getDescriptorMapFromWallet, isDescriptorWallet } from '../descriptor';
|
|
5
|
+
import { toBip32Triple } from '../keychains';
|
|
6
|
+
import { getPolicyForEnv } from '../descriptor/validatePolicy';
|
|
7
|
+
import { toWasmPsbt } from '../wasmUtil';
|
|
8
|
+
import { getReplayProtectionPubkeys } from './fixedScript/replayProtection';
|
|
9
|
+
import * as fixedScript from './fixedScript';
|
|
10
|
+
import * as descriptor from './descriptor';
|
|
11
|
+
/**
|
|
12
|
+
* Decompose a raw transaction into useful information, such as the total amounts,
|
|
13
|
+
* change amounts, and transaction outputs.
|
|
14
|
+
*/
|
|
15
|
+
export function explainTx(tx, params, coinName) {
|
|
16
|
+
if (params.wallet && isDescriptorWallet(params.wallet)) {
|
|
17
|
+
if (tx instanceof utxolib.bitgo.UtxoPsbt) {
|
|
18
|
+
if (!params.pubs || !isTriple(params.pubs)) {
|
|
19
|
+
throw new Error('pub triple is required for descriptor wallets');
|
|
20
|
+
}
|
|
21
|
+
const walletKeys = toBip32Triple(params.pubs);
|
|
22
|
+
const descriptors = getDescriptorMapFromWallet(params.wallet, walletKeys, getPolicyForEnv(params.wallet.bitgo.env));
|
|
23
|
+
return descriptor.explainPsbt(toWasmPsbt(tx), descriptors, coinName);
|
|
24
|
+
}
|
|
25
|
+
throw new Error('legacy transactions are not supported for descriptor wallets');
|
|
26
|
+
}
|
|
27
|
+
if (tx instanceof utxolib.bitgo.UtxoPsbt) {
|
|
28
|
+
return fixedScript.explainPsbt(tx, { ...params, customChangePubs: params.customChangeXpubs }, coinName);
|
|
29
|
+
}
|
|
30
|
+
else if (tx instanceof fixedScriptWallet.BitGoPsbt) {
|
|
31
|
+
const pubs = params.pubs;
|
|
32
|
+
if (!pubs) {
|
|
33
|
+
throw new Error('pub triple is required');
|
|
34
|
+
}
|
|
35
|
+
const walletXpubs = pubs instanceof utxolib.bitgo.RootWalletKeys
|
|
36
|
+
? pubs.triple.map((k) => k.neutered().toBase58())
|
|
37
|
+
: isTriple(pubs)
|
|
38
|
+
? pubs
|
|
39
|
+
: undefined;
|
|
40
|
+
if (!walletXpubs) {
|
|
41
|
+
throw new Error('pub triple must be valid triple or RootWalletKeys');
|
|
42
|
+
}
|
|
43
|
+
return fixedScript.explainPsbtWasm(tx, walletXpubs, {
|
|
44
|
+
replayProtection: {
|
|
45
|
+
publicKeys: getReplayProtectionPubkeys(coinName),
|
|
46
|
+
},
|
|
47
|
+
customChangeWalletXpubs: params.customChangeXpubs,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return fixedScript.explainLegacyTx(tx, params, coinName);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNNUUsT0FBTyxLQUFLLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFFM0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsRUFBaUcsRUFDakcsTUFNQyxFQUNELFFBQXNCO0lBRXRCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLEVBQUUsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUNELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsTUFBTSxXQUFXLEdBQUcsMEJBQTBCLENBQzVDLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsVUFBVSxFQUNWLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDekMsQ0FBQztZQUNGLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELElBQUksRUFBRSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsT0FBTyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFHLENBQUM7U0FBTSxJQUFJLEVBQUUsWUFBWSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQ2YsSUFBSSxZQUFZLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYztZQUMxQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBb0I7WUFDckUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBRSxJQUF1QjtnQkFDMUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUNsRCxnQkFBZ0IsRUFBRTtnQkFDaEIsVUFBVSxFQUFFLDBCQUEwQixDQUFDLFFBQVEsQ0FBQzthQUNqRDtZQUNELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCB7IGlzVHJpcGxlLCBJV2FsbGV0LCBUcmlwbGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBpc0Rlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IHRvQmlwMzJUcmlwbGUgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgZ2V0UG9saWN5Rm9yRW52IH0gZnJvbSAnLi4vZGVzY3JpcHRvci92YWxpZGF0ZVBvbGljeSc7XG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi9uYW1lcyc7XG5pbXBvcnQgdHlwZSB7IFVuc3BlbnQgfSBmcm9tICcuLi91bnNwZW50JztcbmltcG9ydCB7IHRvV2FzbVBzYnQgfSBmcm9tICcuLi93YXNtVXRpbCc7XG5cbmltcG9ydCB7IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzIH0gZnJvbSAnLi9maXhlZFNjcmlwdC9yZXBsYXlQcm90ZWN0aW9uJztcbmltcG9ydCB0eXBlIHtcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvblV0eG9saWJMZWdhY3ksXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb25VdHhvbGliUHNidCxcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbldhc20sXG59IGZyb20gJy4vZml4ZWRTY3JpcHQvZXhwbGFpblRyYW5zYWN0aW9uJztcbmltcG9ydCAqIGFzIGZpeGVkU2NyaXB0IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuaW1wb3J0ICogYXMgZGVzY3JpcHRvciBmcm9tICcuL2Rlc2NyaXB0b3InO1xuXG4vKipcbiAqIERlY29tcG9zZSBhIHJhdyB0cmFuc2FjdGlvbiBpbnRvIHVzZWZ1bCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgdG90YWwgYW1vdW50cyxcbiAqIGNoYW5nZSBhbW91bnRzLCBhbmQgdHJhbnNhY3Rpb24gb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5UeDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgcGFyYW1zOiB7XG4gICAgd2FsbGV0PzogSVdhbGxldDtcbiAgICBwdWJzPzogc3RyaW5nW107XG4gICAgY3VzdG9tQ2hhbmdlWHB1YnM/OiBUcmlwbGU8c3RyaW5nPjtcbiAgICB0eEluZm8/OiB7IHVuc3BlbnRzPzogVW5zcGVudDxUTnVtYmVyPltdIH07XG4gICAgY2hhbmdlSW5mbz86IGZpeGVkU2NyaXB0LkNoYW5nZUFkZHJlc3NJbmZvW107XG4gIH0sXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25VdHhvbGliTGVnYWN5IHwgVHJhbnNhY3Rpb25FeHBsYW5hdGlvblV0eG9saWJQc2J0IHwgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbldhc20ge1xuICBpZiAocGFyYW1zLndhbGxldCAmJiBpc0Rlc2NyaXB0b3JXYWxsZXQocGFyYW1zLndhbGxldCkpIHtcbiAgICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgICBpZiAoIXBhcmFtcy5wdWJzIHx8ICFpc1RyaXBsZShwYXJhbXMucHVicykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdWIgdHJpcGxlIGlzIHJlcXVpcmVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKHBhcmFtcy5wdWJzKTtcbiAgICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQoXG4gICAgICAgIHBhcmFtcy53YWxsZXQsXG4gICAgICAgIHdhbGxldEtleXMsXG4gICAgICAgIGdldFBvbGljeUZvckVudihwYXJhbXMud2FsbGV0LmJpdGdvLmVudilcbiAgICAgICk7XG4gICAgICByZXR1cm4gZGVzY3JpcHRvci5leHBsYWluUHNidCh0b1dhc21Qc2J0KHR4KSwgZGVzY3JpcHRvcnMsIGNvaW5OYW1lKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2xlZ2FjeSB0cmFuc2FjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmICh0eCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICByZXR1cm4gZml4ZWRTY3JpcHQuZXhwbGFpblBzYnQodHgsIHsgLi4ucGFyYW1zLCBjdXN0b21DaGFuZ2VQdWJzOiBwYXJhbXMuY3VzdG9tQ2hhbmdlWHB1YnMgfSwgY29pbk5hbWUpO1xuICB9IGVsc2UgaWYgKHR4IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgY29uc3QgcHVicyA9IHBhcmFtcy5wdWJzO1xuICAgIGlmICghcHVicykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdWIgdHJpcGxlIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHdhbGxldFhwdWJzOiBUcmlwbGU8c3RyaW5nPiB8IHVuZGVmaW5lZCA9XG4gICAgICBwdWJzIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5c1xuICAgICAgICA/IChwdWJzLnRyaXBsZS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPilcbiAgICAgICAgOiBpc1RyaXBsZShwdWJzKVxuICAgICAgICA/IChwdWJzIGFzIFRyaXBsZTxzdHJpbmc+KVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAoIXdhbGxldFhwdWJzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3B1YiB0cmlwbGUgbXVzdCBiZSB2YWxpZCB0cmlwbGUgb3IgUm9vdFdhbGxldEtleXMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0LmV4cGxhaW5Qc2J0V2FzbSh0eCwgd2FsbGV0WHB1YnMsIHtcbiAgICAgIHJlcGxheVByb3RlY3Rpb246IHtcbiAgICAgICAgcHVibGljS2V5czogZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmtleXMoY29pbk5hbWUpLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzOiBwYXJhbXMuY3VzdG9tQ2hhbmdlWHB1YnMsXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0LmV4cGxhaW5MZWdhY3lUeCh0eCwgcGFyYW1zLCBjb2luTmFtZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
2
|
+
import { BitGoBase, IRequestTracer } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { AbstractUtxoCoin, TransactionPrebuild } from '../abstractUtxoCoin';
|
|
4
|
+
import { UtxoCoinName } from '../names';
|
|
5
|
+
/**
|
|
6
|
+
* Get the inputs for a psbt from a prebuild.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPsbtTxInputs(psbtArg: string | utxolib.bitgo.UtxoPsbt, coinName: UtxoCoinName): {
|
|
9
|
+
address: string;
|
|
10
|
+
value: bigint;
|
|
11
|
+
valueString: string;
|
|
12
|
+
}[];
|
|
13
|
+
/**
|
|
14
|
+
* Get the inputs for a transaction from a prebuild.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getTxInputs<TNumber extends number | bigint>(params: {
|
|
17
|
+
txPrebuild: TransactionPrebuild<TNumber>;
|
|
18
|
+
bitgo: BitGoBase;
|
|
19
|
+
coin: AbstractUtxoCoin;
|
|
20
|
+
disableNetworking: boolean;
|
|
21
|
+
reqId?: IRequestTracer;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
address: string;
|
|
24
|
+
value: TNumber;
|
|
25
|
+
valueString: string;
|
|
26
|
+
}[]>;
|
|
27
|
+
//# sourceMappingURL=fetchInputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchInputs.d.ts","sourceRoot":"","sources":["../../../src/transaction/fetchInputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAA0B,YAAY,EAAE,MAAM,UAAU,CAAC;AAEhE;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EACxC,QAAQ,EAAE,YAAY,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,CA0B3D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE;IACzE,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,gBAAgB,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAoCtE"}
|