@bitgo-beta/abstract-utxo 1.1.1-beta.232 → 1.1.1-beta.2321
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -0
- package/dist/cjs/src/abstractUtxoCoin.d.ts +466 -0
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -0
- package/dist/cjs/src/abstractUtxoCoin.js +644 -0
- package/dist/cjs/src/address/fixedScript.d.ts +44 -0
- package/dist/cjs/src/address/fixedScript.d.ts.map +1 -0
- package/dist/cjs/src/address/fixedScript.js +109 -0
- package/dist/cjs/src/address/index.d.ts +2 -0
- package/dist/cjs/src/address/index.d.ts.map +1 -0
- package/dist/cjs/src/address/index.js +8 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +14 -0
- package/dist/cjs/src/deriveKeyWithSeed.d.ts +12 -0
- package/dist/cjs/src/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/cjs/src/deriveKeyWithSeed.js +17 -0
- package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +19 -0
- package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/NamedDescriptor.js +77 -0
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +32 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts +17 -0
- package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/builder.js +54 -0
- package/dist/cjs/src/descriptor/builder/index.d.ts +3 -0
- package/dist/cjs/src/descriptor/builder/index.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/index.js +8 -0
- package/dist/cjs/src/descriptor/builder/parse.d.ts +5 -0
- package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/builder/parse.js +148 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.js +41 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +33 -0
- package/dist/cjs/src/descriptor/createWallet/index.d.ts +3 -0
- package/dist/cjs/src/descriptor/createWallet/index.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/createWallet/index.js +19 -0
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts +19 -0
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/descriptorWallet.js +54 -0
- package/dist/cjs/src/descriptor/index.d.ts +9 -0
- package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/index.js +53 -0
- package/dist/cjs/src/descriptor/validatePolicy.d.ts +22 -0
- package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/cjs/src/descriptor/validatePolicy.js +94 -0
- package/dist/cjs/src/impl/bch/bch.d.ts +36 -0
- package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/bch.js +67 -0
- package/dist/cjs/src/impl/bch/index.d.ts +3 -0
- package/dist/cjs/src/impl/bch/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/index.js +19 -0
- package/dist/cjs/src/impl/bch/tbch.d.ts +12 -0
- package/dist/cjs/src/impl/bch/tbch.d.ts.map +1 -0
- package/dist/cjs/src/impl/bch/tbch.js +15 -0
- package/dist/cjs/src/impl/bcha/bcha.d.ts +9 -0
- package/dist/cjs/src/impl/bcha/bcha.d.ts.map +1 -0
- package/dist/cjs/src/impl/bcha/bcha.js +15 -0
- package/dist/cjs/src/impl/bcha/index.d.ts +3 -0
- package/dist/cjs/src/impl/bcha/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/bcha/index.js +19 -0
- package/dist/cjs/src/impl/bcha/tbcha.d.ts +12 -0
- package/dist/cjs/src/impl/bcha/tbcha.d.ts.map +1 -0
- package/dist/cjs/src/impl/bcha/tbcha.js +15 -0
- package/dist/cjs/src/impl/bsv/bsv.d.ts +9 -0
- package/dist/cjs/src/impl/bsv/bsv.d.ts.map +1 -0
- package/dist/cjs/src/impl/bsv/bsv.js +15 -0
- package/dist/cjs/src/impl/bsv/index.d.ts +3 -0
- package/dist/cjs/src/impl/bsv/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/bsv/index.js +19 -0
- package/dist/cjs/src/impl/bsv/tbsv.d.ts +12 -0
- package/dist/cjs/src/impl/bsv/tbsv.d.ts.map +1 -0
- package/dist/cjs/src/impl/bsv/tbsv.js +15 -0
- package/dist/cjs/src/impl/btc/btc.d.ts +15 -0
- package/dist/cjs/src/impl/btc/btc.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/btc.js +22 -0
- package/dist/cjs/src/impl/btc/index.d.ts +10 -0
- package/dist/cjs/src/impl/btc/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/index.js +26 -0
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +61 -0
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/inscriptionBuilder.js +170 -0
- package/dist/cjs/src/impl/btc/tbtc.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtc.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtc.js +15 -0
- package/dist/cjs/src/impl/btc/tbtc4.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtc4.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtc4.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcbgsig.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcsig.d.ts +12 -0
- package/dist/cjs/src/impl/btc/tbtcsig.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcsig.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcstx.d.ts +10 -0
- package/dist/cjs/src/impl/btc/tbtcstx.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstx.js +18 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts +9 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.js +15 -0
- package/dist/cjs/src/impl/btc/tbtcstxsignet.d.ts +10 -0
- package/dist/cjs/src/impl/btc/tbtcstxsignet.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstxsignet.js +18 -0
- package/dist/cjs/src/impl/btg/btg.d.ts +9 -0
- package/dist/cjs/src/impl/btg/btg.d.ts.map +1 -0
- package/dist/cjs/src/impl/btg/btg.js +15 -0
- package/dist/cjs/src/impl/btg/index.d.ts +2 -0
- package/dist/cjs/src/impl/btg/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/btg/index.js +18 -0
- package/dist/cjs/src/impl/dash/dash.d.ts +9 -0
- package/dist/cjs/src/impl/dash/dash.d.ts.map +1 -0
- package/dist/cjs/src/impl/dash/dash.js +15 -0
- package/dist/cjs/src/impl/dash/index.d.ts +3 -0
- package/dist/cjs/src/impl/dash/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/dash/index.js +19 -0
- package/dist/cjs/src/impl/dash/tdash.d.ts +12 -0
- package/dist/cjs/src/impl/dash/tdash.d.ts.map +1 -0
- package/dist/cjs/src/impl/dash/tdash.js +15 -0
- package/dist/cjs/src/impl/doge/doge.d.ts +33 -0
- package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/doge.js +76 -0
- package/dist/cjs/src/impl/doge/index.d.ts +3 -0
- package/dist/cjs/src/impl/doge/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/index.js +19 -0
- package/dist/cjs/src/impl/doge/tdoge.d.ts +12 -0
- package/dist/cjs/src/impl/doge/tdoge.d.ts.map +1 -0
- package/dist/cjs/src/impl/doge/tdoge.js +15 -0
- package/dist/cjs/src/impl/index.d.ts +11 -0
- package/dist/cjs/src/impl/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/index.js +47 -0
- package/dist/cjs/src/impl/ltc/index.d.ts +3 -0
- package/dist/cjs/src/impl/ltc/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/ltc/index.js +19 -0
- package/dist/cjs/src/impl/ltc/ltc.d.ts +8 -0
- package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -0
- package/dist/cjs/src/impl/ltc/ltc.js +15 -0
- package/dist/cjs/src/impl/ltc/tltc.d.ts +8 -0
- package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -0
- package/dist/cjs/src/impl/ltc/tltc.js +15 -0
- package/dist/cjs/src/impl/pearl/index.d.ts +3 -0
- package/dist/cjs/src/impl/pearl/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/pearl/index.js +19 -0
- package/dist/cjs/src/impl/pearl/pearl.d.ts +17 -0
- package/dist/cjs/src/impl/pearl/pearl.d.ts.map +1 -0
- package/dist/cjs/src/impl/pearl/pearl.js +24 -0
- package/dist/cjs/src/impl/pearl/tpearl.d.ts +8 -0
- package/dist/cjs/src/impl/pearl/tpearl.d.ts.map +1 -0
- package/dist/cjs/src/impl/pearl/tpearl.js +15 -0
- package/dist/cjs/src/impl/zec/address.d.ts +79 -0
- package/dist/cjs/src/impl/zec/address.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/address.js +157 -0
- package/dist/cjs/src/impl/zec/index.d.ts +7 -0
- package/dist/cjs/src/impl/zec/index.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/index.js +23 -0
- package/dist/cjs/src/impl/zec/recipients.d.ts +86 -0
- package/dist/cjs/src/impl/zec/recipients.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/recipients.js +98 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.js +51 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.js +57 -0
- package/dist/cjs/src/impl/zec/types.d.ts +8 -0
- package/dist/cjs/src/impl/zec/types.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/types.js +3 -0
- package/dist/cjs/src/impl/zec/tzec.d.ts +9 -0
- package/dist/cjs/src/impl/zec/tzec.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/tzec.js +15 -0
- package/dist/cjs/src/impl/zec/zec.d.ts +58 -0
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/zec.js +124 -0
- package/dist/cjs/src/index.d.ts +23 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js +62 -0
- package/dist/cjs/src/keychains.d.ts +55 -0
- package/dist/cjs/src/keychains.d.ts.map +1 -0
- package/dist/cjs/src/keychains.js +143 -0
- package/dist/cjs/src/names.d.ts +16 -0
- package/dist/cjs/src/names.d.ts.map +1 -0
- package/dist/cjs/src/names.js +119 -0
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts +9 -0
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +22 -0
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts +46 -0
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/OfflineVaultSignable.js +55 -0
- package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts +16 -0
- package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/TransactionExplanation.js +15 -0
- package/dist/cjs/src/offlineVault/descriptor/index.d.ts +2 -0
- package/dist/cjs/src/offlineVault/descriptor/index.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/descriptor/index.js +18 -0
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +39 -0
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/descriptor/transaction.js +80 -0
- package/dist/cjs/src/offlineVault/index.d.ts +6 -0
- package/dist/cjs/src/offlineVault/index.d.ts.map +1 -0
- package/dist/cjs/src/offlineVault/index.js +44 -0
- package/dist/{src → cjs/src}/recovery/RecoveryProvider.d.ts +1 -3
- package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -0
- package/dist/cjs/src/recovery/RecoveryProvider.js +22 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +176 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/cjs/src/recovery/backupKeyRecovery.js +417 -0
- package/dist/{src → cjs/src}/recovery/baseApi.d.ts +3 -6
- package/dist/cjs/src/recovery/baseApi.d.ts.map +1 -0
- package/dist/cjs/src/recovery/baseApi.js +73 -0
- package/dist/{src → cjs/src}/recovery/coingeckoApi.d.ts +0 -3
- package/dist/cjs/src/recovery/coingeckoApi.d.ts.map +1 -0
- package/dist/cjs/src/recovery/coingeckoApi.js +44 -0
- package/dist/{src → cjs/src}/recovery/crossChainRecovery.d.ts +21 -9
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -0
- package/dist/cjs/src/recovery/crossChainRecovery.js +302 -0
- package/dist/{src → cjs/src}/recovery/index.d.ts +0 -1
- package/dist/cjs/src/recovery/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/recovery/index.js +6 -3
- package/dist/cjs/src/recovery/mempoolApi.d.ts.map +1 -0
- package/dist/cjs/src/recovery/mempoolApi.js +36 -0
- package/dist/cjs/src/recovery/psbt.d.ts +68 -0
- package/dist/cjs/src/recovery/psbt.d.ts.map +1 -0
- package/dist/cjs/src/recovery/psbt.js +160 -0
- package/dist/cjs/src/tnumber.d.ts +4 -0
- package/dist/cjs/src/tnumber.d.ts.map +1 -0
- package/dist/cjs/src/tnumber.js +12 -0
- package/dist/cjs/src/transaction/bip322.d.ts +27 -0
- package/dist/cjs/src/transaction/bip322.d.ts.map +1 -0
- package/dist/cjs/src/transaction/bip322.js +139 -0
- package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts +2 -0
- package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/cjs/src/transaction/common/verifyPayGoAmount.js +3 -0
- package/dist/cjs/src/transaction/decode.d.ts +21 -0
- package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
- package/dist/cjs/src/transaction/decode.js +46 -0
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +5 -0
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/explainPsbt.js +48 -0
- package/dist/cjs/src/transaction/descriptor/index.d.ts +7 -0
- package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/index.js +14 -0
- package/dist/cjs/src/transaction/descriptor/parse.d.ts +18 -0
- package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/parse.js +85 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts +15 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.js +60 -0
- package/dist/cjs/src/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/cjs/src/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/recipient.js +3 -0
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/signPsbt.js +44 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +36 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +90 -0
- package/dist/cjs/src/transaction/explainTransaction.d.ts +19 -0
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/explainTransaction.js +85 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/SigningError.js +32 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +47 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +152 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +47 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +3 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts +8 -0
- package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/index.js +30 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.d.ts +4 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/musig2.js +3 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts +30 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/parseOutput.js +217 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +9 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +234 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +10 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/replayProtection.js +44 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +27 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +130 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +31 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +55 -0
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts +21 -0
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +182 -0
- package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts +9 -0
- package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
- package/dist/cjs/src/transaction/getPayGoVerificationPubkey.js +20 -0
- package/dist/cjs/src/transaction/index.d.ts +9 -0
- package/dist/cjs/src/transaction/index.d.ts.map +1 -0
- package/dist/cjs/src/transaction/index.js +52 -0
- package/dist/cjs/src/transaction/outputDifference.d.ts +44 -0
- package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -0
- package/dist/cjs/src/transaction/outputDifference.js +51 -0
- package/dist/cjs/src/transaction/parseTransaction.d.ts +5 -0
- package/dist/cjs/src/transaction/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/parseTransaction.js +48 -0
- package/dist/cjs/src/transaction/recipient.d.ts +76 -0
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -0
- package/dist/cjs/src/transaction/recipient.js +130 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts +18 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/signTransaction.js +114 -0
- package/dist/cjs/src/transaction/types.d.ts +47 -0
- package/dist/cjs/src/transaction/types.d.ts.map +1 -0
- package/dist/cjs/src/transaction/types.js +3 -0
- package/dist/cjs/src/transaction/verifyTransaction.d.ts +5 -0
- package/dist/cjs/src/transaction/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/src/transaction/verifyTransaction.js +50 -0
- package/dist/cjs/src/unspent.d.ts +59 -0
- package/dist/cjs/src/unspent.d.ts.map +1 -0
- package/dist/cjs/src/unspent.js +20 -0
- package/dist/cjs/src/verifyKey.d.ts +22 -0
- package/dist/cjs/src/verifyKey.d.ts.map +1 -0
- package/dist/cjs/src/verifyKey.js +110 -0
- package/dist/cjs/src/wallet.d.ts +15 -0
- package/dist/cjs/src/wallet.d.ts.map +1 -0
- package/dist/cjs/src/wallet.js +8 -0
- package/dist/cjs/test/integration/impl/bch/bch.d.ts +2 -0
- package/dist/cjs/test/integration/impl/bch/bch.d.ts.map +1 -0
- package/dist/cjs/test/integration/impl/bch/bch.js +76 -0
- package/dist/cjs/test/unit/address.d.ts +2 -0
- package/dist/cjs/test/unit/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/address.js +201 -0
- package/dist/cjs/test/unit/bip322.d.ts +2 -0
- package/dist/cjs/test/unit/bip322.d.ts.map +1 -0
- package/dist/cjs/test/unit/bip322.js +491 -0
- package/dist/cjs/test/unit/buildSignSendLegacyFormat.d.ts +2 -0
- package/dist/cjs/test/unit/buildSignSendLegacyFormat.d.ts.map +1 -0
- package/dist/cjs/test/unit/buildSignSendLegacyFormat.js +102 -0
- package/dist/cjs/test/unit/coins.d.ts +2 -0
- package/dist/cjs/test/unit/coins.d.ts.map +1 -0
- package/dist/cjs/test/unit/coins.js +161 -0
- package/dist/cjs/test/unit/customChangeWallet.d.ts +2 -0
- package/dist/cjs/test/unit/customChangeWallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/customChangeWallet.js +206 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts +2 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts.map +1 -0
- package/dist/cjs/test/unit/customChangeWalletFixtures.js +53 -0
- package/dist/cjs/test/unit/customSigner.d.ts +2 -0
- package/dist/cjs/test/unit/customSigner.d.ts.map +1 -0
- package/dist/cjs/test/unit/customSigner.js +99 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts +2 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/cjs/test/unit/deriveKeyWithSeed.js +56 -0
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +51 -0
- package/dist/cjs/test/unit/descriptor/builder.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/builder.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/builder.js +92 -0
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +53 -0
- package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts +2 -0
- package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptor/descriptorWallet.js +62 -0
- package/dist/cjs/test/unit/descriptorAddress.d.ts +3 -0
- package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -0
- package/dist/cjs/test/unit/descriptorAddress.js +123 -0
- package/dist/cjs/test/unit/explainTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/explainTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/explainTransaction.js +37 -0
- package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts +4 -0
- package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures/psbtHexProof.js +9 -0
- package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts +2 -0
- package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/bch/unit/bch.js +79 -0
- package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/bcha/unit/index.js +41 -0
- package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/bsv/unit/index.js +34 -0
- package/dist/cjs/test/unit/impl/btg/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/btg/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/btg/unit/index.js +33 -0
- package/dist/cjs/test/unit/impl/dash/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/dash/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/dash/unit/index.js +34 -0
- package/dist/cjs/test/unit/impl/doge/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/doge/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/doge/unit/index.js +34 -0
- package/dist/cjs/test/unit/impl/pearl/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/pearl/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/pearl/unit/index.js +111 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.js +69 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.js +470 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.js +227 -0
- package/dist/cjs/test/unit/impl/zec/unit/index.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/index.js +30 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.js +91 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.js +57 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.js +57 -0
- package/dist/cjs/test/unit/keySignatures.d.ts +2 -0
- package/dist/cjs/test/unit/keySignatures.d.ts.map +1 -0
- package/dist/cjs/test/unit/keySignatures.js +54 -0
- package/dist/cjs/test/unit/keychains.d.ts +2 -0
- package/dist/cjs/test/unit/keychains.d.ts.map +1 -0
- package/dist/cjs/test/unit/keychains.js +87 -0
- package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts +2 -0
- package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts.map +1 -0
- package/dist/cjs/test/unit/offlineVault/halfSigned.js +124 -0
- package/dist/cjs/test/unit/parseTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/parseTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/parseTransaction.js +155 -0
- package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.js +99 -0
- package/dist/cjs/test/unit/postProcessPrebuild.d.ts +2 -0
- package/dist/cjs/test/unit/postProcessPrebuild.d.ts.map +1 -0
- package/dist/cjs/test/unit/postProcessPrebuild.js +65 -0
- package/dist/cjs/test/unit/prebuildAndSign.d.ts +2 -0
- package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -0
- package/dist/cjs/test/unit/prebuildAndSign.js +218 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +149 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +147 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +352 -0
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +189 -0
- package/dist/cjs/test/unit/recovery/mock.d.ts +37 -0
- package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/mock.js +113 -0
- package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/signTransaction.js +223 -0
- package/dist/cjs/test/unit/tbtcstx.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstx.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstx.js +60 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.js +61 -0
- package/dist/cjs/test/unit/tbtcstxsignet.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstxsignet.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstxsignet.js +61 -0
- package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
- package/dist/cjs/test/unit/transaction/addressCodec.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/addressCodec.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/addressCodec.js +30 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +64 -0
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts +6 -0
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +51 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.js +140 -0
- package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/sign.js +76 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.js +100 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.js +84 -0
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +81 -0
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.js +103 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +179 -0
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +223 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.js +60 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +98 -0
- package/dist/cjs/test/unit/transaction/outputDifference.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
- package/dist/cjs/test/unit/transaction/recipient.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/recipient.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/recipient.js +52 -0
- package/dist/cjs/test/unit/transaction.d.ts +2 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +301 -0
- package/dist/cjs/test/unit/txFormat.d.ts +30 -0
- package/dist/cjs/test/unit/txFormat.d.ts.map +1 -0
- package/dist/cjs/test/unit/txFormat.js +161 -0
- package/dist/cjs/test/unit/util/address.d.ts +14 -0
- package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/address.js +16 -0
- package/dist/cjs/test/unit/util/assert.d.ts +3 -0
- package/dist/cjs/test/unit/util/assert.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/assert.js +24 -0
- package/dist/cjs/test/unit/util/fixtures.d.ts +13 -0
- package/dist/cjs/test/unit/util/fixtures.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/fixtures.js +105 -0
- package/dist/cjs/test/unit/util/index.d.ts +11 -0
- package/dist/cjs/test/unit/util/index.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/index.js +27 -0
- package/dist/cjs/test/unit/util/keychains.d.ts +55 -0
- package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/keychains.js +122 -0
- package/dist/cjs/test/unit/util/nockBitGo.d.ts +10 -0
- package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/nockBitGo.js +27 -0
- package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts +8 -0
- package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/nockIndexerAPI.js +22 -0
- package/dist/cjs/test/unit/util/psbt.d.ts +19 -0
- package/dist/cjs/test/unit/util/psbt.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/psbt.js +21 -0
- package/dist/cjs/test/unit/util/transaction.d.ts +28 -0
- package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/transaction.js +132 -0
- package/dist/cjs/test/unit/util/unspents.d.ts +71 -0
- package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/unspents.js +224 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts +30 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/utxoCoins.js +159 -0
- package/dist/cjs/test/unit/util/wallet.d.ts +4 -0
- package/dist/cjs/test/unit/util/wallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/wallet.js +9 -0
- package/dist/cjs/test/unit/verifyTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/verifyTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/verifyTransaction.js +539 -0
- package/dist/cjs/test/unit/wallet.d.ts +2 -0
- package/dist/cjs/test/unit/wallet.d.ts.map +1 -0
- package/dist/cjs/test/unit/wallet.js +251 -0
- package/dist/cjs/test/unit/webauthn.d.ts +2 -0
- package/dist/cjs/test/unit/webauthn.d.ts.map +1 -0
- package/dist/cjs/test/unit/webauthn.js +77 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/abstractUtxoCoin.d.ts +466 -0
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -0
- package/dist/esm/abstractUtxoCoin.js +636 -0
- package/dist/esm/address/fixedScript.d.ts +44 -0
- package/dist/esm/address/fixedScript.d.ts.map +1 -0
- package/dist/esm/address/fixedScript.js +101 -0
- package/dist/esm/address/index.d.ts +2 -0
- package/dist/esm/address/index.d.ts.map +1 -0
- package/dist/esm/address/index.js +2 -0
- package/dist/esm/config.d.ts +9 -0
- package/dist/esm/config.js +11 -0
- package/dist/esm/deriveKeyWithSeed.d.ts +12 -0
- package/dist/esm/deriveKeyWithSeed.d.ts.map +1 -0
- package/dist/esm/deriveKeyWithSeed.js +14 -0
- package/dist/esm/descriptor/NamedDescriptor.d.ts +19 -0
- package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -0
- package/dist/esm/descriptor/NamedDescriptor.js +37 -0
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
- package/dist/esm/descriptor/assertDescriptorWalletAddress.js +26 -0
- package/dist/esm/descriptor/builder/builder.d.ts +17 -0
- package/dist/esm/descriptor/builder/builder.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/builder.js +51 -0
- package/dist/esm/descriptor/builder/index.d.ts +3 -0
- package/dist/esm/descriptor/builder/index.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/index.js +3 -0
- package/dist/esm/descriptor/builder/parse.d.ts +5 -0
- package/dist/esm/descriptor/builder/parse.d.ts.map +1 -0
- package/dist/esm/descriptor/builder/parse.js +144 -0
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
- package/dist/esm/descriptor/createWallet/createDescriptorWallet.js +37 -0
- package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +12 -0
- package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
- package/dist/esm/descriptor/createWallet/createDescriptors.js +29 -0
- package/dist/esm/descriptor/createWallet/index.d.ts +3 -0
- package/dist/esm/descriptor/createWallet/index.d.ts.map +1 -0
- package/dist/esm/descriptor/createWallet/index.js +3 -0
- package/dist/esm/descriptor/descriptorWallet.d.ts +19 -0
- package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -0
- package/dist/esm/descriptor/descriptorWallet.js +16 -0
- package/dist/esm/descriptor/index.d.ts +9 -0
- package/dist/esm/descriptor/index.d.ts.map +1 -0
- package/dist/esm/descriptor/index.js +7 -0
- package/dist/esm/descriptor/validatePolicy.d.ts +22 -0
- package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -0
- package/dist/esm/descriptor/validatePolicy.js +82 -0
- package/dist/esm/impl/bch/bch.d.ts +36 -0
- package/dist/esm/impl/bch/bch.d.ts.map +1 -0
- package/dist/esm/impl/bch/bch.js +63 -0
- package/dist/esm/impl/bch/index.d.ts +3 -0
- package/dist/esm/impl/bch/index.d.ts.map +1 -0
- package/dist/esm/impl/bch/index.js +3 -0
- package/dist/esm/impl/bch/tbch.d.ts +12 -0
- package/dist/esm/impl/bch/tbch.d.ts.map +1 -0
- package/dist/esm/impl/bch/tbch.js +11 -0
- package/dist/esm/impl/bcha/bcha.d.ts +9 -0
- package/dist/esm/impl/bcha/bcha.d.ts.map +1 -0
- package/dist/esm/impl/bcha/bcha.js +11 -0
- package/dist/esm/impl/bcha/index.d.ts +3 -0
- package/dist/esm/impl/bcha/index.d.ts.map +1 -0
- package/dist/esm/impl/bcha/index.js +3 -0
- package/dist/esm/impl/bcha/tbcha.d.ts +12 -0
- package/dist/esm/impl/bcha/tbcha.d.ts.map +1 -0
- package/dist/esm/impl/bcha/tbcha.js +11 -0
- package/dist/esm/impl/bsv/bsv.d.ts +9 -0
- package/dist/esm/impl/bsv/bsv.d.ts.map +1 -0
- package/dist/esm/impl/bsv/bsv.js +11 -0
- package/dist/esm/impl/bsv/index.d.ts +3 -0
- package/dist/esm/impl/bsv/index.d.ts.map +1 -0
- package/dist/esm/impl/bsv/index.js +3 -0
- package/dist/esm/impl/bsv/tbsv.d.ts +12 -0
- package/dist/esm/impl/bsv/tbsv.d.ts.map +1 -0
- package/dist/esm/impl/bsv/tbsv.js +11 -0
- package/dist/esm/impl/btc/btc.d.ts +15 -0
- package/dist/esm/impl/btc/btc.d.ts.map +1 -0
- package/dist/esm/impl/btc/btc.js +18 -0
- package/dist/esm/impl/btc/index.d.ts +10 -0
- package/dist/esm/impl/btc/index.d.ts.map +1 -0
- package/dist/esm/impl/btc/index.js +10 -0
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts +61 -0
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -0
- package/dist/esm/impl/btc/inscriptionBuilder.js +163 -0
- package/dist/esm/impl/btc/tbtc.d.ts +12 -0
- package/dist/esm/impl/btc/tbtc.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtc.js +11 -0
- package/dist/esm/impl/btc/tbtc4.d.ts +12 -0
- package/dist/esm/impl/btc/tbtc4.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtc4.js +11 -0
- package/dist/esm/impl/btc/tbtcbgsig.d.ts +12 -0
- package/dist/esm/impl/btc/tbtcbgsig.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcbgsig.js +11 -0
- package/dist/esm/impl/btc/tbtcsig.d.ts +12 -0
- package/dist/esm/impl/btc/tbtcsig.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcsig.js +11 -0
- package/dist/esm/impl/btc/tbtcstx.d.ts +10 -0
- package/dist/esm/impl/btc/tbtcstx.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstx.js +14 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.d.ts +9 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.js +11 -0
- package/dist/esm/impl/btc/tbtcstxsignet.d.ts +10 -0
- package/dist/esm/impl/btc/tbtcstxsignet.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstxsignet.js +14 -0
- package/dist/esm/impl/btg/btg.d.ts +9 -0
- package/dist/esm/impl/btg/btg.d.ts.map +1 -0
- package/dist/esm/impl/btg/btg.js +11 -0
- package/dist/esm/impl/btg/index.d.ts +2 -0
- package/dist/esm/impl/btg/index.d.ts.map +1 -0
- package/dist/esm/impl/btg/index.js +2 -0
- package/dist/esm/impl/dash/dash.d.ts +9 -0
- package/dist/esm/impl/dash/dash.d.ts.map +1 -0
- package/dist/esm/impl/dash/dash.js +11 -0
- package/dist/esm/impl/dash/index.d.ts +3 -0
- package/dist/esm/impl/dash/index.d.ts.map +1 -0
- package/dist/esm/impl/dash/index.js +3 -0
- package/dist/esm/impl/dash/tdash.d.ts +12 -0
- package/dist/esm/impl/dash/tdash.d.ts.map +1 -0
- package/dist/esm/impl/dash/tdash.js +11 -0
- package/dist/esm/impl/doge/doge.d.ts +33 -0
- package/dist/esm/impl/doge/doge.d.ts.map +1 -0
- package/dist/esm/impl/doge/doge.js +72 -0
- package/dist/esm/impl/doge/index.d.ts +3 -0
- package/dist/esm/impl/doge/index.d.ts.map +1 -0
- package/dist/esm/impl/doge/index.js +3 -0
- package/dist/esm/impl/doge/tdoge.d.ts +12 -0
- package/dist/esm/impl/doge/tdoge.d.ts.map +1 -0
- package/dist/esm/impl/doge/tdoge.js +11 -0
- package/dist/esm/impl/index.d.ts +11 -0
- package/dist/esm/impl/index.d.ts.map +1 -0
- package/dist/esm/impl/index.js +11 -0
- package/dist/esm/impl/ltc/index.d.ts +3 -0
- package/dist/esm/impl/ltc/index.d.ts.map +1 -0
- package/dist/esm/impl/ltc/index.js +3 -0
- package/dist/esm/impl/ltc/ltc.d.ts +8 -0
- package/dist/esm/impl/ltc/ltc.d.ts.map +1 -0
- package/dist/esm/impl/ltc/ltc.js +11 -0
- package/dist/esm/impl/ltc/tltc.d.ts +8 -0
- package/dist/esm/impl/ltc/tltc.d.ts.map +1 -0
- package/dist/esm/impl/ltc/tltc.js +11 -0
- package/dist/esm/impl/pearl/index.d.ts +3 -0
- package/dist/esm/impl/pearl/index.d.ts.map +1 -0
- package/dist/esm/impl/pearl/index.js +3 -0
- package/dist/esm/impl/pearl/pearl.d.ts +17 -0
- package/dist/esm/impl/pearl/pearl.d.ts.map +1 -0
- package/dist/esm/impl/pearl/pearl.js +20 -0
- package/dist/esm/impl/pearl/tpearl.d.ts +8 -0
- package/dist/esm/impl/pearl/tpearl.d.ts.map +1 -0
- package/dist/esm/impl/pearl/tpearl.js +11 -0
- package/dist/esm/impl/zec/address.d.ts +79 -0
- package/dist/esm/impl/zec/address.d.ts.map +1 -0
- package/dist/esm/impl/zec/address.js +150 -0
- package/dist/esm/impl/zec/index.d.ts +7 -0
- package/dist/esm/impl/zec/index.d.ts.map +1 -0
- package/dist/esm/impl/zec/index.js +7 -0
- package/dist/esm/impl/zec/recipients.d.ts +86 -0
- package/dist/esm/impl/zec/recipients.d.ts.map +1 -0
- package/dist/esm/impl/zec/recipients.js +94 -0
- package/dist/esm/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/esm/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/esm/impl/zec/shieldedAddress.js +48 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.js +50 -0
- package/dist/esm/impl/zec/types.d.ts +8 -0
- package/dist/esm/impl/zec/types.d.ts.map +1 -0
- package/dist/esm/impl/zec/types.js +2 -0
- package/dist/esm/impl/zec/tzec.d.ts +9 -0
- package/dist/esm/impl/zec/tzec.d.ts.map +1 -0
- package/dist/esm/impl/zec/tzec.js +11 -0
- package/dist/esm/impl/zec/zec.d.ts +58 -0
- package/dist/esm/impl/zec/zec.d.ts.map +1 -0
- package/dist/esm/impl/zec/zec.js +117 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/keychains.d.ts +55 -0
- package/dist/esm/keychains.d.ts.map +1 -0
- package/dist/esm/keychains.js +98 -0
- package/dist/esm/names.d.ts +16 -0
- package/dist/esm/names.d.ts.map +1 -0
- package/dist/esm/names.js +108 -0
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts +9 -0
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +19 -0
- package/dist/esm/offlineVault/OfflineVaultSignable.d.ts +46 -0
- package/dist/esm/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
- package/dist/esm/offlineVault/OfflineVaultSignable.js +18 -0
- package/dist/esm/offlineVault/TransactionExplanation.d.ts +16 -0
- package/dist/esm/offlineVault/TransactionExplanation.d.ts.map +1 -0
- package/dist/esm/offlineVault/TransactionExplanation.js +12 -0
- package/dist/esm/offlineVault/descriptor/index.d.ts +2 -0
- package/dist/esm/offlineVault/descriptor/index.d.ts.map +1 -0
- package/dist/esm/offlineVault/descriptor/index.js +2 -0
- package/dist/esm/offlineVault/descriptor/transaction.d.ts +39 -0
- package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -0
- package/dist/esm/offlineVault/descriptor/transaction.js +41 -0
- package/dist/esm/offlineVault/index.d.ts +6 -0
- package/dist/esm/offlineVault/index.d.ts.map +1 -0
- package/dist/esm/offlineVault/index.js +4 -0
- package/dist/esm/recovery/RecoveryProvider.d.ts +20 -0
- package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -0
- package/dist/esm/recovery/RecoveryProvider.js +19 -0
- package/dist/esm/recovery/backupKeyRecovery.d.ts +176 -0
- package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -0
- package/dist/esm/recovery/backupKeyRecovery.js +406 -0
- package/dist/esm/recovery/baseApi.d.ts +24 -0
- package/dist/esm/recovery/baseApi.d.ts.map +1 -0
- package/dist/esm/recovery/baseApi.js +64 -0
- package/dist/esm/recovery/coingeckoApi.d.ts +6 -0
- package/dist/esm/recovery/coingeckoApi.d.ts.map +1 -0
- package/dist/esm/recovery/coingeckoApi.js +40 -0
- package/dist/esm/recovery/crossChainRecovery.d.ts +97 -0
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -0
- package/dist/esm/recovery/crossChainRecovery.js +295 -0
- package/dist/esm/recovery/index.d.ts +7 -0
- package/dist/{src → esm}/recovery/index.d.ts.map +1 -1
- package/dist/esm/recovery/index.js +7 -0
- package/dist/esm/recovery/mempoolApi.d.ts +7 -0
- package/dist/{src → esm}/recovery/mempoolApi.d.ts.map +1 -1
- package/dist/esm/recovery/mempoolApi.js +29 -0
- package/dist/esm/recovery/psbt.d.ts +68 -0
- package/dist/esm/recovery/psbt.d.ts.map +1 -0
- package/dist/esm/recovery/psbt.js +152 -0
- package/dist/esm/tnumber.d.ts +4 -0
- package/dist/esm/tnumber.d.ts.map +1 -0
- package/dist/esm/tnumber.js +9 -0
- package/dist/esm/transaction/bip322.d.ts +27 -0
- package/dist/esm/transaction/bip322.d.ts.map +1 -0
- package/dist/esm/transaction/bip322.js +100 -0
- package/dist/esm/transaction/common/verifyPayGoAmount.d.ts +1 -0
- package/dist/esm/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
- package/dist/esm/transaction/common/verifyPayGoAmount.js +1 -0
- package/dist/esm/transaction/decode.d.ts +21 -0
- package/dist/esm/transaction/decode.d.ts.map +1 -0
- package/dist/esm/transaction/decode.js +40 -0
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts +5 -0
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/explainPsbt.js +45 -0
- package/dist/esm/transaction/descriptor/index.d.ts +7 -0
- package/dist/esm/transaction/descriptor/index.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/index.js +6 -0
- package/dist/esm/transaction/descriptor/parse.d.ts +18 -0
- package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/parse.js +81 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts +15 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/parseToAmountType.js +55 -0
- package/dist/esm/transaction/descriptor/recipient.d.ts +5 -0
- package/dist/esm/transaction/descriptor/recipient.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/recipient.js +2 -0
- package/dist/esm/transaction/descriptor/signPsbt.d.ts +25 -0
- package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/signPsbt.js +39 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +36 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/descriptor/verifyTransaction.js +80 -0
- package/dist/esm/transaction/explainTransaction.d.ts +19 -0
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/explainTransaction.js +49 -0
- package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
- package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/SigningError.js +26 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +47 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +147 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +47 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -0
- package/dist/esm/transaction/fixedScript/index.d.ts +8 -0
- package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/index.js +7 -0
- package/dist/esm/transaction/fixedScript/musig2.d.ts +4 -0
- package/dist/esm/transaction/fixedScript/musig2.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/musig2.js +2 -0
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts +30 -0
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/parseOutput.js +210 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +9 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/parseTransaction.js +228 -0
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts +10 -0
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/replayProtection.js +38 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +27 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +121 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +31 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/signTransaction.js +47 -0
- package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts +21 -0
- package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/fixedScript/verifyTransaction.js +176 -0
- package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts +9 -0
- package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
- package/dist/esm/transaction/getPayGoVerificationPubkey.js +17 -0
- package/dist/esm/transaction/index.d.ts +9 -0
- package/dist/esm/transaction/index.d.ts.map +1 -0
- package/dist/esm/transaction/index.js +9 -0
- package/dist/esm/transaction/outputDifference.d.ts +44 -0
- package/dist/esm/transaction/outputDifference.d.ts.map +1 -0
- package/dist/esm/transaction/outputDifference.js +45 -0
- package/dist/esm/transaction/parseTransaction.d.ts +5 -0
- package/dist/esm/transaction/parseTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/parseTransaction.js +12 -0
- package/dist/esm/transaction/recipient.d.ts +76 -0
- package/dist/esm/transaction/recipient.d.ts.map +1 -0
- package/dist/esm/transaction/recipient.js +120 -0
- package/dist/esm/transaction/signTransaction.d.ts +18 -0
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/signTransaction.js +73 -0
- package/dist/esm/transaction/types.d.ts +47 -0
- package/dist/esm/transaction/types.d.ts.map +1 -0
- package/dist/esm/transaction/types.js +2 -0
- package/dist/esm/transaction/verifyTransaction.d.ts +5 -0
- package/dist/esm/transaction/verifyTransaction.d.ts.map +1 -0
- package/dist/esm/transaction/verifyTransaction.js +14 -0
- package/dist/esm/unspent.d.ts +59 -0
- package/dist/esm/unspent.d.ts.map +1 -0
- package/dist/esm/unspent.js +15 -0
- package/dist/esm/verifyKey.d.ts +22 -0
- package/dist/esm/verifyKey.d.ts.map +1 -0
- package/dist/esm/verifyKey.js +102 -0
- package/dist/esm/wallet.d.ts +15 -0
- package/dist/esm/wallet.d.ts.map +1 -0
- package/dist/esm/wallet.js +5 -0
- package/package.json +49 -20
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -253
- package/dist/src/abstractUtxoCoin.d.ts +0 -392
- package/dist/src/abstractUtxoCoin.d.ts.map +0 -1
- package/dist/src/abstractUtxoCoin.js +0 -931
- package/dist/src/config.js +0 -14
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -18
- package/dist/src/parseOutput.d.ts +0 -22
- package/dist/src/parseOutput.d.ts.map +0 -1
- package/dist/src/parseOutput.js +0 -181
- package/dist/src/recovery/RecoveryProvider.d.ts.map +0 -1
- package/dist/src/recovery/RecoveryProvider.js +0 -24
- package/dist/src/recovery/backupKeyRecovery.d.ts +0 -62
- package/dist/src/recovery/backupKeyRecovery.d.ts.map +0 -1
- package/dist/src/recovery/backupKeyRecovery.js +0 -293
- package/dist/src/recovery/baseApi.d.ts.map +0 -1
- package/dist/src/recovery/baseApi.js +0 -73
- package/dist/src/recovery/coingeckoApi.d.ts.map +0 -1
- package/dist/src/recovery/coingeckoApi.js +0 -47
- package/dist/src/recovery/crossChainRecovery.d.ts.map +0 -1
- package/dist/src/recovery/crossChainRecovery.js +0 -294
- package/dist/src/recovery/mempoolApi.js +0 -33
- package/dist/src/recovery/smartbitApi.d.ts +0 -11
- package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
- package/dist/src/recovery/smartbitApi.js +0 -36
- package/dist/src/replayProtection.d.ts +0 -4
- package/dist/src/replayProtection.d.ts.map +0 -1
- package/dist/src/replayProtection.js +0 -21
- package/dist/src/sign.d.ts +0 -31
- package/dist/src/sign.d.ts.map +0 -1
- package/dist/src/sign.js +0 -104
- package/dist/tsconfig.tsbuildinfo +0 -8213
- /package/dist/{src → cjs/src}/config.d.ts +0 -0
- /package/dist/{src → cjs/src}/recovery/mempoolApi.d.ts +0 -0
- /package/dist/{src → esm}/config.d.ts.map +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { UtxoCoinName } from '../../names';
|
|
2
|
+
/**
|
|
3
|
+
* Platform-reported shielded address details (wallet-platform
|
|
4
|
+
* `coinSpecific.shielded` for Zcash Orchard/Ironwood addresses).
|
|
5
|
+
*/
|
|
6
|
+
export interface ShieldedAddressDetails {
|
|
7
|
+
/** Receiver type, e.g. 'ironwood'. */
|
|
8
|
+
type?: string;
|
|
9
|
+
/** 11-byte hex diversifier. */
|
|
10
|
+
diversifier?: string;
|
|
11
|
+
/** 32-byte hex `pk_d`. */
|
|
12
|
+
pkD?: string;
|
|
13
|
+
/** Wallet address index the diversifier was derived from. */
|
|
14
|
+
diversifierIndex?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Verify a Zcash shielded (Orchard/Ironwood) wallet address returned by the platform.
|
|
18
|
+
*
|
|
19
|
+
* Shielded custodial wallets use RedPallas threshold keys whose keychains carry no
|
|
20
|
+
* secp256k1 xpubs, so the address cannot be locally rederived the way fixed-script
|
|
21
|
+
* (transparent) addresses are (`assertFixedScriptWalletAddress` would throw reading
|
|
22
|
+
* `pub`). Instead, this checks the address is a well-formed Orchard Unified Address
|
|
23
|
+
* whose 43-byte receiver matches the diversifier and `pk_d` the platform reports in
|
|
24
|
+
* `coinSpecific.shielded` — i.e. the UA really encodes the reported shielded receiver.
|
|
25
|
+
*
|
|
26
|
+
* @throws {UnexpectedAddressError} if the address is not a valid Orchard UA, the
|
|
27
|
+
* platform-reported data is missing/malformed, or the UA's Orchard receiver does
|
|
28
|
+
* not match the reported diversifier/`pk_d`
|
|
29
|
+
*/
|
|
30
|
+
export declare function assertShieldedWalletAddress(coinName: UtxoCoinName, params: {
|
|
31
|
+
address: string;
|
|
32
|
+
coinSpecific?: {
|
|
33
|
+
shielded?: ShieldedAddressDetails;
|
|
34
|
+
};
|
|
35
|
+
}): void;
|
|
36
|
+
//# sourceMappingURL=shieldedAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shieldedAddress.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/shieldedAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,sBAAsB,CAAA;KAAE,CAAC;CACtD,GACA,IAAI,CAoCN"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { UnexpectedAddressError } from '@bitgo-beta/sdk-core';
|
|
3
|
+
/**
|
|
4
|
+
* Verify a Zcash shielded (Orchard/Ironwood) wallet address returned by the platform.
|
|
5
|
+
*
|
|
6
|
+
* Shielded custodial wallets use RedPallas threshold keys whose keychains carry no
|
|
7
|
+
* secp256k1 xpubs, so the address cannot be locally rederived the way fixed-script
|
|
8
|
+
* (transparent) addresses are (`assertFixedScriptWalletAddress` would throw reading
|
|
9
|
+
* `pub`). Instead, this checks the address is a well-formed Orchard Unified Address
|
|
10
|
+
* whose 43-byte receiver matches the diversifier and `pk_d` the platform reports in
|
|
11
|
+
* `coinSpecific.shielded` — i.e. the UA really encodes the reported shielded receiver.
|
|
12
|
+
*
|
|
13
|
+
* @throws {UnexpectedAddressError} if the address is not a valid Orchard UA, the
|
|
14
|
+
* platform-reported data is missing/malformed, or the UA's Orchard receiver does
|
|
15
|
+
* not match the reported diversifier/`pk_d`
|
|
16
|
+
*/
|
|
17
|
+
export function assertShieldedWalletAddress(coinName, params) {
|
|
18
|
+
const shielded = params.coinSpecific?.shielded;
|
|
19
|
+
if (!shielded?.diversifier || !shielded.pkD) {
|
|
20
|
+
throw new UnexpectedAddressError('address validation failure: shielded address missing diversifier or pkD');
|
|
21
|
+
}
|
|
22
|
+
const diversifier = Buffer.from(shielded.diversifier, 'hex');
|
|
23
|
+
const pkD = Buffer.from(shielded.pkD, 'hex');
|
|
24
|
+
if (diversifier.length !== 11) {
|
|
25
|
+
throw new UnexpectedAddressError(`address validation failure: invalid diversifier length ${diversifier.length}`);
|
|
26
|
+
}
|
|
27
|
+
if (pkD.length !== 32) {
|
|
28
|
+
throw new UnexpectedAddressError(`address validation failure: invalid pkD length ${pkD.length}`);
|
|
29
|
+
}
|
|
30
|
+
// Only zec/tzec produce shielded addresses, so the name is always a valid ZcashNetworkName.
|
|
31
|
+
const network = coinName;
|
|
32
|
+
let ua;
|
|
33
|
+
try {
|
|
34
|
+
ua = fixedScriptWallet.ZcashUnifiedAddress.parse(params.address, network);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
throw new UnexpectedAddressError(`address validation failure: not a valid unified address: ${params.address}`);
|
|
38
|
+
}
|
|
39
|
+
const orchard = ua.orchardReceiver;
|
|
40
|
+
if (!orchard || orchard.length !== 43) {
|
|
41
|
+
throw new UnexpectedAddressError('address validation failure: unified address carries no Orchard receiver');
|
|
42
|
+
}
|
|
43
|
+
const expectedReceiver = Buffer.concat([diversifier, pkD]);
|
|
44
|
+
if (!Buffer.from(orchard).equals(expectedReceiver)) {
|
|
45
|
+
throw new UnexpectedAddressError('address validation failure: unified address Orchard receiver does not match shielded coinSpecific');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpZWxkZWRBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvemVjL3NoaWVsZGVkQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQW1COUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsUUFBc0IsRUFDdEIsTUFHQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQy9DLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksc0JBQXNCLENBQUMsMERBQTBELFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLHNCQUFzQixDQUFDLGtEQUFrRCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsNEZBQTRGO0lBQzVGLE1BQU0sT0FBTyxHQUFHLFFBQThDLENBQUM7SUFFL0QsSUFBSSxFQUF5QyxDQUFDO0lBQzlDLElBQUksQ0FBQztRQUNILEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyw0REFBNEQsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDbkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxzQkFBc0IsQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsbUdBQW1HLENBQ3BHLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQgeyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcblxuLyoqXG4gKiBQbGF0Zm9ybS1yZXBvcnRlZCBzaGllbGRlZCBhZGRyZXNzIGRldGFpbHMgKHdhbGxldC1wbGF0Zm9ybVxuICogYGNvaW5TcGVjaWZpYy5zaGllbGRlZGAgZm9yIFpjYXNoIE9yY2hhcmQvSXJvbndvb2QgYWRkcmVzc2VzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaGllbGRlZEFkZHJlc3NEZXRhaWxzIHtcbiAgLyoqIFJlY2VpdmVyIHR5cGUsIGUuZy4gJ2lyb253b29kJy4gKi9cbiAgdHlwZT86IHN0cmluZztcbiAgLyoqIDExLWJ5dGUgaGV4IGRpdmVyc2lmaWVyLiAqL1xuICBkaXZlcnNpZmllcj86IHN0cmluZztcbiAgLyoqIDMyLWJ5dGUgaGV4IGBwa19kYC4gKi9cbiAgcGtEPzogc3RyaW5nO1xuICAvKiogV2FsbGV0IGFkZHJlc3MgaW5kZXggdGhlIGRpdmVyc2lmaWVyIHdhcyBkZXJpdmVkIGZyb20uICovXG4gIGRpdmVyc2lmaWVySW5kZXg/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgWmNhc2ggc2hpZWxkZWQgKE9yY2hhcmQvSXJvbndvb2QpIHdhbGxldCBhZGRyZXNzIHJldHVybmVkIGJ5IHRoZSBwbGF0Zm9ybS5cbiAqXG4gKiBTaGllbGRlZCBjdXN0b2RpYWwgd2FsbGV0cyB1c2UgUmVkUGFsbGFzIHRocmVzaG9sZCBrZXlzIHdob3NlIGtleWNoYWlucyBjYXJyeSBub1xuICogc2VjcDI1NmsxIHhwdWJzLCBzbyB0aGUgYWRkcmVzcyBjYW5ub3QgYmUgbG9jYWxseSByZWRlcml2ZWQgdGhlIHdheSBmaXhlZC1zY3JpcHRcbiAqICh0cmFuc3BhcmVudCkgYWRkcmVzc2VzIGFyZSAoYGFzc2VydEZpeGVkU2NyaXB0V2FsbGV0QWRkcmVzc2Agd291bGQgdGhyb3cgcmVhZGluZ1xuICogYHB1YmApLiBJbnN0ZWFkLCB0aGlzIGNoZWNrcyB0aGUgYWRkcmVzcyBpcyBhIHdlbGwtZm9ybWVkIE9yY2hhcmQgVW5pZmllZCBBZGRyZXNzXG4gKiB3aG9zZSA0My1ieXRlIHJlY2VpdmVyIG1hdGNoZXMgdGhlIGRpdmVyc2lmaWVyIGFuZCBgcGtfZGAgdGhlIHBsYXRmb3JtIHJlcG9ydHMgaW5cbiAqIGBjb2luU3BlY2lmaWMuc2hpZWxkZWRgIOKAlCBpLmUuIHRoZSBVQSByZWFsbHkgZW5jb2RlcyB0aGUgcmVwb3J0ZWQgc2hpZWxkZWQgcmVjZWl2ZXIuXG4gKlxuICogQHRocm93cyB7VW5leHBlY3RlZEFkZHJlc3NFcnJvcn0gaWYgdGhlIGFkZHJlc3MgaXMgbm90IGEgdmFsaWQgT3JjaGFyZCBVQSwgdGhlXG4gKiAgIHBsYXRmb3JtLXJlcG9ydGVkIGRhdGEgaXMgbWlzc2luZy9tYWxmb3JtZWQsIG9yIHRoZSBVQSdzIE9yY2hhcmQgcmVjZWl2ZXIgZG9lc1xuICogICBub3QgbWF0Y2ggdGhlIHJlcG9ydGVkIGRpdmVyc2lmaWVyL2Bwa19kYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U2hpZWxkZWRXYWxsZXRBZGRyZXNzKFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lLFxuICBwYXJhbXM6IHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgY29pblNwZWNpZmljPzogeyBzaGllbGRlZD86IFNoaWVsZGVkQWRkcmVzc0RldGFpbHMgfTtcbiAgfVxuKTogdm9pZCB7XG4gIGNvbnN0IHNoaWVsZGVkID0gcGFyYW1zLmNvaW5TcGVjaWZpYz8uc2hpZWxkZWQ7XG4gIGlmICghc2hpZWxkZWQ/LmRpdmVyc2lmaWVyIHx8ICFzaGllbGRlZC5wa0QpIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcignYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IHNoaWVsZGVkIGFkZHJlc3MgbWlzc2luZyBkaXZlcnNpZmllciBvciBwa0QnKTtcbiAgfVxuXG4gIGNvbnN0IGRpdmVyc2lmaWVyID0gQnVmZmVyLmZyb20oc2hpZWxkZWQuZGl2ZXJzaWZpZXIsICdoZXgnKTtcbiAgY29uc3QgcGtEID0gQnVmZmVyLmZyb20oc2hpZWxkZWQucGtELCAnaGV4Jyk7XG4gIGlmIChkaXZlcnNpZmllci5sZW5ndGggIT09IDExKSB7XG4gICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBpbnZhbGlkIGRpdmVyc2lmaWVyIGxlbmd0aCAke2RpdmVyc2lmaWVyLmxlbmd0aH1gKTtcbiAgfVxuICBpZiAocGtELmxlbmd0aCAhPT0gMzIpIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcihgYWRkcmVzcyB2YWxpZGF0aW9uIGZhaWx1cmU6IGludmFsaWQgcGtEIGxlbmd0aCAke3BrRC5sZW5ndGh9YCk7XG4gIH1cblxuICAvLyBPbmx5IHplYy90emVjIHByb2R1Y2Ugc2hpZWxkZWQgYWRkcmVzc2VzLCBzbyB0aGUgbmFtZSBpcyBhbHdheXMgYSB2YWxpZCBaY2FzaE5ldHdvcmtOYW1lLlxuICBjb25zdCBuZXR3b3JrID0gY29pbk5hbWUgYXMgZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hOZXR3b3JrTmFtZTtcblxuICBsZXQgdWE6IGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoVW5pZmllZEFkZHJlc3M7XG4gIHRyeSB7XG4gICAgdWEgPSBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaFVuaWZpZWRBZGRyZXNzLnBhcnNlKHBhcmFtcy5hZGRyZXNzLCBuZXR3b3JrKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKGBhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogbm90IGEgdmFsaWQgdW5pZmllZCBhZGRyZXNzOiAke3BhcmFtcy5hZGRyZXNzfWApO1xuICB9XG5cbiAgY29uc3Qgb3JjaGFyZCA9IHVhLm9yY2hhcmRSZWNlaXZlcjtcbiAgaWYgKCFvcmNoYXJkIHx8IG9yY2hhcmQubGVuZ3RoICE9PSA0Mykge1xuICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKCdhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogdW5pZmllZCBhZGRyZXNzIGNhcnJpZXMgbm8gT3JjaGFyZCByZWNlaXZlcicpO1xuICB9XG5cbiAgY29uc3QgZXhwZWN0ZWRSZWNlaXZlciA9IEJ1ZmZlci5jb25jYXQoW2RpdmVyc2lmaWVyLCBwa0RdKTtcbiAgaWYgKCFCdWZmZXIuZnJvbShvcmNoYXJkKS5lcXVhbHMoZXhwZWN0ZWRSZWNlaXZlcikpIHtcbiAgICB0aHJvdyBuZXcgVW5leHBlY3RlZEFkZHJlc3NFcnJvcihcbiAgICAgICdhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogdW5pZmllZCBhZGRyZXNzIE9yY2hhcmQgcmVjZWl2ZXIgZG9lcyBub3QgbWF0Y2ggc2hpZWxkZWQgY29pblNwZWNpZmljJ1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BIP32, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
2
|
+
import { SignTransactionOptions } from '../../abstractUtxoCoin';
|
|
3
|
+
import { ReplayProtectionKeys } from '../../transaction/fixedScript/signPsbtWasm';
|
|
4
|
+
import type { Zec } from './zec';
|
|
5
|
+
/**
|
|
6
|
+
* Sign all transparent inputs of a v6 (Ironwood) Zcash PSBT and verify the signatures.
|
|
7
|
+
*
|
|
8
|
+
* v6 PSBTs override `sign(key)` to require the wallet root keys: on the first signing round —
|
|
9
|
+
* which the wasm enforces to be the user's root key — they derive the wallet ovk (the ECDH
|
|
10
|
+
* agreement of `rootWalletKeys.bitgoKey()` and the user root key) and finalize the shielded
|
|
11
|
+
* output's out_ciphertext before computing any transparent sighash. Later rounds no-op that
|
|
12
|
+
* step, so rootWalletKeys is passed unconditionally. Transparent inputs are signed with
|
|
13
|
+
* ordinary ECDSA over the ZIP-244 sighash either way.
|
|
14
|
+
*
|
|
15
|
+
* The generic `signAndVerifyPsbtWasm` cannot provide this: its `tx.sign(wasmSigner)` call does
|
|
16
|
+
* not satisfy the v6 override's rootWalletKeys requirement. Verification and signed-with
|
|
17
|
+
* metadata are shared with the generic path.
|
|
18
|
+
*/
|
|
19
|
+
export declare function signAndVerifyIronwoodPsbt(tx: fixedScriptWallet.ZcashIronwoodBitGoPsbt, signerKeychain: BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, { writeSignedWith }?: {
|
|
20
|
+
writeSignedWith?: boolean;
|
|
21
|
+
}): fixedScriptWallet.ZcashIronwoodBitGoPsbt;
|
|
22
|
+
/**
|
|
23
|
+
* Sign a v6 (Ironwood) Zcash prebuild. Called from `Zec.signTransaction` once the decoded
|
|
24
|
+
* prebuild is known to be an Ironwood PSBT; every other prebuild keeps the generic path.
|
|
25
|
+
*/
|
|
26
|
+
export declare function signIronwoodTransaction<TNumber extends number | bigint = number>(coin: Zec, tx: fixedScriptWallet.ZcashIronwoodBitGoPsbt, params: SignTransactionOptions<TNumber>): {
|
|
27
|
+
txHex: string;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=signIronwoodTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signIronwoodTransaction.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/signIronwoodTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,OAAO,EACL,oBAAoB,EAGrB,MAAM,4CAA4C,CAAC;AAGpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,iBAAiB,CAAC,sBAAsB,EAC5C,cAAc,EAAE,KAAK,EACrB,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,sBAAsB,CAc1C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAC9E,IAAI,EAAE,GAAG,EACT,EAAE,EAAE,iBAAiB,CAAC,sBAAsB,EAC5C,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBnB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import assert from 'assert';
|
|
2
|
+
import { isTriple } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
4
|
+
import { getReplayProtectionPubkeys } from '../../transaction/fixedScript/replayProtection';
|
|
5
|
+
import { BulkSigningError } from '../../transaction/fixedScript/SigningError';
|
|
6
|
+
import { finalizeSignedPsbt } from '../../transaction/fixedScript/signTransaction';
|
|
7
|
+
import { verifyPsbtSignaturesWasm, writeWasmUtxoSignedWithKv, } from '../../transaction/fixedScript/signPsbtWasm';
|
|
8
|
+
import { getSignerKeychain, toSignTransactionResult } from '../../transaction/signTransaction';
|
|
9
|
+
/**
|
|
10
|
+
* Sign all transparent inputs of a v6 (Ironwood) Zcash PSBT and verify the signatures.
|
|
11
|
+
*
|
|
12
|
+
* v6 PSBTs override `sign(key)` to require the wallet root keys: on the first signing round —
|
|
13
|
+
* which the wasm enforces to be the user's root key — they derive the wallet ovk (the ECDH
|
|
14
|
+
* agreement of `rootWalletKeys.bitgoKey()` and the user root key) and finalize the shielded
|
|
15
|
+
* output's out_ciphertext before computing any transparent sighash. Later rounds no-op that
|
|
16
|
+
* step, so rootWalletKeys is passed unconditionally. Transparent inputs are signed with
|
|
17
|
+
* ordinary ECDSA over the ZIP-244 sighash either way.
|
|
18
|
+
*
|
|
19
|
+
* The generic `signAndVerifyPsbtWasm` cannot provide this: its `tx.sign(wasmSigner)` call does
|
|
20
|
+
* not satisfy the v6 override's rootWalletKeys requirement. Verification and signed-with
|
|
21
|
+
* metadata are shared with the generic path.
|
|
22
|
+
*/
|
|
23
|
+
export function signAndVerifyIronwoodPsbt(tx, signerKeychain, rootWalletKeys, replayProtection, { writeSignedWith = false } = {}) {
|
|
24
|
+
try {
|
|
25
|
+
tx.sign(signerKeychain, rootWalletKeys);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
throw new BulkSigningError(e);
|
|
29
|
+
}
|
|
30
|
+
verifyPsbtSignaturesWasm(tx, signerKeychain, rootWalletKeys, replayProtection);
|
|
31
|
+
if (writeSignedWith) {
|
|
32
|
+
writeWasmUtxoSignedWithKv(tx);
|
|
33
|
+
}
|
|
34
|
+
return tx;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Sign a v6 (Ironwood) Zcash prebuild. Called from `Zec.signTransaction` once the decoded
|
|
38
|
+
* prebuild is known to be an Ironwood PSBT; every other prebuild keeps the generic path.
|
|
39
|
+
*/
|
|
40
|
+
export function signIronwoodTransaction(coin, tx, params) {
|
|
41
|
+
const signerKeychain = getSignerKeychain('prv' in params ? params.prv : undefined);
|
|
42
|
+
assert(signerKeychain, 'missing signer keychain');
|
|
43
|
+
assert(params.pubs, 'pubs are required for fixed script signing');
|
|
44
|
+
assert(isTriple(params.pubs), 'pubs must be a triple');
|
|
45
|
+
const rootWalletKeys = fixedScriptWallet.RootWalletKeys.fromXpubs(params.pubs);
|
|
46
|
+
const signedPsbt = signAndVerifyIronwoodPsbt(tx, signerKeychain, rootWalletKeys, { publicKeys: getReplayProtectionPubkeys(coin.wasmName) }, { writeSignedWith: params.writeSignedWith });
|
|
47
|
+
const signedTx = finalizeSignedPsbt(signedPsbt, params);
|
|
48
|
+
return toSignTransactionResult(signedTx, params);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbklyb253b29kVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1wbC96ZWMvc2lnbklyb253b29kVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQVMsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRixPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUMxQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSS9GOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLEVBQTRDLEVBQzVDLGNBQXFCLEVBQ3JCLGNBQWdELEVBQ2hELGdCQUFzQyxFQUN0QyxFQUFFLGVBQWUsR0FBRyxLQUFLLEtBQW9DLEVBQUU7SUFFL0QsSUFBSSxDQUFDO1FBQ0gsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHdCQUF3QixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFL0UsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQix5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUFTLEVBQ1QsRUFBNEMsRUFDNUMsTUFBdUM7SUFFdkMsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkYsTUFBTSxDQUFDLGNBQWMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBRWxELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7SUFDbEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN2RCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUvRSxNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FDMUMsRUFBRSxFQUNGLGNBQWMsRUFDZCxjQUFjLEVBQ2QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQ3pELEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FDNUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxPQUFPLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBpc1RyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJJUDMyLCBmaXhlZFNjcmlwdFdhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBTaWduVHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBnZXRSZXBsYXlQcm90ZWN0aW9uUHVia2V5cyB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3JlcGxheVByb3RlY3Rpb24nO1xuaW1wb3J0IHsgQnVsa1NpZ25pbmdFcnJvciB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L1NpZ25pbmdFcnJvcic7XG5pbXBvcnQgeyBmaW5hbGl6ZVNpZ25lZFBzYnQgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9zaWduVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtcbiAgUmVwbGF5UHJvdGVjdGlvbktleXMsXG4gIHZlcmlmeVBzYnRTaWduYXR1cmVzV2FzbSxcbiAgd3JpdGVXYXNtVXR4b1NpZ25lZFdpdGhLdixcbn0gZnJvbSAnLi4vLi4vdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvc2lnblBzYnRXYXNtJztcbmltcG9ydCB7IGdldFNpZ25lcktleWNoYWluLCB0b1NpZ25UcmFuc2FjdGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL3NpZ25UcmFuc2FjdGlvbic7XG5cbmltcG9ydCB0eXBlIHsgWmVjIH0gZnJvbSAnLi96ZWMnO1xuXG4vKipcbiAqIFNpZ24gYWxsIHRyYW5zcGFyZW50IGlucHV0cyBvZiBhIHY2IChJcm9ud29vZCkgWmNhc2ggUFNCVCBhbmQgdmVyaWZ5IHRoZSBzaWduYXR1cmVzLlxuICpcbiAqIHY2IFBTQlRzIG92ZXJyaWRlIGBzaWduKGtleSlgIHRvIHJlcXVpcmUgdGhlIHdhbGxldCByb290IGtleXM6IG9uIHRoZSBmaXJzdCBzaWduaW5nIHJvdW5kIOKAlFxuICogd2hpY2ggdGhlIHdhc20gZW5mb3JjZXMgdG8gYmUgdGhlIHVzZXIncyByb290IGtleSDigJQgdGhleSBkZXJpdmUgdGhlIHdhbGxldCBvdmsgKHRoZSBFQ0RIXG4gKiBhZ3JlZW1lbnQgb2YgYHJvb3RXYWxsZXRLZXlzLmJpdGdvS2V5KClgIGFuZCB0aGUgdXNlciByb290IGtleSkgYW5kIGZpbmFsaXplIHRoZSBzaGllbGRlZFxuICogb3V0cHV0J3Mgb3V0X2NpcGhlcnRleHQgYmVmb3JlIGNvbXB1dGluZyBhbnkgdHJhbnNwYXJlbnQgc2lnaGFzaC4gTGF0ZXIgcm91bmRzIG5vLW9wIHRoYXRcbiAqIHN0ZXAsIHNvIHJvb3RXYWxsZXRLZXlzIGlzIHBhc3NlZCB1bmNvbmRpdGlvbmFsbHkuIFRyYW5zcGFyZW50IGlucHV0cyBhcmUgc2lnbmVkIHdpdGhcbiAqIG9yZGluYXJ5IEVDRFNBIG92ZXIgdGhlIFpJUC0yNDQgc2lnaGFzaCBlaXRoZXIgd2F5LlxuICpcbiAqIFRoZSBnZW5lcmljIGBzaWduQW5kVmVyaWZ5UHNidFdhc21gIGNhbm5vdCBwcm92aWRlIHRoaXM6IGl0cyBgdHguc2lnbih3YXNtU2lnbmVyKWAgY2FsbCBkb2VzXG4gKiBub3Qgc2F0aXNmeSB0aGUgdjYgb3ZlcnJpZGUncyByb290V2FsbGV0S2V5cyByZXF1aXJlbWVudC4gVmVyaWZpY2F0aW9uIGFuZCBzaWduZWQtd2l0aFxuICogbWV0YWRhdGEgYXJlIHNoYXJlZCB3aXRoIHRoZSBnZW5lcmljIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduQW5kVmVyaWZ5SXJvbndvb2RQc2J0KFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hJcm9ud29vZEJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IEJJUDMyLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzLFxuICB7IHdyaXRlU2lnbmVkV2l0aCA9IGZhbHNlIH06IHsgd3JpdGVTaWduZWRXaXRoPzogYm9vbGVhbiB9ID0ge31cbik6IGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoSXJvbndvb2RCaXRHb1BzYnQge1xuICB0cnkge1xuICAgIHR4LnNpZ24oc2lnbmVyS2V5Y2hhaW4sIHJvb3RXYWxsZXRLZXlzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBCdWxrU2lnbmluZ0Vycm9yKGUpO1xuICB9XG5cbiAgdmVyaWZ5UHNidFNpZ25hdHVyZXNXYXNtKHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHJlcGxheVByb3RlY3Rpb24pO1xuXG4gIGlmICh3cml0ZVNpZ25lZFdpdGgpIHtcbiAgICB3cml0ZVdhc21VdHhvU2lnbmVkV2l0aEt2KHR4KTtcbiAgfVxuXG4gIHJldHVybiB0eDtcbn1cblxuLyoqXG4gKiBTaWduIGEgdjYgKElyb253b29kKSBaY2FzaCBwcmVidWlsZC4gQ2FsbGVkIGZyb20gYFplYy5zaWduVHJhbnNhY3Rpb25gIG9uY2UgdGhlIGRlY29kZWRcbiAqIHByZWJ1aWxkIGlzIGtub3duIHRvIGJlIGFuIElyb253b29kIFBTQlQ7IGV2ZXJ5IG90aGVyIHByZWJ1aWxkIGtlZXBzIHRoZSBnZW5lcmljIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWduSXJvbndvb2RUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgY29pbjogWmVjLFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hJcm9ud29vZEJpdEdvUHNidCxcbiAgcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiB7IHR4SGV4OiBzdHJpbmcgfSB7XG4gIGNvbnN0IHNpZ25lcktleWNoYWluID0gZ2V0U2lnbmVyS2V5Y2hhaW4oJ3BydicgaW4gcGFyYW1zID8gcGFyYW1zLnBydiA6IHVuZGVmaW5lZCk7XG4gIGFzc2VydChzaWduZXJLZXljaGFpbiwgJ21pc3Npbmcgc2lnbmVyIGtleWNoYWluJyk7XG5cbiAgYXNzZXJ0KHBhcmFtcy5wdWJzLCAncHVicyBhcmUgcmVxdWlyZWQgZm9yIGZpeGVkIHNjcmlwdCBzaWduaW5nJyk7XG4gIGFzc2VydChpc1RyaXBsZShwYXJhbXMucHVicyksICdwdWJzIG11c3QgYmUgYSB0cmlwbGUnKTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tWHB1YnMocGFyYW1zLnB1YnMpO1xuXG4gIGNvbnN0IHNpZ25lZFBzYnQgPSBzaWduQW5kVmVyaWZ5SXJvbndvb2RQc2J0KFxuICAgIHR4LFxuICAgIHNpZ25lcktleWNoYWluLFxuICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgIHsgcHVibGljS2V5czogZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmtleXMoY29pbi53YXNtTmFtZSkgfSxcbiAgICB7IHdyaXRlU2lnbmVkV2l0aDogcGFyYW1zLndyaXRlU2lnbmVkV2l0aCB9XG4gICk7XG5cbiAgY29uc3Qgc2lnbmVkVHggPSBmaW5hbGl6ZVNpZ25lZFBzYnQoc2lnbmVkUHNidCwgcGFyYW1zKTtcbiAgcmV0dXJuIHRvU2lnblRyYW5zYWN0aW9uUmVzdWx0KHNpZ25lZFR4LCBwYXJhbXMpO1xufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AddressCodecOutput } from '../../transaction/recipient';
|
|
2
|
+
/** A Zcash coin name — the only UTXO coins with shielded (Orchard/Ironwood) support. */
|
|
3
|
+
export type ZcashCoinName = 'zec' | 'tzec';
|
|
4
|
+
/** Parsed output metadata used to distinguish Zcash transparent and shielded receivers. */
|
|
5
|
+
export interface ZecAddressCodecOutput extends AddressCodecOutput {
|
|
6
|
+
isShielded?: boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,wFAAwF;AACxF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,2FAA2F;AAC3F,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1wbC96ZWMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWRkcmVzc0NvZGVjT3V0cHV0IH0gZnJvbSAnLi4vLi4vdHJhbnNhY3Rpb24vcmVjaXBpZW50JztcblxuLyoqIEEgWmNhc2ggY29pbiBuYW1lIOKAlCB0aGUgb25seSBVVFhPIGNvaW5zIHdpdGggc2hpZWxkZWQgKE9yY2hhcmQvSXJvbndvb2QpIHN1cHBvcnQuICovXG5leHBvcnQgdHlwZSBaY2FzaENvaW5OYW1lID0gJ3plYycgfCAndHplYyc7XG5cbi8qKiBQYXJzZWQgb3V0cHV0IG1ldGFkYXRhIHVzZWQgdG8gZGlzdGluZ3Vpc2ggWmNhc2ggdHJhbnNwYXJlbnQgYW5kIHNoaWVsZGVkIHJlY2VpdmVycy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmVjQWRkcmVzc0NvZGVjT3V0cHV0IGV4dGVuZHMgQWRkcmVzc0NvZGVjT3V0cHV0IHtcbiAgaXNTaGllbGRlZD86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BitGoBase } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { UtxoCoinName } from '../../names';
|
|
3
|
+
import { Zec } from './zec';
|
|
4
|
+
export declare class Tzec extends Zec {
|
|
5
|
+
readonly name: UtxoCoinName;
|
|
6
|
+
constructor(bitgo: BitGoBase);
|
|
7
|
+
static createInstance(bitgo: BitGoBase): Tzec;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=tzec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tzec.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/tzec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,qBAAa,IAAK,SAAQ,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAU;gBAEzB,KAAK,EAAE,SAAS;IAI5B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAG9C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Zec } from './zec';
|
|
2
|
+
export class Tzec extends Zec {
|
|
3
|
+
constructor(bitgo) {
|
|
4
|
+
super(bitgo);
|
|
5
|
+
this.name = 'tzec';
|
|
6
|
+
}
|
|
7
|
+
static createInstance(bitgo) {
|
|
8
|
+
return new Tzec(bitgo);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHplYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsL3plYy90emVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFNUIsTUFBTSxPQUFPLElBQUssU0FBUSxHQUFHO0lBRzNCLFlBQVksS0FBZ0I7UUFDMUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSE4sU0FBSSxHQUFpQixNQUFNLENBQUM7SUFJckMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB7IFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcblxuaW1wb3J0IHsgWmVjIH0gZnJvbSAnLi96ZWMnO1xuXG5leHBvcnQgY2xhc3MgVHplYyBleHRlbmRzIFplYyB7XG4gIHJlYWRvbmx5IG5hbWU6IFV0eG9Db2luTmFtZSA9ICd0emVjJztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlKSB7XG4gICAgc3VwZXIoYml0Z28pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBUemVjIHtcbiAgICByZXR1cm4gbmV3IFR6ZWMoYml0Z28pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
5
|
+
import { BitGoBase, ExtraPrebuildParamsOptions, HalfSignedUtxoTransaction, IWallet, MPCAlgorithm, SignedTransaction, Wallet } from '@bitgo-beta/sdk-core';
|
|
6
|
+
import { AbstractUtxoCoin, ParseTransactionOptions, SignTransactionOptions, UtxoCoinSpecific, VerifyAddressOptions } from '../../abstractUtxoCoin';
|
|
7
|
+
import type { ParsedTransaction } from '../../transaction/types';
|
|
8
|
+
import { UtxoCoinName } from '../../names';
|
|
9
|
+
import { ZecAddressCodec } from './address';
|
|
10
|
+
import { PsbtRecipient } from './recipients';
|
|
11
|
+
export declare class Zec extends AbstractUtxoCoin {
|
|
12
|
+
readonly name: UtxoCoinName;
|
|
13
|
+
constructor(bitgo: BitGoBase);
|
|
14
|
+
/**
|
|
15
|
+
* ZEC shielded (Orchard/Ironwood) custodial wallets use RedPallas threshold keys.
|
|
16
|
+
* Transparent (secp256k1 multisig) flows are unaffected: MPCAlgorithm is only
|
|
17
|
+
* consulted on the TSS custodial wallet-creation path.
|
|
18
|
+
* @inheritdoc
|
|
19
|
+
*/
|
|
20
|
+
getMPCAlgorithm(): MPCAlgorithm;
|
|
21
|
+
static createInstance(bitgo: BitGoBase): Zec;
|
|
22
|
+
get addressCodec(): ZecAddressCodec;
|
|
23
|
+
/**
|
|
24
|
+
* Shielded (Orchard/Ironwood) addresses are returned with `coinSpecific.shielded` and
|
|
25
|
+
* cannot be locally rederived from secp256k1 xpubs (RedPallas keychains carry none), so
|
|
26
|
+
* verify them against the platform-reported diversifier/pkD instead of the fixed-script
|
|
27
|
+
* transparent derivation the base class performs.
|
|
28
|
+
* @inheritdoc
|
|
29
|
+
*/
|
|
30
|
+
isWalletAddress(params: VerifyAddressOptions<UtxoCoinSpecific>, wallet?: IWallet): Promise<boolean>;
|
|
31
|
+
isValidAddress(address: string, param?: {
|
|
32
|
+
anyFormat?: boolean;
|
|
33
|
+
allowLightning?: boolean;
|
|
34
|
+
} | boolean): boolean;
|
|
35
|
+
private inferUnifiedRecipientPreference;
|
|
36
|
+
parseTransaction<TNumber extends number | bigint = number>(params: ParseTransactionOptions<TNumber>): Promise<ParsedTransaction<TNumber>>;
|
|
37
|
+
getExtraPrebuildParams(buildParams: ExtraPrebuildParamsOptions & {
|
|
38
|
+
wallet: Wallet;
|
|
39
|
+
}): Promise<{
|
|
40
|
+
txFormat?: import("../..").TxFormat;
|
|
41
|
+
changeAddressType?: ("p2sh" | "p2shP2wsh" | "p2wsh" | "p2trMusig2" | "p2tr")[] | ("p2sh" | "p2shP2wsh" | "p2wsh" | "p2trMusig2" | "p2tr");
|
|
42
|
+
allowedInputScriptTypes?: ("p2sh" | "p2shP2wsh" | "p2wsh" | "p2trMusig2" | "p2tr")[];
|
|
43
|
+
} | {
|
|
44
|
+
unifiedRecipientPreference: "shielded" | "transparent";
|
|
45
|
+
txFormat?: import("../..").TxFormat;
|
|
46
|
+
changeAddressType?: ("p2sh" | "p2shP2wsh" | "p2wsh" | "p2trMusig2" | "p2tr")[] | ("p2sh" | "p2shP2wsh" | "p2wsh" | "p2trMusig2" | "p2tr");
|
|
47
|
+
allowedInputScriptTypes?: ("p2sh" | "p2shP2wsh" | "p2wsh" | "p2trMusig2" | "p2tr")[];
|
|
48
|
+
}>;
|
|
49
|
+
decodeTransaction(input: Buffer | string): fixedScriptWallet.BitGoPsbt;
|
|
50
|
+
/**
|
|
51
|
+
* Route v6 (Ironwood) prebuilds to the Ironwood signing path — its `sign` override requires
|
|
52
|
+
* the wallet root keys to derive the ovk on the user's first signing round — and keep every
|
|
53
|
+
* other prebuild (v4 and non-PSBT) on the generic path.
|
|
54
|
+
*/
|
|
55
|
+
signTransaction<TNumber extends number | bigint = number>(params: SignTransactionOptions<TNumber>): Promise<SignedTransaction | HalfSignedUtxoTransaction>;
|
|
56
|
+
resolveRecipientsFromPsbt(input: Buffer | string, walletKeys: fixedScriptWallet.RootWalletKeys): PsbtRecipient[];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=zec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zec.d.ts","sourceRoot":"","sources":["../../../../src/impl/zec/zec.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAA8B,MAAM,kBAAkB,CAAC;AACjF,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,yBAAyB,EACzB,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,MAAM,EAEP,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAyB,aAAa,EAAE,MAAM,cAAc,CAAC;AAIpE,qBAAa,GAAI,SAAQ,gBAAgB;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAS;gBAExB,KAAK,EAAE,SAAS;IAI5B;;;;;OAKG;IACH,eAAe,IAAI,YAAY;IAI/B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG;IAI5C,IAAa,YAAY,IAAI,eAAe,CAE3C;IAED;;;;;;OAMG;IACY,eAAe,CAAC,MAAM,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,GAAG,OAAO;IAI7G,OAAO,CAAC,+BAA+B;IAyBxB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACtE,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACvC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IASvB,sBAAsB,CAAC,WAAW,EAAE,0BAA0B,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;IASzF,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,SAAS;IAQ/E;;;;OAIG;IACY,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrE,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,iBAAiB,GAAG,yBAAyB,CAAC;IAYzD,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,iBAAiB,CAAC,cAAc,GAAG,aAAa,EAAE;CAOjH"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import { fixedScriptWallet, hasPsbtMagic, zcashAddress } from '@bitgo/wasm-utxo';
|
|
5
|
+
import _ from 'lodash';
|
|
6
|
+
import { AbstractUtxoCoin, } from '../../abstractUtxoCoin';
|
|
7
|
+
import { stringToBufferTryFormats } from '../../transaction/decode';
|
|
8
|
+
import { toWasmUtxoCoinName } from '../../names';
|
|
9
|
+
import { AddressCodec } from '../../transaction/recipient';
|
|
10
|
+
import { ZecAddressCodec } from './address';
|
|
11
|
+
import { signIronwoodTransaction } from './signIronwoodTransaction';
|
|
12
|
+
import { resolvePsbtRecipients } from './recipients';
|
|
13
|
+
import { assertShieldedWalletAddress } from './shieldedAddress';
|
|
14
|
+
export class Zec extends AbstractUtxoCoin {
|
|
15
|
+
constructor(bitgo) {
|
|
16
|
+
super(bitgo);
|
|
17
|
+
this.name = 'zec';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* ZEC shielded (Orchard/Ironwood) custodial wallets use RedPallas threshold keys.
|
|
21
|
+
* Transparent (secp256k1 multisig) flows are unaffected: MPCAlgorithm is only
|
|
22
|
+
* consulted on the TSS custodial wallet-creation path.
|
|
23
|
+
* @inheritdoc
|
|
24
|
+
*/
|
|
25
|
+
getMPCAlgorithm() {
|
|
26
|
+
return 'redpallas';
|
|
27
|
+
}
|
|
28
|
+
static createInstance(bitgo) {
|
|
29
|
+
return new Zec(bitgo);
|
|
30
|
+
}
|
|
31
|
+
get addressCodec() {
|
|
32
|
+
return new ZecAddressCodec(this.name, this.wasmName);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Shielded (Orchard/Ironwood) addresses are returned with `coinSpecific.shielded` and
|
|
36
|
+
* cannot be locally rederived from secp256k1 xpubs (RedPallas keychains carry none), so
|
|
37
|
+
* verify them against the platform-reported diversifier/pkD instead of the fixed-script
|
|
38
|
+
* transparent derivation the base class performs.
|
|
39
|
+
* @inheritdoc
|
|
40
|
+
*/
|
|
41
|
+
async isWalletAddress(params, wallet) {
|
|
42
|
+
if (params.coinSpecific?.shielded) {
|
|
43
|
+
assertShieldedWalletAddress(this.name, params);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return super.isWalletAddress(params, wallet);
|
|
47
|
+
}
|
|
48
|
+
isValidAddress(address, param) {
|
|
49
|
+
return this.addressCodec.isValidAddress(address);
|
|
50
|
+
}
|
|
51
|
+
inferUnifiedRecipientPreference(recipients) {
|
|
52
|
+
const shieldedness = (recipients ?? []).map((recipient) => {
|
|
53
|
+
const address = recipient.address;
|
|
54
|
+
if (address === undefined) {
|
|
55
|
+
return 'transparent';
|
|
56
|
+
}
|
|
57
|
+
if (AddressCodec.isScriptRecipient(address)) {
|
|
58
|
+
return 'transparent';
|
|
59
|
+
}
|
|
60
|
+
const hasTransparentReceiver = zcashAddress.hasTransparentReceiver(address, this.wasmName);
|
|
61
|
+
const hasOrchardReceiver = zcashAddress.hasOrchardReceiver(address, this.wasmName);
|
|
62
|
+
return hasOrchardReceiver && !hasTransparentReceiver
|
|
63
|
+
? 'shielded'
|
|
64
|
+
: hasTransparentReceiver
|
|
65
|
+
? 'transparent'
|
|
66
|
+
: undefined;
|
|
67
|
+
});
|
|
68
|
+
if (shieldedness.includes('shielded') && shieldedness.includes('transparent')) {
|
|
69
|
+
throw new Error('Mixed shielded and transparent recipients are not supported');
|
|
70
|
+
}
|
|
71
|
+
return shieldedness.includes('shielded') ? 'shielded' : undefined;
|
|
72
|
+
}
|
|
73
|
+
async parseTransaction(params) {
|
|
74
|
+
const preference = params.txParams.unifiedRecipientPreference ?? this.inferUnifiedRecipientPreference(params.txParams.recipients);
|
|
75
|
+
return this.parseTransactionWithAddressCodec(params, new ZecAddressCodec(this.name, this.wasmName, preference ?? 'transparent'));
|
|
76
|
+
}
|
|
77
|
+
async getExtraPrebuildParams(buildParams) {
|
|
78
|
+
const extraParams = await super.getExtraPrebuildParams(buildParams);
|
|
79
|
+
const { unifiedRecipientPreference } = buildParams;
|
|
80
|
+
if (unifiedRecipientPreference === undefined) {
|
|
81
|
+
return extraParams;
|
|
82
|
+
}
|
|
83
|
+
return { ...extraParams, unifiedRecipientPreference };
|
|
84
|
+
}
|
|
85
|
+
decodeTransaction(input) {
|
|
86
|
+
const buffer = typeof input === 'string' ? stringToBufferTryFormats(input, ['hex', 'base64']) : input;
|
|
87
|
+
if (!hasPsbtMagic(buffer)) {
|
|
88
|
+
return super.decodeTransaction(input);
|
|
89
|
+
}
|
|
90
|
+
return fixedScriptWallet.ZcashPsbt.fromBytes(buffer, toWasmUtxoCoinName(this.name));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Route v6 (Ironwood) prebuilds to the Ironwood signing path — its `sign` override requires
|
|
94
|
+
* the wallet root keys to derive the ovk on the user's first signing round — and keep every
|
|
95
|
+
* other prebuild (v4 and non-PSBT) on the generic path.
|
|
96
|
+
*/
|
|
97
|
+
async signTransaction(params) {
|
|
98
|
+
const txPrebuild = params?.txPrebuild;
|
|
99
|
+
if (!_.isObject(txPrebuild)) {
|
|
100
|
+
// Defer to the base path for its standard missing/malformed-prebuild validation errors.
|
|
101
|
+
return super.signTransaction(params);
|
|
102
|
+
}
|
|
103
|
+
const tx = this.decodeTransactionFromPrebuild(txPrebuild);
|
|
104
|
+
if (!(tx instanceof fixedScriptWallet.ZcashIronwoodBitGoPsbt)) {
|
|
105
|
+
return super.signTransaction(params);
|
|
106
|
+
}
|
|
107
|
+
return signIronwoodTransaction(this, tx, params);
|
|
108
|
+
}
|
|
109
|
+
resolveRecipientsFromPsbt(input, walletKeys) {
|
|
110
|
+
const psbt = this.decodeTransaction(input);
|
|
111
|
+
if (!(psbt instanceof fixedScriptWallet.ZcashBitGoPsbt)) {
|
|
112
|
+
throw new Error('expected a Zcash PSBT');
|
|
113
|
+
}
|
|
114
|
+
return resolvePsbtRecipients(psbt, walletKeys, this.addressCodec);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvemVjL3plYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFXakYsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxnQkFBZ0IsR0FLakIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBaUIsTUFBTSxjQUFjLENBQUM7QUFDcEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEUsTUFBTSxPQUFPLEdBQUksU0FBUSxnQkFBZ0I7SUFHdkMsWUFBWSxLQUFnQjtRQUMxQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITixTQUFJLEdBQWlCLEtBQUssQ0FBQztJQUlwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlO1FBQ2IsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0I7UUFDcEMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxZQUFZO1FBQ3ZCLE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNNLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBOEMsRUFBRSxNQUFnQjtRQUM3RixJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDbEMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZSxFQUFFLEtBQW1FO1FBQ2pHLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLCtCQUErQixDQUNyQyxVQUF5RDtRQUV6RCxNQUFNLFlBQVksR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQTBDLEVBQUU7WUFDaEcsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxhQUFhLENBQUM7WUFDdkIsQ0FBQztZQUNELElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sYUFBYSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxNQUFNLHNCQUFzQixHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNGLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkYsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLHNCQUFzQjtnQkFDbEQsQ0FBQyxDQUFDLFVBQVU7Z0JBQ1osQ0FBQyxDQUFDLHNCQUFzQjtvQkFDeEIsQ0FBQyxDQUFDLGFBQWE7b0JBQ2YsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDOUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3BFLENBQUM7SUFFUSxLQUFLLENBQUMsZ0JBQWdCLENBQzdCLE1BQXdDO1FBRXhDLE1BQU0sVUFBVSxHQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsMEJBQTBCLElBQUksSUFBSSxDQUFDLCtCQUErQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakgsT0FBTyxJQUFJLENBQUMsZ0NBQWdDLENBQzFDLE1BQU0sRUFDTixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxJQUFJLGFBQWEsQ0FBQyxDQUMzRSxDQUFDO0lBQ0osQ0FBQztJQUVRLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxXQUE0RDtRQUNoRyxNQUFNLFdBQVcsR0FBRyxNQUFNLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDbkQsSUFBSSwwQkFBMEIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsV0FBVyxFQUFFLDBCQUEwQixFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVRLGlCQUFpQixDQUFDLEtBQXNCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0RyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBa0IsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRDs7OztPQUlHO0lBQ00sS0FBSyxDQUFDLGVBQWUsQ0FDNUIsTUFBdUM7UUFFdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxFQUFFLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzVCLHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsQ0FBQyxFQUFFLFlBQVksaUJBQWlCLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQzlELE9BQU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxLQUFzQixFQUFFLFVBQTRDO1FBQzVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELE9BQU8scUJBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQsIGhhc1BzYnRNYWdpYywgemNhc2hBZGRyZXNzIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5pbXBvcnQge1xuICBCaXRHb0Jhc2UsXG4gIEV4dHJhUHJlYnVpbGRQYXJhbXNPcHRpb25zLFxuICBIYWxmU2lnbmVkVXR4b1RyYW5zYWN0aW9uLFxuICBJV2FsbGV0LFxuICBNUENBbGdvcml0aG0sXG4gIFNpZ25lZFRyYW5zYWN0aW9uLFxuICBXYWxsZXQsXG4gIFVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdFV0eG9Db2luLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgVXR4b0NvaW5TcGVjaWZpYyxcbiAgVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG59IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL3R5cGVzJztcbmltcG9ydCB7IHN0cmluZ1RvQnVmZmVyVHJ5Rm9ybWF0cyB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2RlY29kZSc7XG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUsIHRvV2FzbVV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcbmltcG9ydCB7IEFkZHJlc3NDb2RlYyB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL3JlY2lwaWVudCc7XG5cbmltcG9ydCB7IFplY0FkZHJlc3NDb2RlYyB9IGZyb20gJy4vYWRkcmVzcyc7XG5pbXBvcnQgeyBzaWduSXJvbndvb2RUcmFuc2FjdGlvbiB9IGZyb20gJy4vc2lnbklyb253b29kVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgcmVzb2x2ZVBzYnRSZWNpcGllbnRzLCBQc2J0UmVjaXBpZW50IH0gZnJvbSAnLi9yZWNpcGllbnRzJztcbmltcG9ydCB7IGFzc2VydFNoaWVsZGVkV2FsbGV0QWRkcmVzcyB9IGZyb20gJy4vc2hpZWxkZWRBZGRyZXNzJztcbmltcG9ydCB0eXBlIHsgWmNhc2hDb2luTmFtZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgWmVjIGV4dGVuZHMgQWJzdHJhY3RVdHhvQ29pbiB7XG4gIHJlYWRvbmx5IG5hbWU6IFV0eG9Db2luTmFtZSA9ICd6ZWMnO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UpIHtcbiAgICBzdXBlcihiaXRnbyk7XG4gIH1cblxuICAvKipcbiAgICogWkVDIHNoaWVsZGVkIChPcmNoYXJkL0lyb253b29kKSBjdXN0b2RpYWwgd2FsbGV0cyB1c2UgUmVkUGFsbGFzIHRocmVzaG9sZCBrZXlzLlxuICAgKiBUcmFuc3BhcmVudCAoc2VjcDI1NmsxIG11bHRpc2lnKSBmbG93cyBhcmUgdW5hZmZlY3RlZDogTVBDQWxnb3JpdGhtIGlzIG9ubHlcbiAgICogY29uc3VsdGVkIG9uIHRoZSBUU1MgY3VzdG9kaWFsIHdhbGxldC1jcmVhdGlvbiBwYXRoLlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdyZWRwYWxsYXMnO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBaZWMge1xuICAgIHJldHVybiBuZXcgWmVjKGJpdGdvKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCBhZGRyZXNzQ29kZWMoKTogWmVjQWRkcmVzc0NvZGVjIHtcbiAgICByZXR1cm4gbmV3IFplY0FkZHJlc3NDb2RlYyh0aGlzLm5hbWUsIHRoaXMud2FzbU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNoaWVsZGVkIChPcmNoYXJkL0lyb253b29kKSBhZGRyZXNzZXMgYXJlIHJldHVybmVkIHdpdGggYGNvaW5TcGVjaWZpYy5zaGllbGRlZGAgYW5kXG4gICAqIGNhbm5vdCBiZSBsb2NhbGx5IHJlZGVyaXZlZCBmcm9tIHNlY3AyNTZrMSB4cHVicyAoUmVkUGFsbGFzIGtleWNoYWlucyBjYXJyeSBub25lKSwgc29cbiAgICogdmVyaWZ5IHRoZW0gYWdhaW5zdCB0aGUgcGxhdGZvcm0tcmVwb3J0ZWQgZGl2ZXJzaWZpZXIvcGtEIGluc3RlYWQgb2YgdGhlIGZpeGVkLXNjcmlwdFxuICAgKiB0cmFuc3BhcmVudCBkZXJpdmF0aW9uIHRoZSBiYXNlIGNsYXNzIHBlcmZvcm1zLlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5QWRkcmVzc09wdGlvbnM8VXR4b0NvaW5TcGVjaWZpYz4sIHdhbGxldD86IElXYWxsZXQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAocGFyYW1zLmNvaW5TcGVjaWZpYz8uc2hpZWxkZWQpIHtcbiAgICAgIGFzc2VydFNoaWVsZGVkV2FsbGV0QWRkcmVzcyh0aGlzLm5hbWUsIHBhcmFtcyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmlzV2FsbGV0QWRkcmVzcyhwYXJhbXMsIHdhbGxldCk7XG4gIH1cblxuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHBhcmFtPzogeyBhbnlGb3JtYXQ/OiBib29sZWFuOyBhbGxvd0xpZ2h0bmluZz86IGJvb2xlYW4gfSB8IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzQ29kZWMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cblxuICBwcml2YXRlIGluZmVyVW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UoXG4gICAgcmVjaXBpZW50czogeyBhZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQgfVtdIHwgdW5kZWZpbmVkXG4gICk6IFVuaWZpZWRSZWNpcGllbnRQcmVmZXJlbmNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzaGllbGRlZG5lc3MgPSAocmVjaXBpZW50cyA/PyBbXSkubWFwKChyZWNpcGllbnQpOiBVbmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gcmVjaXBpZW50LmFkZHJlc3M7XG4gICAgICBpZiAoYWRkcmVzcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAndHJhbnNwYXJlbnQnO1xuICAgICAgfVxuICAgICAgaWYgKEFkZHJlc3NDb2RlYy5pc1NjcmlwdFJlY2lwaWVudChhZGRyZXNzKSkge1xuICAgICAgICByZXR1cm4gJ3RyYW5zcGFyZW50JztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc1RyYW5zcGFyZW50UmVjZWl2ZXIgPSB6Y2FzaEFkZHJlc3MuaGFzVHJhbnNwYXJlbnRSZWNlaXZlcihhZGRyZXNzLCB0aGlzLndhc21OYW1lKTtcbiAgICAgIGNvbnN0IGhhc09yY2hhcmRSZWNlaXZlciA9IHpjYXNoQWRkcmVzcy5oYXNPcmNoYXJkUmVjZWl2ZXIoYWRkcmVzcywgdGhpcy53YXNtTmFtZSk7XG4gICAgICByZXR1cm4gaGFzT3JjaGFyZFJlY2VpdmVyICYmICFoYXNUcmFuc3BhcmVudFJlY2VpdmVyXG4gICAgICAgID8gJ3NoaWVsZGVkJ1xuICAgICAgICA6IGhhc1RyYW5zcGFyZW50UmVjZWl2ZXJcbiAgICAgICAgPyAndHJhbnNwYXJlbnQnXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIGlmIChzaGllbGRlZG5lc3MuaW5jbHVkZXMoJ3NoaWVsZGVkJykgJiYgc2hpZWxkZWRuZXNzLmluY2x1ZGVzKCd0cmFuc3BhcmVudCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01peGVkIHNoaWVsZGVkIGFuZCB0cmFuc3BhcmVudCByZWNpcGllbnRzIGFyZSBub3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuICAgIHJldHVybiBzaGllbGRlZG5lc3MuaW5jbHVkZXMoJ3NoaWVsZGVkJykgPyAnc2hpZWxkZWQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFyc2VUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgICBwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4gICk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj4+IHtcbiAgICBjb25zdCBwcmVmZXJlbmNlID1cbiAgICAgIHBhcmFtcy50eFBhcmFtcy51bmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSA/PyB0aGlzLmluZmVyVW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UocGFyYW1zLnR4UGFyYW1zLnJlY2lwaWVudHMpO1xuICAgIHJldHVybiB0aGlzLnBhcnNlVHJhbnNhY3Rpb25XaXRoQWRkcmVzc0NvZGVjKFxuICAgICAgcGFyYW1zLFxuICAgICAgbmV3IFplY0FkZHJlc3NDb2RlYyh0aGlzLm5hbWUsIHRoaXMud2FzbU5hbWUsIHByZWZlcmVuY2UgPz8gJ3RyYW5zcGFyZW50JylcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0RXh0cmFQcmVidWlsZFBhcmFtcyhidWlsZFBhcmFtczogRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMgJiB7IHdhbGxldDogV2FsbGV0IH0pIHtcbiAgICBjb25zdCBleHRyYVBhcmFtcyA9IGF3YWl0IHN1cGVyLmdldEV4dHJhUHJlYnVpbGRQYXJhbXMoYnVpbGRQYXJhbXMpO1xuICAgIGNvbnN0IHsgdW5pZmllZFJlY2lwaWVudFByZWZlcmVuY2UgfSA9IGJ1aWxkUGFyYW1zO1xuICAgIGlmICh1bmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXh0cmFQYXJhbXM7XG4gICAgfVxuICAgIHJldHVybiB7IC4uLmV4dHJhUGFyYW1zLCB1bmlmaWVkUmVjaXBpZW50UHJlZmVyZW5jZSB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgZGVjb2RlVHJhbnNhY3Rpb24oaW5wdXQ6IEJ1ZmZlciB8IHN0cmluZyk6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gICAgY29uc3QgYnVmZmVyID0gdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyA/IHN0cmluZ1RvQnVmZmVyVHJ5Rm9ybWF0cyhpbnB1dCwgWydoZXgnLCAnYmFzZTY0J10pIDogaW5wdXQ7XG4gICAgaWYgKCFoYXNQc2J0TWFnaWMoYnVmZmVyKSkge1xuICAgICAgcmV0dXJuIHN1cGVyLmRlY29kZVRyYW5zYWN0aW9uKGlucHV0KTtcbiAgICB9XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoUHNidC5mcm9tQnl0ZXMoYnVmZmVyLCB0b1dhc21VdHhvQ29pbk5hbWUodGhpcy5uYW1lKSBhcyBaY2FzaENvaW5OYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3V0ZSB2NiAoSXJvbndvb2QpIHByZWJ1aWxkcyB0byB0aGUgSXJvbndvb2Qgc2lnbmluZyBwYXRoIOKAlCBpdHMgYHNpZ25gIG92ZXJyaWRlIHJlcXVpcmVzXG4gICAqIHRoZSB3YWxsZXQgcm9vdCBrZXlzIHRvIGRlcml2ZSB0aGUgb3ZrIG9uIHRoZSB1c2VyJ3MgZmlyc3Qgc2lnbmluZyByb3VuZCDigJQgYW5kIGtlZXAgZXZlcnlcbiAgICogb3RoZXIgcHJlYnVpbGQgKHY0IGFuZCBub24tUFNCVCkgb24gdGhlIGdlbmVyaWMgcGF0aC5cbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHNpZ25UcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgICBwYXJhbXM6IFNpZ25UcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj5cbiAgKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbiB8IEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eFByZWJ1aWxkID0gcGFyYW1zPy50eFByZWJ1aWxkO1xuICAgIGlmICghXy5pc09iamVjdCh0eFByZWJ1aWxkKSkge1xuICAgICAgLy8gRGVmZXIgdG8gdGhlIGJhc2UgcGF0aCBmb3IgaXRzIHN0YW5kYXJkIG1pc3NpbmcvbWFsZm9ybWVkLXByZWJ1aWxkIHZhbGlkYXRpb24gZXJyb3JzLlxuICAgICAgcmV0dXJuIHN1cGVyLnNpZ25UcmFuc2FjdGlvbihwYXJhbXMpO1xuICAgIH1cbiAgICBjb25zdCB0eCA9IHRoaXMuZGVjb2RlVHJhbnNhY3Rpb25Gcm9tUHJlYnVpbGQodHhQcmVidWlsZCk7XG4gICAgaWYgKCEodHggaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaElyb253b29kQml0R29Qc2J0KSkge1xuICAgICAgcmV0dXJuIHN1cGVyLnNpZ25UcmFuc2FjdGlvbihwYXJhbXMpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbklyb253b29kVHJhbnNhY3Rpb24odGhpcywgdHgsIHBhcmFtcyk7XG4gIH1cbiAgcmVzb2x2ZVJlY2lwaWVudHNGcm9tUHNidChpbnB1dDogQnVmZmVyIHwgc3RyaW5nLCB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyk6IFBzYnRSZWNpcGllbnRbXSB7XG4gICAgY29uc3QgcHNidCA9IHRoaXMuZGVjb2RlVHJhbnNhY3Rpb24oaW5wdXQpO1xuICAgIGlmICghKHBzYnQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5aY2FzaEJpdEdvUHNidCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgYSBaY2FzaCBQU0JUJyk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlUHNidFJlY2lwaWVudHMocHNidCwgd2FsbGV0S2V5cywgdGhpcy5hZGRyZXNzQ29kZWMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export * from './abstractUtxoCoin';
|
|
2
|
+
export * from './address';
|
|
3
|
+
export * from './config';
|
|
4
|
+
export * from './names';
|
|
5
|
+
export * from './recovery';
|
|
6
|
+
export * from './transaction/fixedScript/replayProtection';
|
|
7
|
+
export * from './unspent';
|
|
8
|
+
export { UtxoWallet } from './wallet';
|
|
9
|
+
export * as descriptor from './descriptor';
|
|
10
|
+
export * as offlineVault from './offlineVault';
|
|
11
|
+
export * as transaction from './transaction';
|
|
12
|
+
export * as impl from './impl';
|
|
13
|
+
export * from './impl/btc';
|
|
14
|
+
export * from './impl/bch';
|
|
15
|
+
export * from './impl/bcha';
|
|
16
|
+
export * from './impl/bsv';
|
|
17
|
+
export * from './impl/btg';
|
|
18
|
+
export * from './impl/ltc';
|
|
19
|
+
export * from './impl/dash';
|
|
20
|
+
export * from './impl/doge';
|
|
21
|
+
export * from './impl/pearl';
|
|
22
|
+
export * from './impl/zec';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,4CAA4C,CAAC;AAC3D,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAG/B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export * from './abstractUtxoCoin';
|
|
2
|
+
export * from './address';
|
|
3
|
+
export * from './config';
|
|
4
|
+
export * from './names';
|
|
5
|
+
export * from './recovery';
|
|
6
|
+
export * from './transaction/fixedScript/replayProtection';
|
|
7
|
+
export * from './unspent';
|
|
8
|
+
export * as descriptor from './descriptor';
|
|
9
|
+
export * as offlineVault from './offlineVault';
|
|
10
|
+
export * as transaction from './transaction';
|
|
11
|
+
export * as impl from './impl';
|
|
12
|
+
// Export all coin implementations
|
|
13
|
+
export * from './impl/btc';
|
|
14
|
+
export * from './impl/bch';
|
|
15
|
+
export * from './impl/bcha';
|
|
16
|
+
export * from './impl/bsv';
|
|
17
|
+
export * from './impl/btg';
|
|
18
|
+
export * from './impl/ltc';
|
|
19
|
+
export * from './impl/dash';
|
|
20
|
+
export * from './impl/doge';
|
|
21
|
+
export * from './impl/pearl';
|
|
22
|
+
export * from './impl/zec';
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsV0FBVyxDQUFDO0FBRzFCLE9BQU8sS0FBSyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sS0FBSyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLElBQUksTUFBTSxRQUFRLENBQUM7QUFFL0Isa0NBQWtDO0FBQ2xDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdFV0eG9Db2luJztcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL25hbWVzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjb3ZlcnknO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9yZXBsYXlQcm90ZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdW5zcGVudCc7XG5cbmV4cG9ydCB7IFV0eG9XYWxsZXQgfSBmcm9tICcuL3dhbGxldCc7XG5leHBvcnQgKiBhcyBkZXNjcmlwdG9yIGZyb20gJy4vZGVzY3JpcHRvcic7XG5leHBvcnQgKiBhcyBvZmZsaW5lVmF1bHQgZnJvbSAnLi9vZmZsaW5lVmF1bHQnO1xuZXhwb3J0ICogYXMgdHJhbnNhY3Rpb24gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBhcyBpbXBsIGZyb20gJy4vaW1wbCc7XG5cbi8vIEV4cG9ydCBhbGwgY29pbiBpbXBsZW1lbnRhdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vaW1wbC9idGMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbXBsL2JjaCc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvYmNoYSc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvYnN2JztcbmV4cG9ydCAqIGZyb20gJy4vaW1wbC9idGcnO1xuZXhwb3J0ICogZnJvbSAnLi9pbXBsL2x0Yyc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvZGFzaCc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvZG9nZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltcGwvcGVhcmwnO1xuZXhwb3J0ICogZnJvbSAnLi9pbXBsL3plYyc7XG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as t from 'io-ts';
|
|
2
|
+
import { IRequestTracer, IWallet, Triple } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { BIP32, bip32, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
4
|
+
import { AbstractUtxoCoin } from './abstractUtxoCoin';
|
|
5
|
+
import { UtxoWallet } from './wallet';
|
|
6
|
+
/**
|
|
7
|
+
* A keychain for a UTXO wallet.
|
|
8
|
+
*/
|
|
9
|
+
export declare const UtxoKeychain: t.IntersectionC<[t.TypeC<{
|
|
10
|
+
pub: t.StringC;
|
|
11
|
+
}>, t.PartialC<{
|
|
12
|
+
prv: t.StringC;
|
|
13
|
+
encryptedPrv: t.StringC;
|
|
14
|
+
}>]>;
|
|
15
|
+
export type UtxoKeychain = t.TypeOf<typeof UtxoKeychain>;
|
|
16
|
+
export declare const UtxoNamedKeychains: t.TypeC<{
|
|
17
|
+
user: t.IntersectionC<[t.TypeC<{
|
|
18
|
+
pub: t.StringC;
|
|
19
|
+
}>, t.PartialC<{
|
|
20
|
+
prv: t.StringC;
|
|
21
|
+
encryptedPrv: t.StringC;
|
|
22
|
+
}>]>;
|
|
23
|
+
backup: t.IntersectionC<[t.TypeC<{
|
|
24
|
+
pub: t.StringC;
|
|
25
|
+
}>, t.PartialC<{
|
|
26
|
+
prv: t.StringC;
|
|
27
|
+
encryptedPrv: t.StringC;
|
|
28
|
+
}>]>;
|
|
29
|
+
bitgo: t.IntersectionC<[t.TypeC<{
|
|
30
|
+
pub: t.StringC;
|
|
31
|
+
}>, t.PartialC<{
|
|
32
|
+
prv: t.StringC;
|
|
33
|
+
encryptedPrv: t.StringC;
|
|
34
|
+
}>]>;
|
|
35
|
+
}>;
|
|
36
|
+
export type UtxoNamedKeychains = t.TypeOf<typeof UtxoNamedKeychains>;
|
|
37
|
+
export declare function toKeychainTriple(keychains: UtxoNamedKeychains): Triple<UtxoKeychain>;
|
|
38
|
+
export declare function toBip32Triple(keychains: fixedScriptWallet.RootWalletKeys | UtxoNamedKeychains | Triple<{
|
|
39
|
+
pub: string;
|
|
40
|
+
}> | string[]): Triple<BIP32>;
|
|
41
|
+
export declare function toXpubTriple(keychains: UtxoNamedKeychains | Triple<{
|
|
42
|
+
pub: string;
|
|
43
|
+
}> | Triple<string> | Triple<bip32.BIP32Interface>): Triple<string>;
|
|
44
|
+
export declare function fetchKeychains(coin: AbstractUtxoCoin, wallet: IWallet, reqId?: IRequestTracer): Promise<UtxoNamedKeychains>;
|
|
45
|
+
/**
|
|
46
|
+
* Fetch wallet keys as wasm-utxo RootWalletKeys
|
|
47
|
+
*/
|
|
48
|
+
export declare function fetchWasmRootWalletKeys(coin: AbstractUtxoCoin, wallet: IWallet, reqId?: IRequestTracer): Promise<fixedScriptWallet.RootWalletKeys>;
|
|
49
|
+
export declare const KeySignatures: t.PartialC<{
|
|
50
|
+
backupPub: t.StringC;
|
|
51
|
+
bitgoPub: t.StringC;
|
|
52
|
+
}>;
|
|
53
|
+
export type KeySignatures = t.TypeOf<typeof KeySignatures>;
|
|
54
|
+
export declare function getKeySignatures(wallet: UtxoWallet): KeySignatures | undefined;
|
|
55
|
+
//# sourceMappingURL=keychains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../src/keychains.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,OAAO,EAA4B,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtC;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;IAWxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;EAI7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAErE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC,CAGpF;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,GAAG,kBAAkB,GAAG,MAAM,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,GACpG,MAAM,CAAC,KAAK,CAAC,CAef;AAkBD,wBAAgB,YAAY,CAC1B,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GACtG,MAAM,CAAC,MAAM,CAAC,CAQhB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAQ7B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAG3C;AAED,eAAO,MAAM,aAAa;;;EAGxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAE3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAK9E"}
|