@bitgo/abstract-utxo 10.16.0 → 10.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/abstractUtxoCoin.d.ts +9 -13
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +28 -14
- package/dist/cjs/src/address/fixedScript.d.ts +4 -9
- package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
- package/dist/cjs/src/address/fixedScript.js +18 -50
- package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +4 -5
- package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/NamedDescriptor.js +4 -6
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +3 -38
- package/dist/cjs/src/descriptor/builder/builder.d.ts +2 -3
- package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/builder/builder.js +1 -1
- package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/builder/parse.js +3 -3
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +2 -2
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +1 -1
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts +1 -1
- package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/descriptorWallet.js +1 -1
- package/dist/cjs/src/descriptor/index.d.ts +1 -1
- package/dist/cjs/src/descriptor/index.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/index.js +1 -1
- package/dist/cjs/src/descriptor/validatePolicy.d.ts +3 -3
- package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/validatePolicy.js +3 -3
- package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -1
- package/dist/cjs/src/impl/bch/bch.js +6 -38
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +15 -5
- package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
- package/dist/cjs/src/impl/btc/inscriptionBuilder.js +43 -55
- package/dist/cjs/src/impl/doge/doge.d.ts +2 -1
- package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -1
- package/dist/cjs/src/impl/doge/doge.js +1 -1
- package/dist/cjs/src/impl/ltc/ltc.d.ts +0 -1
- package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -1
- package/dist/cjs/src/impl/ltc/ltc.js +3 -41
- package/dist/cjs/src/impl/ltc/tltc.d.ts +0 -1
- package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -1
- package/dist/cjs/src/impl/ltc/tltc.js +3 -40
- package/dist/cjs/src/index.d.ts +2 -0
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +3 -1
- package/dist/cjs/src/keychains.d.ts +5 -0
- package/dist/cjs/src/keychains.d.ts.map +1 -1
- package/dist/cjs/src/keychains.js +10 -1
- package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +2 -2
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +3 -2
- package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/cjs/src/offlineVault/descriptor/transaction.js +5 -8
- package/dist/cjs/src/recovery/RecoveryProvider.d.ts +1 -3
- package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -1
- package/dist/cjs/src/recovery/RecoveryProvider.js +1 -1
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +73 -4
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/backupKeyRecovery.js +163 -129
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts +5 -5
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/crossChainRecovery.js +22 -121
- package/dist/cjs/src/recovery/psbt.d.ts +8 -31
- package/dist/cjs/src/recovery/psbt.d.ts.map +1 -1
- package/dist/cjs/src/recovery/psbt.js +14 -126
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +3 -3
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/explainPsbt.js +17 -54
- package/dist/cjs/src/transaction/descriptor/index.d.ts +1 -1
- package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/index.js +1 -1
- package/dist/cjs/src/transaction/descriptor/parse.d.ts +6 -4
- package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/parse.js +24 -50
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +6 -7
- package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/signPsbt.js +19 -18
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +4 -4
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +10 -38
- package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/explainTransaction.js +3 -2
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +5 -3
- package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/SigningError.js +10 -2
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +1 -8
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseOutput.js +8 -12
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +2 -2
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +36 -11
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +4 -2
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +15 -25
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +6 -5
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +42 -7
- package/dist/cjs/src/transaction/outputDifference.d.ts +5 -1
- package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -1
- package/dist/cjs/src/transaction/outputDifference.js +6 -2
- package/dist/cjs/src/transaction/recipient.d.ts +5 -0
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
- package/dist/cjs/src/transaction/recipient.js +14 -1
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/signTransaction.js +10 -10
- package/dist/cjs/src/unspent.d.ts +55 -0
- package/dist/cjs/src/unspent.d.ts.map +1 -0
- package/dist/cjs/src/unspent.js +12 -0
- package/dist/cjs/src/wasmUtil.d.ts +29 -0
- package/dist/cjs/src/wasmUtil.d.ts.map +1 -0
- package/dist/cjs/src/wasmUtil.js +87 -0
- package/dist/cjs/test/unit/address.d.ts +1 -1
- package/dist/cjs/test/unit/address.d.ts.map +1 -1
- package/dist/cjs/test/unit/address.js +107 -137
- package/dist/cjs/test/unit/bip322.js +50 -1
- package/dist/cjs/test/unit/coins.js +7 -2
- package/dist/cjs/test/unit/customSigner.js +5 -4
- package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +37 -4
- package/dist/cjs/test/unit/descriptor/builder.js +10 -4
- package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +37 -4
- package/dist/cjs/test/unit/descriptor/descriptorWallet.js +40 -6
- package/dist/cjs/test/unit/descriptorAddress.d.ts +2 -2
- package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -1
- package/dist/cjs/test/unit/descriptorAddress.js +10 -9
- package/dist/cjs/test/unit/explainTransaction.js +26 -3
- package/dist/cjs/test/unit/keychains.js +40 -1
- 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 +62 -0
- package/dist/cjs/test/unit/prebuildAndSign.d.ts +0 -4
- package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -1
- package/dist/cjs/test/unit/prebuildAndSign.js +12 -31
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +82 -258
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +144 -0
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +41 -37
- 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 +186 -0
- package/dist/cjs/test/unit/recovery/mock.d.ts +15 -8
- package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -1
- package/dist/cjs/test/unit/recovery/mock.js +50 -77
- 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 +244 -0
- package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
- package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +46 -12
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -1
- package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +38 -4
- package/dist/cjs/test/unit/transaction/descriptor/parse.js +22 -19
- package/dist/cjs/test/unit/transaction/descriptor/sign.js +60 -16
- package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +43 -10
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -2
- 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.js +8 -226
- package/dist/cjs/test/unit/txFormat.d.ts.map +1 -1
- package/dist/cjs/test/unit/txFormat.js +9 -9
- package/dist/cjs/test/unit/util/address.d.ts +13 -0
- package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/util/address.js +15 -0
- package/dist/cjs/test/unit/util/index.d.ts +3 -0
- package/dist/cjs/test/unit/util/index.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/index.js +4 -1
- package/dist/cjs/test/unit/util/keychains.d.ts +29 -0
- package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/keychains.js +51 -1
- package/dist/cjs/test/unit/util/nockBitGo.d.ts +8 -1
- package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/nockBitGo.js +17 -1
- package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/nockIndexerAPI.js +4 -37
- 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 +8 -4
- package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/transaction.js +22 -2
- package/dist/cjs/test/unit/util/unspents.d.ts +66 -8
- package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/unspents.js +130 -15
- package/dist/cjs/test/unit/util/utxoCoins.d.ts +13 -0
- package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/utxoCoins.js +33 -2
- package/dist/cjs/test/unit/wallet.js +4 -4
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts +9 -13
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +30 -16
- package/dist/esm/address/fixedScript.d.ts +4 -9
- package/dist/esm/address/fixedScript.d.ts.map +1 -1
- package/dist/esm/address/fixedScript.js +18 -17
- package/dist/esm/descriptor/NamedDescriptor.d.ts +4 -5
- package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -1
- package/dist/esm/descriptor/NamedDescriptor.js +5 -7
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
- package/dist/esm/descriptor/assertDescriptorWalletAddress.js +3 -5
- package/dist/esm/descriptor/builder/builder.d.ts +2 -3
- package/dist/esm/descriptor/builder/builder.d.ts.map +1 -1
- package/dist/esm/descriptor/builder/builder.js +1 -1
- package/dist/esm/descriptor/builder/parse.d.ts.map +1 -1
- package/dist/esm/descriptor/builder/parse.js +3 -3
- package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +2 -2
- package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
- package/dist/esm/descriptor/createWallet/createDescriptors.js +1 -1
- package/dist/esm/descriptor/descriptorWallet.d.ts +1 -1
- package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -1
- package/dist/esm/descriptor/descriptorWallet.js +1 -1
- package/dist/esm/descriptor/index.d.ts +1 -1
- package/dist/esm/descriptor/index.d.ts.map +1 -1
- package/dist/esm/descriptor/index.js +1 -1
- package/dist/esm/descriptor/validatePolicy.d.ts +3 -3
- package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -1
- package/dist/esm/descriptor/validatePolicy.js +3 -3
- package/dist/esm/impl/bch/bch.d.ts.map +1 -1
- package/dist/esm/impl/bch/bch.js +6 -5
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts +15 -5
- package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
- package/dist/esm/impl/btc/inscriptionBuilder.js +44 -23
- package/dist/esm/impl/doge/doge.d.ts +2 -1
- package/dist/esm/impl/doge/doge.d.ts.map +1 -1
- package/dist/esm/impl/doge/doge.js +1 -1
- package/dist/esm/impl/ltc/ltc.d.ts +0 -1
- package/dist/esm/impl/ltc/ltc.d.ts.map +1 -1
- package/dist/esm/impl/ltc/ltc.js +3 -8
- package/dist/esm/impl/ltc/tltc.d.ts +0 -1
- package/dist/esm/impl/ltc/tltc.d.ts.map +1 -1
- package/dist/esm/impl/ltc/tltc.js +3 -7
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/keychains.d.ts +5 -0
- package/dist/esm/keychains.d.ts.map +1 -1
- package/dist/esm/keychains.js +9 -1
- package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +2 -2
- package/dist/esm/offlineVault/descriptor/transaction.d.ts +3 -2
- package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
- package/dist/esm/offlineVault/descriptor/transaction.js +5 -8
- package/dist/esm/recovery/RecoveryProvider.d.ts +1 -3
- package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -1
- package/dist/esm/recovery/RecoveryProvider.js +1 -1
- package/dist/esm/recovery/backupKeyRecovery.d.ts +73 -4
- package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/backupKeyRecovery.js +165 -100
- package/dist/esm/recovery/crossChainRecovery.d.ts +5 -5
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/crossChainRecovery.js +24 -90
- package/dist/esm/recovery/psbt.d.ts +8 -31
- package/dist/esm/recovery/psbt.d.ts.map +1 -1
- package/dist/esm/recovery/psbt.js +14 -91
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts +3 -3
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/explainPsbt.js +14 -18
- package/dist/esm/transaction/descriptor/index.d.ts +1 -1
- package/dist/esm/transaction/descriptor/index.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/index.js +1 -1
- package/dist/esm/transaction/descriptor/parse.d.ts +6 -4
- package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/parse.js +22 -15
- package/dist/esm/transaction/descriptor/signPsbt.d.ts +6 -7
- package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/signPsbt.js +19 -18
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +4 -4
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/verifyTransaction.js +10 -5
- package/dist/esm/transaction/explainTransaction.d.ts +2 -1
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/explainTransaction.js +3 -2
- package/dist/esm/transaction/fixedScript/SigningError.d.ts +5 -3
- package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/SigningError.js +8 -1
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +2 -1
- package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainTransaction.js +1 -8
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseOutput.js +8 -12
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +2 -2
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.js +36 -11
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +4 -2
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +14 -24
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +6 -5
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +10 -8
- package/dist/esm/transaction/outputDifference.d.ts +5 -1
- package/dist/esm/transaction/outputDifference.d.ts.map +1 -1
- package/dist/esm/transaction/outputDifference.js +5 -2
- package/dist/esm/transaction/recipient.d.ts +5 -0
- package/dist/esm/transaction/recipient.d.ts.map +1 -1
- package/dist/esm/transaction/recipient.js +13 -1
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/signTransaction.js +10 -10
- package/dist/esm/unspent.d.ts +55 -0
- package/dist/esm/unspent.d.ts.map +1 -0
- package/dist/esm/unspent.js +8 -0
- package/dist/esm/wasmUtil.d.ts +29 -0
- package/dist/esm/wasmUtil.d.ts.map +1 -0
- package/dist/esm/wasmUtil.js +47 -0
- package/package.json +13 -14
- package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts +0 -2
- package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts.map +0 -1
- package/dist/cjs/test/unit/impl/btc/unit/btc.js +0 -220
- package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts +0 -4
- package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts.map +0 -1
- package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.js +0 -10
- package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts +0 -2
- package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts.map +0 -1
- package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.js +0 -18
- package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts +0 -2
- package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts.map +0 -1
- package/dist/cjs/test/unit/impl/ltc/unit/index.js +0 -39
- package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts.map +0 -1
- package/dist/cjs/test/unit/transaction/descriptor/outputDifference.js +0 -76
- /package/dist/cjs/test/unit/transaction/{descriptor/outputDifference.d.ts → outputDifference.d.ts} +0 -0
|
@@ -37,9 +37,9 @@ exports.getWalletConfigurations = getWalletConfigurations;
|
|
|
37
37
|
exports.createMockWallet = createMockWallet;
|
|
38
38
|
exports.getTxFormat = getTxFormat;
|
|
39
39
|
const assert = __importStar(require("assert"));
|
|
40
|
-
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
41
40
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
42
41
|
const src_1 = require("../../src");
|
|
42
|
+
const names_1 = require("../../src/names");
|
|
43
43
|
const util_1 = require("./util");
|
|
44
44
|
/**
|
|
45
45
|
* Enumerates common wallet configurations for testing
|
|
@@ -105,34 +105,34 @@ describe('txFormat', function () {
|
|
|
105
105
|
// All testnet wallets default to PSBT-lite
|
|
106
106
|
runTest({
|
|
107
107
|
description: 'should always return psbt-lite for testnet',
|
|
108
|
-
coinFilter: (coin) =>
|
|
108
|
+
coinFilter: (coin) => (0, names_1.isTestnetCoin)(coin.name),
|
|
109
109
|
expectedTxFormat: 'psbt-lite',
|
|
110
110
|
});
|
|
111
111
|
// DistributedCustody wallets default to PSBT (mainnet only, testnet already covered)
|
|
112
112
|
runTest({
|
|
113
113
|
description: 'should return psbt for distributedCustody wallets on mainnet',
|
|
114
|
-
coinFilter: (coin) =>
|
|
114
|
+
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
115
115
|
walletFilter: (w) => w.options.subType === 'distributedCustody',
|
|
116
116
|
expectedTxFormat: 'psbt',
|
|
117
117
|
});
|
|
118
118
|
// MuSig2 wallets default to PSBT (mainnet only, testnet already covered)
|
|
119
119
|
runTest({
|
|
120
120
|
description: 'should return psbt for wallets with musigKp flag on mainnet',
|
|
121
|
-
coinFilter: (coin) =>
|
|
121
|
+
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
122
122
|
walletFilter: (w) => Boolean(w.options.walletFlags?.some((f) => f.name === 'musigKp' && f.value === 'true')),
|
|
123
123
|
expectedTxFormat: 'psbt',
|
|
124
124
|
});
|
|
125
125
|
// Mainnet Bitcoin hot wallets default to PSBT
|
|
126
126
|
runTest({
|
|
127
127
|
description: 'should return psbt for mainnet bitcoin hot wallets',
|
|
128
|
-
coinFilter: (coin) =>
|
|
128
|
+
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name) && (0, names_1.getMainnetCoinName)(coin.name) === 'btc',
|
|
129
129
|
walletFilter: (w) => w.options.type === 'hot',
|
|
130
130
|
expectedTxFormat: 'psbt',
|
|
131
131
|
});
|
|
132
132
|
// Other mainnet wallets do NOT default to PSBT
|
|
133
133
|
runTest({
|
|
134
134
|
description: 'should return undefined for other mainnet wallets',
|
|
135
|
-
coinFilter: (coin) =>
|
|
135
|
+
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
136
136
|
walletFilter: (w) => {
|
|
137
137
|
const isHotBitcoin = w.options.type === 'hot'; // This will be bitcoin hot wallets
|
|
138
138
|
const isDistributedCustody = w.options.subType === 'distributedCustody';
|
|
@@ -145,7 +145,7 @@ describe('txFormat', function () {
|
|
|
145
145
|
// Test explicitly requested formats
|
|
146
146
|
runTest({
|
|
147
147
|
description: 'should respect explicitly requested legacy format on mainnet',
|
|
148
|
-
coinFilter: (coin) =>
|
|
148
|
+
coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
|
|
149
149
|
expectedTxFormat: 'legacy',
|
|
150
150
|
requestedTxFormat: 'legacy',
|
|
151
151
|
});
|
|
@@ -162,7 +162,7 @@ describe('txFormat', function () {
|
|
|
162
162
|
// Test that legacy format is prohibited on testnet
|
|
163
163
|
it('should throw ErrorDeprecatedTxFormat when legacy format is requested on testnet', function () {
|
|
164
164
|
for (const coin of util_1.utxoCoins) {
|
|
165
|
-
if (!
|
|
165
|
+
if (!(0, names_1.isTestnetCoin)(coin.name)) {
|
|
166
166
|
continue;
|
|
167
167
|
}
|
|
168
168
|
const wallet = createMockWallet(coin, { type: 'hot' });
|
|
@@ -171,4 +171,4 @@ describe('txFormat', function () {
|
|
|
171
171
|
});
|
|
172
172
|
});
|
|
173
173
|
});
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhGb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHhGb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsMERBU0M7QUFLRCw0Q0FTQztBQUtELGtDQUVDO0FBcERELCtDQUFpQztBQUVqQyx5REFBMkM7QUFDM0MsOENBQXlDO0FBRXpDLG1DQUFnRjtBQUVoRixpQ0FBaUQ7QUFZakQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUI7SUFDckMsT0FBTztRQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtRQUMvRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hHLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDNUcsQ0FB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QUFXO1NBQy9CLENBQUMsQ0FBQztRQUVILG1EQUFtRDtRQUNuRCxFQUFFLENBQUMsaUZBQWlGLEVBQUU7WUFDcEYsS0FBSyxNQUFNLElBQUksSUFBSSxnQkFBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQ3pDLDZCQUF1QixFQUN2Qix3Q0FBd0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzFELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0LCBUeEZvcm1hdCB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IHV0eG9Db2lucywgZGVmYXVsdEJpdEdvIH0gZnJvbSAnLi91dGlsJztcblxudHlwZSBXYWxsZXRUeXBlID0gJ2hvdCcgfCAnY29sZCcgfCAnY3VzdG9kaWFsJyB8ICdjdXN0b2RpYWxQYWlyZWQnIHwgJ3RyYWRpbmcnO1xudHlwZSBXYWxsZXRTdWJUeXBlID0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keSc7XG50eXBlIFdhbGxldEZsYWcgPSB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xuXG50eXBlIFdhbGxldE9wdGlvbnMgPSB7XG4gIHR5cGU/OiBXYWxsZXRUeXBlO1xuICBzdWJUeXBlPzogV2FsbGV0U3ViVHlwZTtcbiAgd2FsbGV0RmxhZ3M/OiBXYWxsZXRGbGFnW107XG59O1xuXG4vKipcbiAqIEVudW1lcmF0ZXMgY29tbW9uIHdhbGxldCBjb25maWd1cmF0aW9ucyBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0Q29uZmlndXJhdGlvbnMoKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgfT4ge1xuICByZXR1cm4gW1xuICAgIHsgbmFtZTogJ2hvdCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdob3QnIH0gfSxcbiAgICB7IG5hbWU6ICdjb2xkIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnIH0gfSxcbiAgICB7IG5hbWU6ICdjdXN0b2RpYWwgd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnY3VzdG9kaWFsJyB9IH0sXG4gICAgeyBuYW1lOiAnZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnLCBzdWJUeXBlOiAnZGlzdHJpYnV0ZWRDdXN0b2R5JyB9IH0sXG4gICAgeyBuYW1lOiAnbXVzaWdLcCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gICAgeyBuYW1lOiAnaG90IG11c2lnS3Agd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnaG90Jywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gIF07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1vY2sgd2FsbGV0IGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgPSB7fSk6IFdhbGxldCB7XG4gIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgaWQ6ICc1YjM0MjUyZjFiZjM0OTkzMGUzNDAyMGEnLFxuICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB0eXBlOiBvcHRpb25zLnR5cGUgfHwgJ2hvdCcsXG4gICAgLi4uKG9wdGlvbnMuc3ViVHlwZSAmJiB7IHN1YlR5cGU6IG9wdGlvbnMuc3ViVHlwZSB9KSxcbiAgICAuLi4ob3B0aW9ucy53YWxsZXRGbGFncyAmJiB7IHdhbGxldEZsYWdzOiBvcHRpb25zLndhbGxldEZsYWdzIH0pLFxuICB9O1xuICByZXR1cm4gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldERhdGEpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHR4Rm9ybWF0IGZyb20gYSBjb2luJ3MgZ2V0RGVmYXVsdFR4Rm9ybWF0IG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhGb3JtYXQoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0OiBXYWxsZXQsIHJlcXVlc3RlZEZvcm1hdD86IFR4Rm9ybWF0KTogVHhGb3JtYXQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0LCByZXF1ZXN0ZWRGb3JtYXQpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBydW4gYSB0eEZvcm1hdCB0ZXN0IHdpdGggbmFtZWQgYXJndW1lbnRzLlxuICogQnkgZGVmYXVsdCwgaXRlcmF0ZXMgb3ZlciBhbGwgd2FsbGV0IGNvbmZpZ3VyYXRpb25zIGFuZCBhbGwgY29pbnMuXG4gKi9cbmZ1bmN0aW9uIHJ1blRlc3QocGFyYW1zOiB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGV4cGVjdGVkVHhGb3JtYXQ6XG4gICAgfCBUeEZvcm1hdFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldENvbmZpZzogV2FsbGV0T3B0aW9ucykgPT4gVHhGb3JtYXQgfCB1bmRlZmluZWQpO1xuICBjb2luRmlsdGVyPzogKGNvaW46IEFic3RyYWN0VXR4b0NvaW4pID0+IGJvb2xlYW47XG4gIHdhbGxldEZpbHRlcj86ICh3YWxsZXRDb25maWc6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zOiBXYWxsZXRPcHRpb25zIH0pID0+IGJvb2xlYW47XG4gIHJlcXVlc3RlZFR4Rm9ybWF0PzogVHhGb3JtYXQ7XG59KTogdm9pZCB7XG4gIGl0KHBhcmFtcy5kZXNjcmlwdGlvbiwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldENvbmZpZ3MgPSBnZXRXYWxsZXRDb25maWd1cmF0aW9ucygpO1xuXG4gICAgZm9yIChjb25zdCB3YWxsZXRDb25maWcgb2Ygd2FsbGV0Q29uZmlncykge1xuICAgICAgLy8gU2tpcCB3YWxsZXQgY29uZmlndXJhdGlvbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICBpZiAocGFyYW1zLndhbGxldEZpbHRlciAmJiAhcGFyYW1zLndhbGxldEZpbHRlcih3YWxsZXRDb25maWcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zKSB7XG4gICAgICAgIC8vIFNraXAgY29pbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICAgIGlmIChwYXJhbXMuY29pbkZpbHRlciAmJiAhcGFyYW1zLmNvaW5GaWx0ZXIoY29pbikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdhbGxldCA9IGNyZWF0ZU1vY2tXYWxsZXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0eEZvcm1hdCA9IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgcGFyYW1zLnJlcXVlc3RlZFR4Rm9ybWF0KTtcblxuICAgICAgICBjb25zdCBleHBlY3RlZFR4Rm9ybWF0ID1cbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpXG4gICAgICAgICAgICA6IHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0O1xuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICB0eEZvcm1hdCxcbiAgICAgICAgICBleHBlY3RlZFR4Rm9ybWF0LFxuICAgICAgICAgIGAke3BhcmFtcy5kZXNjcmlwdGlvbn0gLSAke1xuICAgICAgICAgICAgd2FsbGV0Q29uZmlnLm5hbWVcbiAgICAgICAgICB9IC0gJHtjb2luLmdldENoYWluKCl9OiBleHBlY3RlZCAke2V4cGVjdGVkVHhGb3JtYXR9LCBnb3QgJHt0eEZvcm1hdH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZGVzY3JpYmUoJ3R4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0RGVmYXVsdFR4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIEFsbCB0ZXN0bmV0IHdhbGxldHMgZGVmYXVsdCB0byBQU0JULWxpdGVcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIGFsd2F5cyByZXR1cm4gcHNidC1saXRlIGZvciB0ZXN0bmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiB1dHhvbGliLmlzVGVzdG5ldChjb2luLm5ldHdvcmspLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgfSk7XG5cbiAgICAvLyBEaXN0cmlidXRlZEN1c3RvZHkgd2FsbGV0cyBkZWZhdWx0IHRvIFBTQlQgKG1haW5uZXQgb25seSwgdGVzdG5ldCBhbHJlYWR5IGNvdmVyZWQpXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldHMgb24gbWFpbm5ldCcsXG4gICAgICBjb2luRmlsdGVyOiAoY29pbikgPT4gdXR4b2xpYi5pc01haW5uZXQoY29pbi5uZXR3b3JrKSxcbiAgICAgIHdhbGxldEZpbHRlcjogKHcpID0+IHcub3B0aW9ucy5zdWJUeXBlID09PSAnZGlzdHJpYnV0ZWRDdXN0b2R5JyxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdwc2J0JyxcbiAgICB9KTtcblxuICAgIC8vIE11U2lnMiB3YWxsZXRzIGRlZmF1bHQgdG8gUFNCVCAobWFpbm5ldCBvbmx5LCB0ZXN0bmV0IGFscmVhZHkgY292ZXJlZClcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiBwc2J0IGZvciB3YWxsZXRzIHdpdGggbXVzaWdLcCBmbGFnIG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IHV0eG9saWIuaXNNYWlubmV0KGNvaW4ubmV0d29yayksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiBCb29sZWFuKHcub3B0aW9ucy53YWxsZXRGbGFncz8uc29tZSgoZikgPT4gZi5uYW1lID09PSAnbXVzaWdLcCcgJiYgZi52YWx1ZSA9PT0gJ3RydWUnKSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNYWlubmV0IEJpdGNvaW4gaG90IHdhbGxldHMgZGVmYXVsdCB0byBQU0JUXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgbWFpbm5ldCBiaXRjb2luIGhvdCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PlxuICAgICAgICB1dHhvbGliLmlzTWFpbm5ldChjb2luLm5ldHdvcmspICYmIHV0eG9saWIuZ2V0TWFpbm5ldChjb2luLm5ldHdvcmspID09PSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBPdGhlciBtYWlubmV0IHdhbGxldHMgZG8gTk9UIGRlZmF1bHQgdG8gUFNCVFxuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBmb3Igb3RoZXIgbWFpbm5ldCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiB1dHhvbGliLmlzTWFpbm5ldChjb2luLm5ldHdvcmspLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4ge1xuICAgICAgICBjb25zdCBpc0hvdEJpdGNvaW4gPSB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCc7IC8vIFRoaXMgd2lsbCBiZSBiaXRjb2luIGhvdCB3YWxsZXRzXG4gICAgICAgIGNvbnN0IGlzRGlzdHJpYnV0ZWRDdXN0b2R5ID0gdy5vcHRpb25zLnN1YlR5cGUgPT09ICdkaXN0cmlidXRlZEN1c3RvZHknO1xuICAgICAgICBjb25zdCBoYXNNdXNpZ0twRmxhZyA9IEJvb2xlYW4ody5vcHRpb25zLndhbGxldEZsYWdzPy5zb21lKChmKSA9PiBmLm5hbWUgPT09ICdtdXNpZ0twJyAmJiBmLnZhbHVlID09PSAndHJ1ZScpKTtcbiAgICAgICAgLy8gT25seSB0ZXN0IFwib3RoZXJcIiB3YWxsZXRzIC0gZXhjbHVkZSB0aGUgc3BlY2lhbCBjYXNlc1xuICAgICAgICByZXR1cm4gIWlzSG90Qml0Y29pbiAmJiAhaXNEaXN0cmlidXRlZEN1c3RvZHkgJiYgIWhhc011c2lnS3BGbGFnO1xuICAgICAgfSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgZm9ybWF0c1xuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBsZWdhY3kgZm9ybWF0IG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IHV0eG9saWIuaXNNYWlubmV0KGNvaW4ubmV0d29yayksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAnbGVnYWN5JyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAnbGVnYWN5JyxcbiAgICB9KTtcblxuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBwc2J0IGZvcm1hdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgICByZXF1ZXN0ZWRUeEZvcm1hdDogJ3BzYnQnLFxuICAgIH0pO1xuXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXNwZWN0IGV4cGxpY2l0bHkgcmVxdWVzdGVkIHBzYnQtbGl0ZSBmb3JtYXQnLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgICByZXF1ZXN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgfSk7XG5cbiAgICAvLyBUZXN0IHRoYXQgbGVnYWN5IGZvcm1hdCBpcyBwcm9oaWJpdGVkIG9uIHRlc3RuZXRcbiAgICBpdCgnc2hvdWxkIHRocm93IEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0IHdoZW4gbGVnYWN5IGZvcm1hdCBpcyByZXF1ZXN0ZWQgb24gdGVzdG5ldCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAoY29uc3QgY29pbiBvZiB1dHhvQ29pbnMpIHtcbiAgICAgICAgaWYgKCF1dHhvbGliLmlzVGVzdG5ldChjb2luLm5ldHdvcmspKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3YWxsZXQgPSBjcmVhdGVNb2NrV2FsbGV0KGNvaW4sIHsgdHlwZTogJ2hvdCcgfSk7XG4gICAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICAgKCkgPT4gZ2V0VHhGb3JtYXQoY29pbiwgd2FsbGV0LCAnbGVnYWN5JyksXG4gICAgICAgICAgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQsXG4gICAgICAgICAgYEV4cGVjdGVkIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0IGZvciAke2NvaW4uZ2V0Q2hhaW4oKX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhGb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHhGb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsMERBU0M7QUFLRCw0Q0FTQztBQUtELGtDQUVDO0FBcERELCtDQUFpQztBQUVqQyw4Q0FBeUM7QUFFekMsbUNBQWdGO0FBQ2hGLDJDQUFtRjtBQUVuRixpQ0FBaUQ7QUFZakQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUI7SUFDckMsT0FBTztRQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtRQUMvRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hHLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDNUcsQ0FB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aUZBQWlGLEVBQUU7WUFDcEYsS0FBSyxNQUFNLElBQUksSUFBSSxnQkFBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzlCLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDekMsNkJBQXVCLEVBQ3ZCLHdDQUF3QyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDMUQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQsIFR4Rm9ybWF0IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGdldE1haW5uZXRDb2luTmFtZSwgaXNNYWlubmV0Q29pbiwgaXNUZXN0bmV0Q29pbiB9IGZyb20gJy4uLy4uL3NyYy9uYW1lcyc7XG5cbmltcG9ydCB7IHV0eG9Db2lucywgZGVmYXVsdEJpdEdvIH0gZnJvbSAnLi91dGlsJztcblxudHlwZSBXYWxsZXRUeXBlID0gJ2hvdCcgfCAnY29sZCcgfCAnY3VzdG9kaWFsJyB8ICdjdXN0b2RpYWxQYWlyZWQnIHwgJ3RyYWRpbmcnO1xudHlwZSBXYWxsZXRTdWJUeXBlID0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keSc7XG50eXBlIFdhbGxldEZsYWcgPSB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xuXG50eXBlIFdhbGxldE9wdGlvbnMgPSB7XG4gIHR5cGU/OiBXYWxsZXRUeXBlO1xuICBzdWJUeXBlPzogV2FsbGV0U3ViVHlwZTtcbiAgd2FsbGV0RmxhZ3M/OiBXYWxsZXRGbGFnW107XG59O1xuXG4vKipcbiAqIEVudW1lcmF0ZXMgY29tbW9uIHdhbGxldCBjb25maWd1cmF0aW9ucyBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0Q29uZmlndXJhdGlvbnMoKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgfT4ge1xuICByZXR1cm4gW1xuICAgIHsgbmFtZTogJ2hvdCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdob3QnIH0gfSxcbiAgICB7IG5hbWU6ICdjb2xkIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnIH0gfSxcbiAgICB7IG5hbWU6ICdjdXN0b2RpYWwgd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnY3VzdG9kaWFsJyB9IH0sXG4gICAgeyBuYW1lOiAnZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnLCBzdWJUeXBlOiAnZGlzdHJpYnV0ZWRDdXN0b2R5JyB9IH0sXG4gICAgeyBuYW1lOiAnbXVzaWdLcCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gICAgeyBuYW1lOiAnaG90IG11c2lnS3Agd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnaG90Jywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gIF07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1vY2sgd2FsbGV0IGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgPSB7fSk6IFdhbGxldCB7XG4gIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgaWQ6ICc1YjM0MjUyZjFiZjM0OTkzMGUzNDAyMGEnLFxuICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB0eXBlOiBvcHRpb25zLnR5cGUgfHwgJ2hvdCcsXG4gICAgLi4uKG9wdGlvbnMuc3ViVHlwZSAmJiB7IHN1YlR5cGU6IG9wdGlvbnMuc3ViVHlwZSB9KSxcbiAgICAuLi4ob3B0aW9ucy53YWxsZXRGbGFncyAmJiB7IHdhbGxldEZsYWdzOiBvcHRpb25zLndhbGxldEZsYWdzIH0pLFxuICB9O1xuICByZXR1cm4gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldERhdGEpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHR4Rm9ybWF0IGZyb20gYSBjb2luJ3MgZ2V0RGVmYXVsdFR4Rm9ybWF0IG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhGb3JtYXQoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0OiBXYWxsZXQsIHJlcXVlc3RlZEZvcm1hdD86IFR4Rm9ybWF0KTogVHhGb3JtYXQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0LCByZXF1ZXN0ZWRGb3JtYXQpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBydW4gYSB0eEZvcm1hdCB0ZXN0IHdpdGggbmFtZWQgYXJndW1lbnRzLlxuICogQnkgZGVmYXVsdCwgaXRlcmF0ZXMgb3ZlciBhbGwgd2FsbGV0IGNvbmZpZ3VyYXRpb25zIGFuZCBhbGwgY29pbnMuXG4gKi9cbmZ1bmN0aW9uIHJ1blRlc3QocGFyYW1zOiB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGV4cGVjdGVkVHhGb3JtYXQ6XG4gICAgfCBUeEZvcm1hdFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldENvbmZpZzogV2FsbGV0T3B0aW9ucykgPT4gVHhGb3JtYXQgfCB1bmRlZmluZWQpO1xuICBjb2luRmlsdGVyPzogKGNvaW46IEFic3RyYWN0VXR4b0NvaW4pID0+IGJvb2xlYW47XG4gIHdhbGxldEZpbHRlcj86ICh3YWxsZXRDb25maWc6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zOiBXYWxsZXRPcHRpb25zIH0pID0+IGJvb2xlYW47XG4gIHJlcXVlc3RlZFR4Rm9ybWF0PzogVHhGb3JtYXQ7XG59KTogdm9pZCB7XG4gIGl0KHBhcmFtcy5kZXNjcmlwdGlvbiwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldENvbmZpZ3MgPSBnZXRXYWxsZXRDb25maWd1cmF0aW9ucygpO1xuXG4gICAgZm9yIChjb25zdCB3YWxsZXRDb25maWcgb2Ygd2FsbGV0Q29uZmlncykge1xuICAgICAgLy8gU2tpcCB3YWxsZXQgY29uZmlndXJhdGlvbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICBpZiAocGFyYW1zLndhbGxldEZpbHRlciAmJiAhcGFyYW1zLndhbGxldEZpbHRlcih3YWxsZXRDb25maWcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zKSB7XG4gICAgICAgIC8vIFNraXAgY29pbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICAgIGlmIChwYXJhbXMuY29pbkZpbHRlciAmJiAhcGFyYW1zLmNvaW5GaWx0ZXIoY29pbikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdhbGxldCA9IGNyZWF0ZU1vY2tXYWxsZXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0eEZvcm1hdCA9IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgcGFyYW1zLnJlcXVlc3RlZFR4Rm9ybWF0KTtcblxuICAgICAgICBjb25zdCBleHBlY3RlZFR4Rm9ybWF0ID1cbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpXG4gICAgICAgICAgICA6IHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0O1xuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICB0eEZvcm1hdCxcbiAgICAgICAgICBleHBlY3RlZFR4Rm9ybWF0LFxuICAgICAgICAgIGAke3BhcmFtcy5kZXNjcmlwdGlvbn0gLSAke1xuICAgICAgICAgICAgd2FsbGV0Q29uZmlnLm5hbWVcbiAgICAgICAgICB9IC0gJHtjb2luLmdldENoYWluKCl9OiBleHBlY3RlZCAke2V4cGVjdGVkVHhGb3JtYXR9LCBnb3QgJHt0eEZvcm1hdH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZGVzY3JpYmUoJ3R4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0RGVmYXVsdFR4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIEFsbCB0ZXN0bmV0IHdhbGxldHMgZGVmYXVsdCB0byBQU0JULWxpdGVcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIGFsd2F5cyByZXR1cm4gcHNidC1saXRlIGZvciB0ZXN0bmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc1Rlc3RuZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIERpc3RyaWJ1dGVkQ3VzdG9keSB3YWxsZXRzIGRlZmF1bHQgdG8gUFNCVCAobWFpbm5ldCBvbmx5LCB0ZXN0bmV0IGFscmVhZHkgY292ZXJlZClcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiBwc2J0IGZvciBkaXN0cmlidXRlZEN1c3RvZHkgd2FsbGV0cyBvbiBtYWlubmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiB3Lm9wdGlvbnMuc3ViVHlwZSA9PT0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keScsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNdVNpZzIgd2FsbGV0cyBkZWZhdWx0IHRvIFBTQlQgKG1haW5uZXQgb25seSwgdGVzdG5ldCBhbHJlYWR5IGNvdmVyZWQpXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3Igd2FsbGV0cyB3aXRoIG11c2lnS3AgZmxhZyBvbiBtYWlubmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiBCb29sZWFuKHcub3B0aW9ucy53YWxsZXRGbGFncz8uc29tZSgoZikgPT4gZi5uYW1lID09PSAnbXVzaWdLcCcgJiYgZi52YWx1ZSA9PT0gJ3RydWUnKSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNYWlubmV0IEJpdGNvaW4gaG90IHdhbGxldHMgZGVmYXVsdCB0byBQU0JUXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgbWFpbm5ldCBiaXRjb2luIGhvdCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSkgJiYgZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4ubmFtZSkgPT09ICdidGMnLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4gdy5vcHRpb25zLnR5cGUgPT09ICdob3QnLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQnLFxuICAgIH0pO1xuXG4gICAgLy8gT3RoZXIgbWFpbm5ldCB3YWxsZXRzIGRvIE5PVCBkZWZhdWx0IHRvIFBTQlRcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgZm9yIG90aGVyIG1haW5uZXQgd2FsbGV0cycsXG4gICAgICBjb2luRmlsdGVyOiAoY29pbikgPT4gaXNNYWlubmV0Q29pbihjb2luLm5hbWUpLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4ge1xuICAgICAgICBjb25zdCBpc0hvdEJpdGNvaW4gPSB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCc7IC8vIFRoaXMgd2lsbCBiZSBiaXRjb2luIGhvdCB3YWxsZXRzXG4gICAgICAgIGNvbnN0IGlzRGlzdHJpYnV0ZWRDdXN0b2R5ID0gdy5vcHRpb25zLnN1YlR5cGUgPT09ICdkaXN0cmlidXRlZEN1c3RvZHknO1xuICAgICAgICBjb25zdCBoYXNNdXNpZ0twRmxhZyA9IEJvb2xlYW4ody5vcHRpb25zLndhbGxldEZsYWdzPy5zb21lKChmKSA9PiBmLm5hbWUgPT09ICdtdXNpZ0twJyAmJiBmLnZhbHVlID09PSAndHJ1ZScpKTtcbiAgICAgICAgLy8gT25seSB0ZXN0IFwib3RoZXJcIiB3YWxsZXRzIC0gZXhjbHVkZSB0aGUgc3BlY2lhbCBjYXNlc1xuICAgICAgICByZXR1cm4gIWlzSG90Qml0Y29pbiAmJiAhaXNEaXN0cmlidXRlZEN1c3RvZHkgJiYgIWhhc011c2lnS3BGbGFnO1xuICAgICAgfSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgZm9ybWF0c1xuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBsZWdhY3kgZm9ybWF0IG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IGlzTWFpbm5ldENvaW4oY29pbi5uYW1lKSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgICAgcmVxdWVzdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgIH0pO1xuXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXNwZWN0IGV4cGxpY2l0bHkgcmVxdWVzdGVkIHBzYnQgZm9ybWF0JyxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdwc2J0JyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJlc3BlY3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgcHNidC1saXRlIGZvcm1hdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgdGhhdCBsZWdhY3kgZm9ybWF0IGlzIHByb2hpYml0ZWQgb24gdGVzdG5ldFxuICAgIGl0KCdzaG91bGQgdGhyb3cgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQgd2hlbiBsZWdhY3kgZm9ybWF0IGlzIHJlcXVlc3RlZCBvbiB0ZXN0bmV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgZm9yIChjb25zdCBjb2luIG9mIHV0eG9Db2lucykge1xuICAgICAgICBpZiAoIWlzVGVzdG5ldENvaW4oY29pbi5uYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gY3JlYXRlTW9ja1dhbGxldChjb2luLCB7IHR5cGU6ICdob3QnIH0pO1xuICAgICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAgICgpID0+IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgJ2xlZ2FjeScpLFxuICAgICAgICAgIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0LFxuICAgICAgICAgIGBFeHBlY3RlZCBFcnJvckRlcHJlY2F0ZWRUeEZvcm1hdCBmb3IgJHtjb2luLmdldENoYWluKCl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as utxolib from '@bitgo/utxo-lib';
|
|
2
|
+
import { fixedScriptWallet, type CoinName } from '@bitgo/wasm-utxo';
|
|
3
|
+
type UtxolibRootWalletKeys = utxolib.bitgo.RootWalletKeys;
|
|
4
|
+
type WasmRootWalletKeys = fixedScriptWallet.RootWalletKeys;
|
|
5
|
+
type RootWalletKeys = UtxolibRootWalletKeys | WasmRootWalletKeys;
|
|
6
|
+
/**
|
|
7
|
+
* Generate a wallet address from RootWalletKeys.
|
|
8
|
+
* Supports both utxolib and wasm-utxo RootWalletKeys.
|
|
9
|
+
* Utxolib keys are converted to wasm-utxo keys for address generation.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getWalletAddress(coinName: CoinName, walletKeys: RootWalletKeys, chain?: 0 | 30 | 1 | 10 | 11 | 20 | 21 | 31 | 40 | 41, index?: number): string;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIpE,KAAK,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AAC1D,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAC3D,KAAK,cAAc,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAIjE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,EAC1B,KAAK,gDAAe,EACpB,KAAK,SAAI,GACR,MAAM,CAER"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getWalletAddress = getWalletAddress;
|
|
4
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
5
|
+
const { ChainCode } = wasm_utxo_1.fixedScriptWallet;
|
|
6
|
+
const defaultChain = ChainCode.value('p2sh', 'external');
|
|
7
|
+
/**
|
|
8
|
+
* Generate a wallet address from RootWalletKeys.
|
|
9
|
+
* Supports both utxolib and wasm-utxo RootWalletKeys.
|
|
10
|
+
* Utxolib keys are converted to wasm-utxo keys for address generation.
|
|
11
|
+
*/
|
|
12
|
+
function getWalletAddress(coinName, walletKeys, chain = defaultChain, index = 0) {
|
|
13
|
+
return wasm_utxo_1.fixedScriptWallet.address(walletKeys, chain, index, coinName);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC91dGlsL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsNENBT0M7QUF0QkQsZ0RBQW9FO0FBRXBFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyw2QkFBaUIsQ0FBQztBQU14QyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUV6RDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLFFBQWtCLEVBQ2xCLFVBQTBCLEVBQzFCLEtBQUssR0FBRyxZQUFZLEVBQ3BCLEtBQUssR0FBRyxDQUFDO0lBRVQsT0FBTyw2QkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCB0eXBlIENvaW5OYW1lIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmNvbnN0IHsgQ2hhaW5Db2RlIH0gPSBmaXhlZFNjcmlwdFdhbGxldDtcblxudHlwZSBVdHhvbGliUm9vdFdhbGxldEtleXMgPSB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzO1xudHlwZSBXYXNtUm9vdFdhbGxldEtleXMgPSBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbnR5cGUgUm9vdFdhbGxldEtleXMgPSBVdHhvbGliUm9vdFdhbGxldEtleXMgfCBXYXNtUm9vdFdhbGxldEtleXM7XG5cbmNvbnN0IGRlZmF1bHRDaGFpbiA9IENoYWluQ29kZS52YWx1ZSgncDJzaCcsICdleHRlcm5hbCcpO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgd2FsbGV0IGFkZHJlc3MgZnJvbSBSb290V2FsbGV0S2V5cy5cbiAqIFN1cHBvcnRzIGJvdGggdXR4b2xpYiBhbmQgd2FzbS11dHhvIFJvb3RXYWxsZXRLZXlzLlxuICogVXR4b2xpYiBrZXlzIGFyZSBjb252ZXJ0ZWQgdG8gd2FzbS11dHhvIGtleXMgZm9yIGFkZHJlc3MgZ2VuZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldEFkZHJlc3MoXG4gIGNvaW5OYW1lOiBDb2luTmFtZSxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIGNoYWluID0gZGVmYXVsdENoYWluLFxuICBpbmRleCA9IDBcbik6IHN0cmluZyB7XG4gIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5hZGRyZXNzKHdhbGxldEtleXMsIGNoYWluLCBpbmRleCwgY29pbk5hbWUpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -20,4 +20,7 @@ __exportStar(require("./keychains"), exports);
|
|
|
20
20
|
__exportStar(require("./wallet"), exports);
|
|
21
21
|
__exportStar(require("./unspents"), exports);
|
|
22
22
|
__exportStar(require("./transaction"), exports);
|
|
23
|
-
|
|
23
|
+
__exportStar(require("./psbt"), exports);
|
|
24
|
+
__exportStar(require("./address"), exports);
|
|
25
|
+
__exportStar(require("./nockBitGo"), exports);
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQixnREFBOEI7QUFDOUIseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0eG9Db2lucyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpeHR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4va2V5Y2hhaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vdW5zcGVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3BzYnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ja0JpdEdvJztcbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Triple } from '@bitgo/sdk-core';
|
|
2
2
|
import { BIP32Interface, bitgo } from '@bitgo/utxo-lib';
|
|
3
|
+
import { BIP32 as WasmBIP32, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
3
4
|
type RootWalletKeys = bitgo.RootWalletKeys;
|
|
4
5
|
export type KeychainBase58 = {
|
|
5
6
|
pub: string;
|
|
@@ -22,5 +23,33 @@ export declare function getDefaultWalletKeys(): RootWalletKeys;
|
|
|
22
23
|
export declare function getDefaultWalletUnspentSigner(): bitgo.WalletUnspentSigner<RootWalletKeys>;
|
|
23
24
|
export declare function encryptKeychain(password: string, keychain: KeychainBase58): string;
|
|
24
25
|
export declare function getWalletKeys(seed: string): RootWalletKeys;
|
|
26
|
+
/**
|
|
27
|
+
* Create test wallet keys from a seed string.
|
|
28
|
+
* Uses the same seed generation as getWalletKeys (getSeed('seed/i'))
|
|
29
|
+
* to ensure compatibility with existing test fixtures.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTestWalletKeys(seed: string): {
|
|
32
|
+
xpubs: Triple<string>;
|
|
33
|
+
xprivs: Triple<string>;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Create wasm-utxo RootWalletKeys from a seed string.
|
|
37
|
+
* Optionally specify custom derivation prefixes.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createWasmWalletKeys(seed: string, derivationPrefixes?: Triple<string>): {
|
|
40
|
+
walletKeys: fixedScriptWallet.RootWalletKeys;
|
|
41
|
+
xpubs: Triple<WasmBIP32>;
|
|
42
|
+
xprivs: Triple<WasmBIP32>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Get wasm-utxo RootWalletKeys from the default hardcoded keychains.
|
|
46
|
+
* Use this when you need wallet keys that match existing test fixtures.
|
|
47
|
+
* Optionally specify custom derivation prefixes.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getDefaultWasmWalletKeys(derivationPrefixes?: Triple<string>): {
|
|
50
|
+
walletKeys: fixedScriptWallet.RootWalletKeys;
|
|
51
|
+
xpubs: Triple<WasmBIP32>;
|
|
52
|
+
xprivs: Triple<WasmBIP32>;
|
|
53
|
+
};
|
|
25
54
|
export {};
|
|
26
55
|
//# sourceMappingURL=keychains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/keychains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAS,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/keychains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAS,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAQlE;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAWpG;AAED,eAAO,MAAM,QAAQ,UAA8B,CAAC;AAEpD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,CAalD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,CAMjB,CAAC;AAE7B,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED,wBAAgB,6BAA6B,IAAI,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAEzF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAElF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;IAClD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CACxB,CAQA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,kBAAkB,GAAE,MAAM,CAAC,MAAM,CAA+B,GAC/D;IACD,UAAU,EAAE,iBAAiB,CAAC,cAAc,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;CAC3B,CAYA;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,kBAAkB,GAAE,MAAM,CAAC,MAAM,CAA+B,GAAG;IAC1G,UAAU,EAAE,iBAAiB,CAAC,cAAc,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;CAC3B,CAWA"}
|
|
@@ -8,9 +8,13 @@ exports.getDefaultWalletKeys = getDefaultWalletKeys;
|
|
|
8
8
|
exports.getDefaultWalletUnspentSigner = getDefaultWalletUnspentSigner;
|
|
9
9
|
exports.encryptKeychain = encryptKeychain;
|
|
10
10
|
exports.getWalletKeys = getWalletKeys;
|
|
11
|
+
exports.createTestWalletKeys = createTestWalletKeys;
|
|
12
|
+
exports.createWasmWalletKeys = createWasmWalletKeys;
|
|
13
|
+
exports.getDefaultWasmWalletKeys = getDefaultWasmWalletKeys;
|
|
11
14
|
const sdk_api_1 = require("@bitgo/sdk-api");
|
|
12
15
|
const sdk_test_1 = require("@bitgo/sdk-test");
|
|
13
16
|
const utxo_lib_1 = require("@bitgo/utxo-lib");
|
|
17
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
14
18
|
function toKeychainBase58(k) {
|
|
15
19
|
if (k.isNeutered()) {
|
|
16
20
|
throw new Error(`must provide private key`);
|
|
@@ -69,4 +73,50 @@ function encryptKeychain(password, keychain) {
|
|
|
69
73
|
function getWalletKeys(seed) {
|
|
70
74
|
return new utxo_lib_1.bitgo.RootWalletKeys(Array.from({ length: 3 }).map((_, i) => utxo_lib_1.bip32.fromSeed((0, sdk_test_1.getSeed)(`${seed}/${i}`))));
|
|
71
75
|
}
|
|
72
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Create test wallet keys from a seed string.
|
|
78
|
+
* Uses the same seed generation as getWalletKeys (getSeed('seed/i'))
|
|
79
|
+
* to ensure compatibility with existing test fixtures.
|
|
80
|
+
*/
|
|
81
|
+
function createTestWalletKeys(seed) {
|
|
82
|
+
const keys = Array.from({ length: 3 }).map((_, i) => utxo_lib_1.bip32.fromSeed((0, sdk_test_1.getSeed)(`${seed}/${i}`)));
|
|
83
|
+
return {
|
|
84
|
+
xpubs: keys.map((k) => k.neutered().toBase58()),
|
|
85
|
+
xprivs: keys.map((k) => k.toBase58()),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create wasm-utxo RootWalletKeys from a seed string.
|
|
90
|
+
* Optionally specify custom derivation prefixes.
|
|
91
|
+
*/
|
|
92
|
+
function createWasmWalletKeys(seed, derivationPrefixes = ['m/0/0', 'm/0/0', 'm/0/0']) {
|
|
93
|
+
const { xpubs: xpubStrs, xprivs: xprivStrs } = createTestWalletKeys(seed);
|
|
94
|
+
const xpubs = xpubStrs.map((xpub) => wasm_utxo_1.BIP32.from(xpub));
|
|
95
|
+
const xprivs = xprivStrs.map((xpriv) => wasm_utxo_1.BIP32.from(xpriv));
|
|
96
|
+
return {
|
|
97
|
+
walletKeys: wasm_utxo_1.fixedScriptWallet.RootWalletKeys.from({
|
|
98
|
+
triple: xpubs,
|
|
99
|
+
derivationPrefixes,
|
|
100
|
+
}),
|
|
101
|
+
xpubs,
|
|
102
|
+
xprivs,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get wasm-utxo RootWalletKeys from the default hardcoded keychains.
|
|
107
|
+
* Use this when you need wallet keys that match existing test fixtures.
|
|
108
|
+
* Optionally specify custom derivation prefixes.
|
|
109
|
+
*/
|
|
110
|
+
function getDefaultWasmWalletKeys(derivationPrefixes = ['m/0/0', 'm/0/0', 'm/0/0']) {
|
|
111
|
+
const xpubs = exports.keychainsBase58.map((k) => wasm_utxo_1.BIP32.from(k.pub));
|
|
112
|
+
const xprivs = exports.keychainsBase58.map((k) => wasm_utxo_1.BIP32.from(k.prv));
|
|
113
|
+
return {
|
|
114
|
+
walletKeys: wasm_utxo_1.fixedScriptWallet.RootWalletKeys.from({
|
|
115
|
+
triple: xpubs,
|
|
116
|
+
derivationPrefixes,
|
|
117
|
+
}),
|
|
118
|
+
xpubs,
|
|
119
|
+
xprivs,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWwva2V5Y2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFCQSw0Q0FRQztBQUVELDhDQVdDO0FBMkJELDBFQUlDO0FBRUQsb0RBRUM7QUFFRCxzRUFFQztBQUVELDBDQUVDO0FBRUQsc0NBSUM7QUFPRCxvREFXQztBQU1ELG9EQW1CQztBQU9ELDREQWVDO0FBM0pELDRDQUF5QztBQUN6Qyw4Q0FBMEM7QUFDMUMsOENBQStEO0FBQy9ELGdEQUF5RTtBQWlCekUsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBaUI7SUFDaEQsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNqQixHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLGNBQThCLEVBQUUsZ0JBQXdCO0lBQ3hGLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDakQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBQSxrQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEMsR0FBRztZQUNILE1BQU0sRUFBRSxnQkFBUSxDQUFDLE1BQU0sQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBQSxpQkFBTyxFQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVB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QUFrQjtTQUNuQixDQUFDO1FBQ0YsS0FBSztRQUNMLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBlbmNyeXB0IH0gZnJvbSAnQGJpdGdvL3Nkay1hcGknO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgeyBiaXAzMiwgQklQMzJJbnRlcmZhY2UsIGJpdGdvIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMyIGFzIFdhc21CSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxudHlwZSBSb290V2FsbGV0S2V5cyA9IGJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuXG5leHBvcnQgdHlwZSBLZXljaGFpbkJhc2U1OCA9IHtcbiAgcHViOiBzdHJpbmc7XG4gIHBydjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgS2V5RG9jID0ge1xuICBpZDogc3RyaW5nO1xuICBwdWI6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICBjb2luU3BlY2lmaWM6IGFueTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0tleWNoYWluQmFzZTU4KGs6IEJJUDMySW50ZXJmYWNlKTogS2V5Y2hhaW5CYXNlNTgge1xuICBpZiAoay5pc05ldXRlcmVkKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBwcml2YXRlIGtleWApO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHJ2OiBrLnRvQmFzZTU4KCksXG4gICAgcHViOiBrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvS2V5Y2hhaW5PYmplY3RzKHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cywgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nKTogS2V5RG9jW10ge1xuICByZXR1cm4gcm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoYmlwMzIsIGtleUlkeCkgPT4ge1xuICAgIGNvbnN0IHB1YiA9IGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGdldFNlZWQocHViKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwdWIsXG4gICAgICBzb3VyY2U6IEtleU5hbWVzW2tleUlkeF0sXG4gICAgICBlbmNyeXB0ZWRQcnY6IGVuY3J5cHQod2FsbGV0UGFzc3BocmFzZSwgYmlwMzIudG9CYXNlNTgoKSksXG4gICAgICBjb2luU3BlY2lmaWM6IHt9LFxuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgS2V5TmFtZXMgPSBbJ3VzZXInLCAnYmFja3VwJywgJ2JpdGdvJ107XG5cbmV4cG9ydCBjb25zdCBrZXljaGFpbnNCYXNlNTg6IFRyaXBsZTxLZXljaGFpbkJhc2U1OD4gPSBbXG4gIHtcbiAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjR2lRaFZrMUo3Y0QxWW9kRjl0YzVZMUI4dnBUampCMXBjQjFKMW0xUVg4Zk10WVAyc1lxRm1XNkoycmE2OXROb0FSS2p2VEdvOWNHVXJiUGJKZGp3clN6R0d6UHpXV1MnLFxuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0s0RUxFUGlVSGtVR0d6bW5ra1J0RUFuRlk4UzQ4QXFVcWpOZzlVRGg5eUxMdDNGY2ZBVHlDamJzTUI5SkNHSEFEOE1lQlRBSzFQN3RyRnBwa29zd3U1WkFzSFlBU2ZiaycsXG4gIH0sXG4gIHtcbiAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRnpMWHVnYW5vZ1F2ZDdNcmVmUVFxQ2NKUDJaRHVtbkNkUWVjZjVjdzFQMW5ENXFCejhTTlMxeUNMU0M5VnFwTlVXblFVM1Y2cW1uUHQycjIxb1hoaWNRRnpQQTZMYnknLFxuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0szV0c0b2YzblNZVUM1NVhORkNnWlR5Z2hhZTljTVNGRGtjS1U3WUpnVGFoSk1wZFRZOUNqQ2NqZ1NvMlRKNjM1dVVWeDE3NkJ1ZlVNQkZwaWVLWVZKRDlKM1Z2ckdSbScsXG4gIH0sXG4gIHtcbiAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRkhwd1dyelBCNjFVMkNnQm1kRDIxV05WTTFKS1VuOXJFRXhrb0dFNHlhZlVWRmJQU2Q3OHZkWDh0V2NFVVFXYUFMRmtVOWZVYlVNNENjNDlES0VKU0NZR1JuYnpDeW0nLFxuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0syb2tVUXFUTm94NGpVQXFoTkFWQWVIU3RZY3RodlNjc01TZGNGaXVwUm5MemR4emZKaXRoYWs1WnM5MkZRSmVlSjlKaXlhNjNLZlVOeGF3dU1aRENwMmNHVDljZE1LcycsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qga2V5Y2hhaW5zOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+ID0ga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoeyBwdWIsIHBydiB9KSA9PiB7XG4gIGNvbnN0IGsgPSBiaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gIGlmIChrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSAhPT0gcHViKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtaXNtYXRjaGApO1xuICB9XG4gIHJldHVybiBrO1xufSkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldFVuc3BlbnRTaWduZXJVc2VyQml0R28oXG4gIGtleXM6IFRyaXBsZTxCSVAzMkludGVyZmFjZT5cbik6IGJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+IHtcbiAgcmV0dXJuIG5ldyBiaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyKGtleXMsIGtleXNbMF0sIGtleXNbMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTogUm9vdFdhbGxldEtleXMge1xuICByZXR1cm4gbmV3IGJpdGdvLlJvb3RXYWxsZXRLZXlzKGtleWNoYWlucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0V2FsbGV0VW5zcGVudFNpZ25lcigpOiBiaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyPFJvb3RXYWxsZXRLZXlzPiB7XG4gIHJldHVybiBnZXRXYWxsZXRVbnNwZW50U2lnbmVyVXNlckJpdEdvKGtleWNoYWlucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0S2V5Y2hhaW4ocGFzc3dvcmQ6IHN0cmluZywga2V5Y2hhaW46IEtleWNoYWluQmFzZTU4KTogc3RyaW5nIHtcbiAgcmV0dXJuIGVuY3J5cHQocGFzc3dvcmQsIGtleWNoYWluLnBydik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRLZXlzKHNlZWQ6IHN0cmluZyk6IFJvb3RXYWxsZXRLZXlzIHtcbiAgcmV0dXJuIG5ldyBiaXRnby5Sb290V2FsbGV0S2V5cyhcbiAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzIH0pLm1hcCgoXywgaSkgPT4gYmlwMzIuZnJvbVNlZWQoZ2V0U2VlZChgJHtzZWVkfS8ke2l9YCkpKSBhcyBUcmlwbGU8QklQMzJJbnRlcmZhY2U+XG4gICk7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRlc3Qgd2FsbGV0IGtleXMgZnJvbSBhIHNlZWQgc3RyaW5nLlxuICogVXNlcyB0aGUgc2FtZSBzZWVkIGdlbmVyYXRpb24gYXMgZ2V0V2FsbGV0S2V5cyAoZ2V0U2VlZCgnc2VlZC9pJykpXG4gKiB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIHRlc3QgZml4dHVyZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXN0V2FsbGV0S2V5cyhzZWVkOiBzdHJpbmcpOiB7XG4gIHhwdWJzOiBUcmlwbGU8c3RyaW5nPjtcbiAgeHByaXZzOiBUcmlwbGU8c3RyaW5nPjtcbn0ge1xuICBjb25zdCBrZXlzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMyB9KS5tYXAoKF8sIGkpID0+XG4gICAgYmlwMzIuZnJvbVNlZWQoZ2V0U2VlZChgJHtzZWVkfS8ke2l9YCkpXG4gICkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcbiAgcmV0dXJuIHtcbiAgICB4cHViczoga2V5cy5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICB4cHJpdnM6IGtleXMubWFwKChrKSA9PiBrLnRvQmFzZTU4KCkpIGFzIFRyaXBsZTxzdHJpbmc+LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB3YXNtLXV0eG8gUm9vdFdhbGxldEtleXMgZnJvbSBhIHNlZWQgc3RyaW5nLlxuICogT3B0aW9uYWxseSBzcGVjaWZ5IGN1c3RvbSBkZXJpdmF0aW9uIHByZWZpeGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2FzbVdhbGxldEtleXMoXG4gIHNlZWQ6IHN0cmluZyxcbiAgZGVyaXZhdGlvblByZWZpeGVzOiBUcmlwbGU8c3RyaW5nPiA9IFsnbS8wLzAnLCAnbS8wLzAnLCAnbS8wLzAnXVxuKToge1xuICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbiAgeHB1YnM6IFRyaXBsZTxXYXNtQklQMzI+O1xuICB4cHJpdnM6IFRyaXBsZTxXYXNtQklQMzI+O1xufSB7XG4gIGNvbnN0IHsgeHB1YnM6IHhwdWJTdHJzLCB4cHJpdnM6IHhwcml2U3RycyB9ID0gY3JlYXRlVGVzdFdhbGxldEtleXMoc2VlZCk7XG4gIGNvbnN0IHhwdWJzID0geHB1YlN0cnMubWFwKCh4cHViKSA9PiBXYXNtQklQMzIuZnJvbSh4cHViKSkgYXMgVHJpcGxlPFdhc21CSVAzMj47XG4gIGNvbnN0IHhwcml2cyA9IHhwcml2U3Rycy5tYXAoKHhwcml2KSA9PiBXYXNtQklQMzIuZnJvbSh4cHJpdikpIGFzIFRyaXBsZTxXYXNtQklQMzI+O1xuICByZXR1cm4ge1xuICAgIHdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb20oe1xuICAgICAgdHJpcGxlOiB4cHVicyxcbiAgICAgIGRlcml2YXRpb25QcmVmaXhlcyxcbiAgICB9KSxcbiAgICB4cHVicyxcbiAgICB4cHJpdnMsXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHdhc20tdXR4byBSb290V2FsbGV0S2V5cyBmcm9tIHRoZSBkZWZhdWx0IGhhcmRjb2RlZCBrZXljaGFpbnMuXG4gKiBVc2UgdGhpcyB3aGVuIHlvdSBuZWVkIHdhbGxldCBrZXlzIHRoYXQgbWF0Y2ggZXhpc3RpbmcgdGVzdCBmaXh0dXJlcy5cbiAqIE9wdGlvbmFsbHkgc3BlY2lmeSBjdXN0b20gZGVyaXZhdGlvbiBwcmVmaXhlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cyhkZXJpdmF0aW9uUHJlZml4ZXM6IFRyaXBsZTxzdHJpbmc+ID0gWydtLzAvMCcsICdtLzAvMCcsICdtLzAvMCddKToge1xuICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbiAgeHB1YnM6IFRyaXBsZTxXYXNtQklQMzI+O1xuICB4cHJpdnM6IFRyaXBsZTxXYXNtQklQMzI+O1xufSB7XG4gIGNvbnN0IHhwdWJzID0ga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoaykgPT4gV2FzbUJJUDMyLmZyb20oay5wdWIpKSBhcyBUcmlwbGU8V2FzbUJJUDMyPjtcbiAgY29uc3QgeHByaXZzID0ga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoaykgPT4gV2FzbUJJUDMyLmZyb20oay5wcnYpKSBhcyBUcmlwbGU8V2FzbUJJUDMyPjtcbiAgcmV0dXJuIHtcbiAgICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tKHtcbiAgICAgIHRyaXBsZTogeHB1YnMsXG4gICAgICBkZXJpdmF0aW9uUHJlZml4ZXMsXG4gICAgfSksXG4gICAgeHB1YnMsXG4gICAgeHByaXZzLFxuICB9O1xufVxuIl19
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import nock = require('nock');
|
|
2
|
-
|
|
2
|
+
import { Wallet } from '@bitgo/sdk-core';
|
|
3
|
+
import { BIP32, Triple } from '@bitgo/wasm-utxo';
|
|
4
|
+
export declare function nockBitGo(bitgo?: import("modules/sdk-test/dist/src").TestableBG & import("@bitgo/sdk-api").BitGoAPI): nock.Scope;
|
|
5
|
+
/**
|
|
6
|
+
* Mock the key fetching endpoints for a wallet.
|
|
7
|
+
* Sets up nock to return the key triple with the user key encrypted.
|
|
8
|
+
*/
|
|
9
|
+
export declare function nockWalletKeys(wallet: Wallet, keyTriple: Triple<BIP32>, userPassphrase: string): void;
|
|
3
10
|
//# sourceMappingURL=nockBitGo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nockBitGo.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockBitGo.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"nockBitGo.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockBitGo.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAE9B,OAAO,EAA6B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIjD,wBAAgB,SAAS,CAAC,KAAK,qFAAe,GAAG,IAAI,CAAC,KAAK,CAG1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CASrG"}
|
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.nockBitGo = nockBitGo;
|
|
4
|
+
exports.nockWalletKeys = nockWalletKeys;
|
|
4
5
|
const nock = require("nock");
|
|
6
|
+
const sdk_api_1 = require("@bitgo/sdk-api");
|
|
5
7
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
6
8
|
const utxoCoins_1 = require("./utxoCoins");
|
|
7
9
|
function nockBitGo(bitgo = utxoCoins_1.defaultBitGo) {
|
|
8
10
|
const env = sdk_core_1.Environments[bitgo.getEnv()];
|
|
9
11
|
return nock(env.uri);
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Mock the key fetching endpoints for a wallet.
|
|
15
|
+
* Sets up nock to return the key triple with the user key encrypted.
|
|
16
|
+
*/
|
|
17
|
+
function nockWalletKeys(wallet, keyTriple, userPassphrase) {
|
|
18
|
+
const [user] = keyTriple;
|
|
19
|
+
const pubs = keyTriple.map((k) => k.neutered().toBase58());
|
|
20
|
+
const responses = [
|
|
21
|
+
{ pub: pubs[0], encryptedPrv: (0, sdk_api_1.encrypt)(userPassphrase, user.toBase58()) },
|
|
22
|
+
{ pub: pubs[1] },
|
|
23
|
+
{ pub: pubs[2] },
|
|
24
|
+
];
|
|
25
|
+
wallet.keyIds().forEach((id, i) => nockBitGo().get(`/api/v2/${wallet.coin()}/key/${id}`).reply(200, responses[i]));
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ja0JpdEdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWwvbm9ja0JpdEdvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOEJBR0M7QUFNRCx3Q0FTQztBQXpCRCw2QkFBOEI7QUFDOUIsNENBQXlDO0FBQ3pDLDhDQUFvRTtBQUdwRSwyQ0FBMkM7QUFFM0MsU0FBZ0IsU0FBUyxDQUFDLEtBQUssR0FBRyx3QkFBWTtJQUM1QyxNQUFNLEdBQUcsR0FBRyx1QkFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBZ0IsQ0FBQztJQUN4RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxNQUFjLEVBQUUsU0FBd0IsRUFBRSxjQUFzQjtJQUM3RixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3pCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBQSxpQkFBTyxFQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtRQUN4RSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEIsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQ2pCLENBQUM7SUFDRixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCB7IGVuY3J5cHQgfSBmcm9tICdAYml0Z28vc2RrLWFwaSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzLCBXYWxsZXQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQklQMzIsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBkZWZhdWx0Qml0R28gfSBmcm9tICcuL3V0eG9Db2lucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R28oYml0Z28gPSBkZWZhdWx0Qml0R28pOiBub2NrLlNjb3BlIHtcbiAgY29uc3QgZW52ID0gRW52aXJvbm1lbnRzW2JpdGdvLmdldEVudigpXSBhcyBFbnZpcm9ubWVudDtcbiAgcmV0dXJuIG5vY2soZW52LnVyaSk7XG59XG5cbi8qKlxuICogTW9jayB0aGUga2V5IGZldGNoaW5nIGVuZHBvaW50cyBmb3IgYSB3YWxsZXQuXG4gKiBTZXRzIHVwIG5vY2sgdG8gcmV0dXJuIHRoZSBrZXkgdHJpcGxlIHdpdGggdGhlIHVzZXIga2V5IGVuY3J5cHRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vY2tXYWxsZXRLZXlzKHdhbGxldDogV2FsbGV0LCBrZXlUcmlwbGU6IFRyaXBsZTxCSVAzMj4sIHVzZXJQYXNzcGhyYXNlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgW3VzZXJdID0ga2V5VHJpcGxlO1xuICBjb25zdCBwdWJzID0ga2V5VHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICBjb25zdCByZXNwb25zZXMgPSBbXG4gICAgeyBwdWI6IHB1YnNbMF0sIGVuY3J5cHRlZFBydjogZW5jcnlwdCh1c2VyUGFzc3BocmFzZSwgdXNlci50b0Jhc2U1OCgpKSB9LFxuICAgIHsgcHViOiBwdWJzWzFdIH0sXG4gICAgeyBwdWI6IHB1YnNbMl0gfSxcbiAgXTtcbiAgd2FsbGV0LmtleUlkcygpLmZvckVhY2goKGlkLCBpKSA9PiBub2NrQml0R28oKS5nZXQoYC9hcGkvdjIvJHt3YWxsZXQuY29pbigpfS9rZXkvJHtpZH1gKS5yZXBseSgyMDAsIHJlc3BvbnNlc1tpXSkpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nockIndexerAPI.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockIndexerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"nockIndexerAPI.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockIndexerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAWhD,wBAAgB,0BAA0B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACjF,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAC1C,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9B,IAAI,CAAC,KAAK,CAMZ;AAED,wBAAgB,8BAA8B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrF,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GACnC,IAAI,CAAC,KAAK,CAUZ"}
|
|
@@ -1,56 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.nockBitGoPublicTransaction = nockBitGoPublicTransaction;
|
|
37
4
|
exports.nockBitGoPublicAddressUnspents = nockBitGoPublicAddressUnspents;
|
|
38
|
-
const
|
|
5
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
39
6
|
const nockBitGo_1 = require("./nockBitGo");
|
|
40
7
|
function nockBitGoPublicTransaction(coin, tx, unspents) {
|
|
41
8
|
const payload = {
|
|
42
9
|
input: unspents.map((u) => ({ address: u.address })),
|
|
43
|
-
outputs: tx.outs.map((o) => ({ address:
|
|
10
|
+
outputs: tx.outs.map((o) => ({ address: wasm_utxo_1.address.fromOutputScriptWithCoin(o.script, coin.name) })),
|
|
44
11
|
};
|
|
45
12
|
return (0, nockBitGo_1.nockBitGo)().get(`/api/v2/${coin.getChain()}/public/tx/${tx.getId()}`).reply(200, payload);
|
|
46
13
|
}
|
|
47
14
|
function nockBitGoPublicAddressUnspents(coin, txid, address, outputs) {
|
|
48
15
|
const payload = outputs.map((o, vout) => ({
|
|
49
16
|
id: `${txid}:${vout}`,
|
|
50
|
-
address:
|
|
17
|
+
address: wasm_utxo_1.address.fromOutputScriptWithCoin(o.script, coin.name),
|
|
51
18
|
value: Number(o.value),
|
|
52
19
|
valueString: coin.amountType === 'bigint' ? o.value.toString() : undefined,
|
|
53
20
|
}));
|
|
54
21
|
return (0, nockBitGo_1.nockBitGo)().get(`/api/v2/${coin.getChain()}/public/addressUnspents/${address}`).reply(200, payload);
|
|
55
22
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ja0luZGV4ZXJBUEkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC9ub2NrSW5kZXhlckFQSS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLGdFQVVDO0FBRUQsd0VBZUM7QUF4Q0QsZ0RBQTBEO0FBSTFELDJDQUF3QztBQVN4QyxTQUFnQiwwQkFBMEIsQ0FDeEMsSUFBc0IsRUFDdEIsRUFBMEMsRUFDMUMsUUFBK0I7SUFFL0IsTUFBTSxPQUFPLEdBQUc7UUFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDdEcsQ0FBQztJQUNGLE9BQU8sSUFBQSxxQkFBUyxHQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQzVDLElBQXNCLEVBQ3RCLElBQVksRUFDWixPQUFlLEVBQ2YsT0FBb0M7SUFFcEMsTUFBTSxPQUFPLEdBQWlCLE9BQU8sQ0FBQyxHQUFHLENBQ3ZDLENBQUMsQ0FBQyxFQUFFLElBQVksRUFBYyxFQUFFLENBQUMsQ0FBQztRQUNoQyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3JCLE9BQU8sRUFBRSxtQkFBVyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzNFLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxJQUFBLHFCQUFTLEdBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcblxuaW1wb3J0IHsgbm9ja0JpdEdvIH0gZnJvbSAnLi9ub2NrQml0R28nO1xuXG5pbnRlcmZhY2UgSW1zVW5zcGVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbiAgdmFsdWVTdHJpbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R29QdWJsaWNUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICB1bnNwZW50czogeyBhZGRyZXNzOiBzdHJpbmcgfVtdXG4pOiBub2NrLlNjb3BlIHtcbiAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICBpbnB1dDogdW5zcGVudHMubWFwKCh1KSA9PiAoeyBhZGRyZXNzOiB1LmFkZHJlc3MgfSkpLFxuICAgIG91dHB1dHM6IHR4Lm91dHMubWFwKChvKSA9PiAoeyBhZGRyZXNzOiB3YXNtQWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0V2l0aENvaW4oby5zY3JpcHQsIGNvaW4ubmFtZSkgfSkpLFxuICB9O1xuICByZXR1cm4gbm9ja0JpdEdvKCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvdHgvJHt0eC5nZXRJZCgpfWApLnJlcGx5KDIwMCwgcGF5bG9hZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R29QdWJsaWNBZGRyZXNzVW5zcGVudHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHR4aWQ6IHN0cmluZyxcbiAgYWRkcmVzczogc3RyaW5nLFxuICBvdXRwdXRzOiB1dHhvbGliLlR4T3V0cHV0PFROdW1iZXI+W11cbik6IG5vY2suU2NvcGUge1xuICBjb25zdCBwYXlsb2FkOiBJbXNVbnNwZW50W10gPSBvdXRwdXRzLm1hcChcbiAgICAobywgdm91dDogbnVtYmVyKTogSW1zVW5zcGVudCA9PiAoe1xuICAgICAgaWQ6IGAke3R4aWR9OiR7dm91dH1gLFxuICAgICAgYWRkcmVzczogd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKG8uc2NyaXB0LCBjb2luLm5hbWUpLFxuICAgICAgdmFsdWU6IE51bWJlcihvLnZhbHVlKSxcbiAgICAgIHZhbHVlU3RyaW5nOiBjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gby52YWx1ZS50b1N0cmluZygpIDogdW5kZWZpbmVkLFxuICAgIH0pXG4gICk7XG4gIHJldHVybiBub2NrQml0R28oKS5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3B1YmxpYy9hZGRyZXNzVW5zcGVudHMvJHthZGRyZXNzfWApLnJlcGx5KDIwMCwgcGF5bG9hZCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { fixedScriptWallet, type CoinName } from '@bitgo/wasm-utxo';
|
|
2
|
+
export type PsbtInput = {
|
|
3
|
+
scriptType: fixedScriptWallet.OutputScriptType;
|
|
4
|
+
value: bigint;
|
|
5
|
+
};
|
|
6
|
+
export type PsbtOutput = {
|
|
7
|
+
address: string;
|
|
8
|
+
value: bigint;
|
|
9
|
+
};
|
|
10
|
+
export type PsbtOptions = {
|
|
11
|
+
lockTime?: number;
|
|
12
|
+
sequence?: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Construct a test PSBT with the given inputs and outputs.
|
|
16
|
+
* Uses dummy txids (all zeros) for inputs.
|
|
17
|
+
*/
|
|
18
|
+
export declare function constructPsbt(inputs: PsbtInput[], outputs: PsbtOutput[], network: CoinName, walletKeys: fixedScriptWallet.RootWalletKeys, options?: PsbtOptions): fixedScriptWallet.BitGoPsbt;
|
|
19
|
+
//# sourceMappingURL=psbt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/psbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIpE,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,iBAAiB,CAAC,cAAc,EAC5C,OAAO,CAAC,EAAE,WAAW,GACpB,iBAAiB,CAAC,SAAS,CAiB7B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructPsbt = constructPsbt;
|
|
4
|
+
const wasm_utxo_1 = require("@bitgo/wasm-utxo");
|
|
5
|
+
const { BitGoPsbt, ChainCode } = wasm_utxo_1.fixedScriptWallet;
|
|
6
|
+
/**
|
|
7
|
+
* Construct a test PSBT with the given inputs and outputs.
|
|
8
|
+
* Uses dummy txids (all zeros) for inputs.
|
|
9
|
+
*/
|
|
10
|
+
function constructPsbt(inputs, outputs, network, walletKeys, options) {
|
|
11
|
+
const psbt = BitGoPsbt.createEmpty(network, walletKeys, { lockTime: options?.lockTime });
|
|
12
|
+
inputs.forEach((input, index) => {
|
|
13
|
+
const chain = ChainCode.value(input.scriptType, 'external');
|
|
14
|
+
psbt.addWalletInput({ txid: '00'.repeat(32), vout: index, value: input.value, sequence: options?.sequence }, walletKeys, { scriptId: { chain, index }, signPath: { signer: 'user', cosigner: 'bitgo' } });
|
|
15
|
+
});
|
|
16
|
+
outputs.forEach((output) => {
|
|
17
|
+
psbt.addOutput(output.address, output.value);
|
|
18
|
+
});
|
|
19
|
+
return psbt;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC91dGlsL3BzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxzQ0F1QkM7QUFuQ0QsZ0RBQW9FO0FBRXBFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsNkJBQWlCLENBQUM7QUFNbkQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixNQUFtQixFQUNuQixPQUFxQixFQUNyQixPQUFpQixFQUNqQixVQUE0QyxFQUM1QyxPQUFxQjtJQUVyQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFekYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FDakIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQ3ZGLFVBQVUsRUFDVixFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNoRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCB0eXBlIENvaW5OYW1lIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmNvbnN0IHsgQml0R29Qc2J0LCBDaGFpbkNvZGUgfSA9IGZpeGVkU2NyaXB0V2FsbGV0O1xuXG5leHBvcnQgdHlwZSBQc2J0SW5wdXQgPSB7IHNjcmlwdFR5cGU6IGZpeGVkU2NyaXB0V2FsbGV0Lk91dHB1dFNjcmlwdFR5cGU7IHZhbHVlOiBiaWdpbnQgfTtcbmV4cG9ydCB0eXBlIFBzYnRPdXRwdXQgPSB7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IGJpZ2ludCB9O1xuZXhwb3J0IHR5cGUgUHNidE9wdGlvbnMgPSB7IGxvY2tUaW1lPzogbnVtYmVyOyBzZXF1ZW5jZT86IG51bWJlciB9O1xuXG4vKipcbiAqIENvbnN0cnVjdCBhIHRlc3QgUFNCVCB3aXRoIHRoZSBnaXZlbiBpbnB1dHMgYW5kIG91dHB1dHMuXG4gKiBVc2VzIGR1bW15IHR4aWRzIChhbGwgemVyb3MpIGZvciBpbnB1dHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RQc2J0KFxuICBpbnB1dHM6IFBzYnRJbnB1dFtdLFxuICBvdXRwdXRzOiBQc2J0T3V0cHV0W10sXG4gIG5ldHdvcms6IENvaW5OYW1lLFxuICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgb3B0aW9ucz86IFBzYnRPcHRpb25zXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCBwc2J0ID0gQml0R29Qc2J0LmNyZWF0ZUVtcHR5KG5ldHdvcmssIHdhbGxldEtleXMsIHsgbG9ja1RpbWU6IG9wdGlvbnM/LmxvY2tUaW1lIH0pO1xuXG4gIGlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBjaGFpbiA9IENoYWluQ29kZS52YWx1ZShpbnB1dC5zY3JpcHRUeXBlLCAnZXh0ZXJuYWwnKTtcbiAgICBwc2J0LmFkZFdhbGxldElucHV0KFxuICAgICAgeyB0eGlkOiAnMDAnLnJlcGVhdCgzMiksIHZvdXQ6IGluZGV4LCB2YWx1ZTogaW5wdXQudmFsdWUsIHNlcXVlbmNlOiBvcHRpb25zPy5zZXF1ZW5jZSB9LFxuICAgICAgd2FsbGV0S2V5cyxcbiAgICAgIHsgc2NyaXB0SWQ6IHsgY2hhaW4sIGluZGV4IH0sIHNpZ25QYXRoOiB7IHNpZ25lcjogJ3VzZXInLCBjb3NpZ25lcjogJ2JpdGdvJyB9IH1cbiAgICApO1xuICB9KTtcblxuICBvdXRwdXRzLmZvckVhY2goKG91dHB1dCkgPT4ge1xuICAgIHBzYnQuYWRkT3V0cHV0KG91dHB1dC5hZGRyZXNzLCBvdXRwdXQudmFsdWUpO1xuICB9KTtcblxuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as utxolib from '@bitgo/utxo-lib';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { ECPair, fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
3
|
+
import { UtxoCoinName } from '../../../src/names';
|
|
4
|
+
import type { Unspent } from '../../../src/unspent';
|
|
5
|
+
type UtxolibRootWalletKeys = utxolib.bitgo.RootWalletKeys;
|
|
6
|
+
type WasmRootWalletKeys = fixedScriptWallet.RootWalletKeys;
|
|
4
7
|
export type TransactionObj = {
|
|
5
8
|
id: string;
|
|
6
9
|
hex: string;
|
|
@@ -15,10 +18,11 @@ export type TransactionObj = {
|
|
|
15
18
|
value: number | string;
|
|
16
19
|
}[];
|
|
17
20
|
};
|
|
21
|
+
export declare function assertEqualParsedPsbt(a: Buffer, b: Buffer, coinName: UtxoCoinName, walletKeys: WasmRootWalletKeys, replayProtection: ECPair[]): void;
|
|
18
22
|
export declare function transactionToObj<TNumber extends number | bigint = number>(tx: utxolib.bitgo.UtxoTransaction<TNumber>): TransactionObj;
|
|
19
23
|
export declare function transactionHexToObj(txHex: string, network: utxolib.Network, amountType?: 'number' | 'bigint'): TransactionObj;
|
|
20
24
|
export declare function createPrebuildTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string): utxolib.bitgo.UtxoTransaction<TNumber>;
|
|
21
|
-
export declare function createHalfSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<
|
|
22
|
-
export declare function createFullSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<
|
|
25
|
+
export declare function createHalfSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<UtxolibRootWalletKeys>, prebuild?: utxolib.bitgo.UtxoTransaction<TNumber>): utxolib.bitgo.UtxoTransaction<TNumber>;
|
|
26
|
+
export declare function createFullSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<UtxolibRootWalletKeys>, halfSigned?: utxolib.bitgo.UtxoTransaction<TNumber>): utxolib.bitgo.UtxoTransaction<TNumber>;
|
|
23
27
|
export {};
|
|
24
28
|
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAwC,MAAM,kBAAkB,CAAC;AAEnG,OAAO,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AAEnE,KAAK,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AAC1D,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,EAAE,CAAC;CACL,CAAC;AAYF,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,kBAAkB,EAC9B,gBAAgB,EAAE,MAAM,EAAE,GACzB,IAAI,CAYN;AAED,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACvE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACzC,cAAc,CAehB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,cAAc,CAQhB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAChF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAaxC;AAoBD,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAChE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAChD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAKxC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAChE,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAUxC"}
|