@bitgo-beta/sdk-core 8.2.1-beta.207 → 8.2.1-beta.2071
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/src/account-lib/baseCoin/baseTransaction.d.ts +0 -1
- package/dist/src/account-lib/baseCoin/baseTransaction.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts +3 -3
- package/dist/src/account-lib/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/baseTransactionBuilder.js +4 -3
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +1 -0
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +43 -31
- package/dist/src/account-lib/baseCoin/enum.d.ts +59 -5
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +112 -10
- package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
- package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/errors.js +8 -2
- package/dist/src/account-lib/baseCoin/iface.d.ts +19 -35
- package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/iface.js +26 -18
- package/dist/src/account-lib/baseCoin/index.d.ts +1 -1
- package/dist/src/account-lib/baseCoin/index.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/index.js +8 -5
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts +88 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessage.js +154 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +67 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +144 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +33 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +45 -0
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts +164 -0
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/iface.js +3 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts +6 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/index.js +22 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts +3 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/index.js +19 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts +13 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessage.js +28 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts +21 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/simple/simpleMessageBuilder.js +28 -0
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts +1 -2
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/secp256k1ExtendedKeyPair.js +38 -26
- package/dist/src/account-lib/index.d.ts +0 -1
- package/dist/src/account-lib/index.d.ts.map +1 -1
- package/dist/src/account-lib/index.js +23 -10
- package/dist/src/account-lib/mpc/index.d.ts +1 -1
- package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/index.js +6 -2
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -3
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +376 -354
- package/dist/src/account-lib/mpc/tss/ecdsa/index.js +23 -9
- package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +2 -2
- package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +3 -3
- package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +46 -53
- package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +0 -1
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +66 -69
- package/dist/src/account-lib/mpc/tss/eddsa/index.js +23 -9
- package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +1 -1
- package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
- package/dist/src/account-lib/mpc/tss/index.js +23 -9
- package/dist/src/account-lib/mpc/util.d.ts +7 -1
- package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/util.js +24 -1
- package/dist/src/account-lib/staking/index.js +6 -2
- package/dist/src/account-lib/staking/utils.js +3 -3
- package/dist/src/account-lib/util/crypto.d.ts +8 -2
- package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
- package/dist/src/account-lib/util/crypto.js +69 -38
- package/dist/src/api/bip32path.js +2 -3
- package/dist/src/api/index.js +6 -2
- package/dist/src/api/types.d.ts +37 -0
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/api/types.js +8 -1
- package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -1
- package/dist/src/bitgo/address-book/address-book.js +20 -12
- package/dist/src/bitgo/address-book/index.js +6 -2
- package/dist/src/bitgo/address-book/types.d.ts +36 -36
- package/dist/src/bitgo/address-book/types.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +123 -13
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +200 -16
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +301 -31
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +14 -3
- package/dist/src/bitgo/baseCoin/index.js +6 -2
- package/dist/src/bitgo/bip32util.d.ts +3 -16
- package/dist/src/bitgo/bip32util.d.ts.map +1 -1
- package/dist/src/bitgo/bip32util.js +4 -56
- package/dist/src/bitgo/bitcoin.d.ts +0 -1
- package/dist/src/bitgo/bitcoin.d.ts.map +1 -1
- package/dist/src/bitgo/bitcoin.js +26 -13
- package/dist/src/bitgo/bitgoBase.d.ts +17 -4
- package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
- package/dist/src/bitgo/bitgoBase.js +1 -1
- package/dist/src/bitgo/coinFactory.d.ts +24 -3
- package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
- package/dist/src/bitgo/coinFactory.js +35 -3
- package/dist/src/bitgo/config.d.ts +3 -101
- package/dist/src/bitgo/config.d.ts.map +1 -1
- package/dist/src/bitgo/config.js +26 -15
- package/dist/src/bitgo/defi/defiVault.d.ts +171 -0
- package/dist/src/bitgo/defi/defiVault.d.ts.map +1 -0
- package/dist/src/bitgo/defi/defiVault.js +445 -0
- package/dist/src/bitgo/defi/iDefiVault.d.ts +101 -0
- package/dist/src/bitgo/defi/iDefiVault.d.ts.map +1 -0
- package/dist/src/bitgo/defi/iDefiVault.js +6 -0
- package/dist/src/bitgo/defi/index.d.ts +3 -0
- package/dist/src/bitgo/defi/index.d.ts.map +1 -0
- package/dist/src/bitgo/defi/index.js +22 -0
- package/dist/src/bitgo/ecdh.d.ts +0 -1
- package/dist/src/bitgo/ecdh.d.ts.map +1 -1
- package/dist/src/bitgo/ecdh.js +26 -13
- package/dist/src/bitgo/enterprise/enterprise.d.ts +9 -4
- package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/enterprise.js +47 -21
- package/dist/src/bitgo/enterprise/enterprises.js +27 -13
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts +5 -3
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
- package/dist/src/bitgo/enterprise/index.js +6 -2
- package/dist/src/bitgo/environments.d.ts +68 -3
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +414 -34
- package/dist/src/bitgo/errors.d.ts +182 -1
- package/dist/src/bitgo/errors.d.ts.map +1 -1
- package/dist/src/bitgo/errors.js +177 -3
- package/dist/src/bitgo/evm/evmUtils.d.ts +26 -0
- package/dist/src/bitgo/evm/evmUtils.d.ts.map +1 -0
- package/dist/src/bitgo/evm/evmUtils.js +50 -0
- package/dist/src/bitgo/index.d.ts +6 -1
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +32 -11
- package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts +3 -3
- package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.d.ts.map +1 -1
- package/dist/src/bitgo/inscriptionBuilder/iInscriptionBuilder.js +1 -1
- package/dist/src/bitgo/inscriptionBuilder/index.js +6 -2
- package/dist/src/bitgo/internal/index.js +6 -2
- package/dist/src/bitgo/internal/internal.js +5 -6
- package/dist/src/bitgo/internal/keycard.d.ts +13 -8
- package/dist/src/bitgo/internal/keycard.d.ts.map +1 -1
- package/dist/src/bitgo/internal/keycard.js +63 -48
- package/dist/src/bitgo/keychain/decryptKeychain.d.ts +14 -0
- package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
- package/dist/src/bitgo/keychain/decryptKeychain.js +36 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts +132 -11
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +2 -2
- package/dist/src/bitgo/keychain/index.d.ts +1 -0
- package/dist/src/bitgo/keychain/index.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/index.js +7 -2
- package/dist/src/bitgo/keychain/keychains.d.ts +59 -7
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +298 -53
- package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
- package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
- package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
- package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
- package/dist/src/bitgo/legacyBitcoin.js +27 -13
- package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
- package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
- package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
- package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
- package/dist/src/bitgo/market/index.js +6 -2
- package/dist/src/bitgo/market/markets.js +23 -9
- package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +5 -1
- package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -1
- package/dist/src/bitgo/pendingApproval/iPendingApproval.js +4 -4
- package/dist/src/bitgo/pendingApproval/index.js +6 -2
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +20 -8
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
- package/dist/src/bitgo/pendingApproval/pendingApproval.js +246 -111
- package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
- package/dist/src/bitgo/proofs/WalletProofs.d.ts +19 -0
- package/dist/src/bitgo/proofs/WalletProofs.d.ts.map +1 -0
- package/dist/src/bitgo/proofs/WalletProofs.js +37 -0
- package/dist/src/bitgo/proofs/index.d.ts +2 -0
- package/dist/src/bitgo/proofs/index.d.ts.map +1 -0
- package/dist/src/bitgo/proofs/index.js +6 -0
- package/dist/src/bitgo/proofs/types.d.ts +80 -0
- package/dist/src/bitgo/proofs/types.d.ts.map +1 -0
- package/dist/src/bitgo/proofs/types.js +80 -0
- package/dist/src/bitgo/recovery/index.js +6 -2
- package/dist/src/bitgo/recovery/initiate.d.ts +13 -3
- package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
- package/dist/src/bitgo/recovery/initiate.js +49 -41
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +13 -0
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
- package/dist/src/bitgo/safe/derivableEd25519Pub.js +35 -0
- package/dist/src/bitgo/safe/iSafe.d.ts +124 -0
- package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -0
- package/dist/src/bitgo/safe/iSafe.js +3 -0
- package/dist/src/bitgo/safe/iSafes.d.ts +94 -0
- package/dist/src/bitgo/safe/iSafes.d.ts.map +1 -0
- package/dist/src/bitgo/safe/iSafes.js +3 -0
- package/dist/src/bitgo/safe/index.d.ts +7 -0
- package/dist/src/bitgo/safe/index.d.ts.map +1 -0
- package/dist/src/bitgo/safe/index.js +23 -0
- package/dist/src/bitgo/safe/rootCoin.d.ts +15 -0
- package/dist/src/bitgo/safe/rootCoin.d.ts.map +1 -0
- package/dist/src/bitgo/safe/rootCoin.js +47 -0
- package/dist/src/bitgo/safe/safe.d.ts +88 -0
- package/dist/src/bitgo/safe/safe.d.ts.map +1 -0
- package/dist/src/bitgo/safe/safe.js +404 -0
- package/dist/src/bitgo/safe/safes.d.ts +102 -0
- package/dist/src/bitgo/safe/safes.d.ts.map +1 -0
- package/dist/src/bitgo/safe/safes.js +281 -0
- package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +136 -0
- package/dist/src/bitgo/staking/goStakingInterfaces.d.ts.map +1 -0
- package/dist/src/bitgo/staking/goStakingInterfaces.js +3 -0
- package/dist/src/bitgo/staking/goStakingWallet.d.ts +62 -0
- package/dist/src/bitgo/staking/goStakingWallet.d.ts.map +1 -0
- package/dist/src/bitgo/staking/goStakingWallet.js +141 -0
- package/dist/src/bitgo/staking/iGoStakingWallet.d.ts +17 -0
- package/dist/src/bitgo/staking/iGoStakingWallet.d.ts.map +1 -0
- package/dist/src/bitgo/staking/iGoStakingWallet.js +3 -0
- package/dist/src/bitgo/staking/iStakingWallet.d.ts +165 -8
- package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/iStakingWallet.js +2 -2
- package/dist/src/bitgo/staking/index.d.ts +3 -0
- package/dist/src/bitgo/staking/index.d.ts.map +1 -1
- package/dist/src/bitgo/staking/index.js +9 -2
- package/dist/src/bitgo/staking/stakingWallet.d.ts +21 -8
- package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/stakingWallet.js +153 -7
- package/dist/src/bitgo/trading/iTradingAccount.d.ts +13 -1
- package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -1
- package/dist/src/bitgo/trading/iTradingAccount.js +1 -1
- package/dist/src/bitgo/trading/index.d.ts +1 -0
- package/dist/src/bitgo/trading/index.d.ts.map +1 -1
- package/dist/src/bitgo/trading/index.js +7 -2
- package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts +8 -0
- package/dist/src/bitgo/trading/network/decrypt-aes-gcm.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/decrypt-aes-gcm.js +31 -0
- package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts +8 -0
- package/dist/src/bitgo/trading/network/decrypt-rsa.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/decrypt-rsa.js +23 -0
- package/dist/src/bitgo/trading/network/decrypt.d.ts +14 -0
- package/dist/src/bitgo/trading/network/decrypt.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/decrypt.js +23 -0
- package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts +8 -0
- package/dist/src/bitgo/trading/network/encrypt-aes-gcm.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/encrypt-aes-gcm.js +25 -0
- package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts +8 -0
- package/dist/src/bitgo/trading/network/encrypt-rsa-browser.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/encrypt-rsa-browser.js +65 -0
- package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts +8 -0
- package/dist/src/bitgo/trading/network/encrypt-rsa.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/encrypt-rsa.js +23 -0
- package/dist/src/bitgo/trading/network/encrypt.d.ts +37 -0
- package/dist/src/bitgo/trading/network/encrypt.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/encrypt.js +58 -0
- package/dist/src/bitgo/trading/network/index.d.ts +2 -0
- package/dist/src/bitgo/trading/network/index.d.ts.map +1 -1
- package/dist/src/bitgo/trading/network/index.js +8 -2
- package/dist/src/bitgo/trading/network/network.d.ts +4 -3
- package/dist/src/bitgo/trading/network/network.d.ts.map +1 -1
- package/dist/src/bitgo/trading/network/network.js +24 -27
- package/dist/src/bitgo/trading/network/types.d.ts +79 -46
- package/dist/src/bitgo/trading/network/types.d.ts.map +1 -1
- package/dist/src/bitgo/trading/network/types.js +1 -1
- package/dist/src/bitgo/trading/network/utils.d.ts +20 -0
- package/dist/src/bitgo/trading/network/utils.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/utils.js +54 -0
- package/dist/src/bitgo/trading/tradingAccount.d.ts +15 -1
- package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
- package/dist/src/bitgo/trading/tradingAccount.js +55 -7
- package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +49 -0
- package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
- package/dist/src/bitgo/tss/bitgoPubKeys.js +92 -0
- package/dist/src/bitgo/tss/common.d.ts +41 -6
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +127 -17
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +167 -0
- package/dist/src/bitgo/tss/ecdsa/index.d.ts +1 -0
- package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/index.js +25 -10
- package/dist/src/bitgo/tss/ecdsa/types.d.ts +27 -27
- package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/types.js +3 -3
- package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +15 -6
- package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/eddsa/eddsa.js +47 -40
- package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts +42 -0
- package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/tss/eddsa/eddsaMPCv2.js +104 -0
- package/dist/src/bitgo/tss/eddsa/index.js +23 -9
- package/dist/src/bitgo/tss/eddsa/types.d.ts +4 -4
- package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/tss/index.d.ts +3 -2
- package/dist/src/bitgo/tss/index.d.ts.map +1 -1
- package/dist/src/bitgo/tss/index.js +26 -10
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts +50 -0
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +112 -0
- package/dist/src/bitgo/tss/types.d.ts +3 -3
- package/dist/src/bitgo/tss/types.d.ts.map +1 -1
- package/dist/src/bitgo/tss/types.js +2 -2
- package/dist/src/bitgo/types.d.ts +3 -3
- package/dist/src/bitgo/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +10 -0
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +76 -14
- package/dist/src/bitgo/utils/codecProps.js +24 -11
- package/dist/src/bitgo/utils/codecs.d.ts +11 -0
- package/dist/src/bitgo/utils/codecs.d.ts.map +1 -0
- package/dist/src/bitgo/utils/codecs.js +59 -0
- package/dist/src/bitgo/utils/decode.d.ts.map +1 -1
- package/dist/src/bitgo/utils/decode.js +30 -16
- package/dist/src/bitgo/utils/index.d.ts +4 -2
- package/dist/src/bitgo/utils/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/index.js +27 -11
- package/dist/src/bitgo/utils/messageTypes.d.ts +46 -0
- package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
- package/dist/src/bitgo/utils/messageTypes.js +23 -0
- package/dist/src/bitgo/utils/mpcUtils.d.ts +4 -4
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/mpcUtils.js +207 -14
- package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
- package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
- package/dist/src/bitgo/utils/notEmpty.js +7 -0
- package/dist/src/bitgo/utils/opengpgUtils.d.ts +11 -7
- package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/opengpgUtils.js +79 -62
- package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
- package/dist/src/bitgo/utils/postWithCodec.js +4 -38
- package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
- package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/promise-utils.js +2 -3
- package/dist/src/bitgo/utils/transactionUtils.d.ts +9 -0
- package/dist/src/bitgo/utils/transactionUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/transactionUtils.js +29 -0
- package/dist/src/bitgo/utils/triple.d.ts +1 -1
- package/dist/src/bitgo/utils/triple.d.ts.map +1 -1
- package/dist/src/bitgo/utils/triple.js +2 -3
- package/dist/src/bitgo/utils/tss/addressVerification.d.ts +62 -0
- package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/addressVerification.js +93 -0
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +94 -17
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +310 -45
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +449 -55
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +47 -22
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +23 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +157 -0
- package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts +28 -0
- package/dist/src/bitgo/utils/tss/ecdsa/base.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/base.js +53 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts +25 -51
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +173 -246
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +240 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1076 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +16 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +37 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +69 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +442 -0
- package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +5 -0
- package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/index.js +11 -2
- package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +7 -10
- package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts +125 -0
- package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/typesMPCv2.js +55 -0
- package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +21 -0
- package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +119 -0
- package/dist/src/bitgo/utils/tss/eddsa/base.d.ts +18 -0
- package/dist/src/bitgo/utils/tss/eddsa/base.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/base.js +64 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +38 -11
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +254 -96
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +221 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +890 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +8 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +16 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +25 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +241 -0
- package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
- package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/index.js +30 -8
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +15 -7
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/types.js +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +53 -0
- package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +55 -0
- package/dist/src/bitgo/utils/tss/index.d.ts +6 -0
- package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/index.js +30 -10
- package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts +40 -0
- package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/keyShareEnvelope.js +103 -0
- package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts +23 -0
- package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/preHashedSignable.js +26 -0
- package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +42 -0
- package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/recipientUtils.js +168 -0
- package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts +29 -0
- package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.js +126 -0
- package/dist/src/bitgo/utils/tss/redpallas/index.d.ts +4 -0
- package/dist/src/bitgo/utils/tss/redpallas/index.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/redpallas/index.js +20 -0
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +27 -0
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.js +43 -0
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts +45 -0
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.js +55 -0
- package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts +8 -0
- package/dist/src/bitgo/utils/tss/serializedTxHexVerify.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/serializedTxHexVerify.js +13 -0
- package/dist/src/bitgo/utils/tss/signableConsistency.d.ts +12 -0
- package/dist/src/bitgo/utils/tss/signableConsistency.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/signableConsistency.js +9 -0
- package/dist/src/bitgo/utils/txRequest.d.ts +10 -0
- package/dist/src/bitgo/utils/txRequest.d.ts.map +1 -0
- package/dist/src/bitgo/utils/txRequest.js +49 -0
- package/dist/src/bitgo/utils/util.js +24 -10
- package/dist/src/bitgo/utils/wallet.d.ts +7 -0
- package/dist/src/bitgo/utils/wallet.d.ts.map +1 -0
- package/dist/src/bitgo/utils/wallet.js +48 -0
- package/dist/src/bitgo/v1Wallets.d.ts +170 -0
- package/dist/src/bitgo/v1Wallets.d.ts.map +1 -0
- package/dist/src/bitgo/v1Wallets.js +3 -0
- package/dist/src/bitgo/wallet/BuildParams.d.ts +90 -1
- package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/BuildParams.js +92 -11
- package/dist/src/bitgo/wallet/iWallet.d.ts +607 -33
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/iWallets.d.ts +310 -16
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +84 -3
- package/dist/src/bitgo/wallet/index.d.ts +1 -0
- package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/index.js +7 -2
- package/dist/src/bitgo/wallet/safeKeychain.d.ts +75 -0
- package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/safeKeychain.js +151 -0
- package/dist/src/bitgo/wallet/wallet.d.ts +359 -27
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +2292 -450
- package/dist/src/bitgo/wallet/wallets.d.ts +99 -4
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +1242 -156
- package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts +12 -0
- package/dist/src/bitgo/walletUtil/iMessageProvider.d.ts.map +1 -0
- package/dist/src/bitgo/walletUtil/iMessageProvider.js +3 -0
- package/dist/src/bitgo/walletUtil/index.d.ts +3 -0
- package/dist/src/bitgo/walletUtil/index.d.ts.map +1 -0
- package/dist/src/bitgo/walletUtil/index.js +19 -0
- package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts +22 -0
- package/dist/src/bitgo/walletUtil/midnightMessageProvider.d.ts.map +1 -0
- package/dist/src/bitgo/walletUtil/midnightMessageProvider.js +95 -0
- package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts +9 -0
- package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.d.ts.map +1 -0
- package/dist/src/bitgo/walletUtil/signAccountBasedMidnightClaimMessages.js +72 -0
- package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts +15 -0
- package/dist/src/bitgo/walletUtil/utxoMessageProof.d.ts.map +1 -0
- package/dist/src/bitgo/walletUtil/utxoMessageProof.js +40 -0
- package/dist/src/bitgo/webauthn/base64url.d.ts +16 -0
- package/dist/src/bitgo/webauthn/base64url.d.ts.map +1 -0
- package/dist/src/bitgo/webauthn/base64url.js +27 -0
- package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.d.ts +18 -0
- package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.d.ts.map +1 -0
- package/dist/src/bitgo/webauthn/deriveEnterpriseSalt.js +26 -0
- package/dist/src/bitgo/webauthn/derivePassword.d.ts +11 -0
- package/dist/src/bitgo/webauthn/derivePassword.d.ts.map +1 -0
- package/dist/src/bitgo/webauthn/derivePassword.js +16 -0
- package/dist/src/bitgo/webauthn/index.d.ts +5 -0
- package/dist/src/bitgo/webauthn/index.d.ts.map +1 -0
- package/dist/src/bitgo/webauthn/index.js +21 -0
- package/dist/src/bitgo/webauthn/types.d.ts +18 -0
- package/dist/src/bitgo/webauthn/types.d.ts.map +1 -0
- package/dist/src/bitgo/webauthn/types.js +3 -0
- package/dist/src/bitgo/webhook/index.js +6 -2
- package/dist/src/bitgo/webhook/webhooks.js +23 -9
- package/dist/src/coins/fiat.d.ts +45 -0
- package/dist/src/coins/fiat.d.ts.map +1 -0
- package/dist/src/coins/fiat.js +94 -0
- package/dist/src/coins/index.d.ts +1 -6
- package/dist/src/coins/index.d.ts.map +1 -1
- package/dist/src/coins/index.js +7 -8
- package/dist/src/coins/ofc.d.ts +21 -2
- package/dist/src/coins/ofc.d.ts.map +1 -1
- package/dist/src/coins/ofc.js +29 -3
- package/dist/src/coins/ofcToken.d.ts +15 -4
- package/dist/src/coins/ofcToken.d.ts.map +1 -1
- package/dist/src/coins/ofcToken.js +43 -5
- package/dist/src/coins/susd.d.ts +3 -2
- package/dist/src/coins/susd.d.ts.map +1 -1
- package/dist/src/coins/susd.js +5 -1
- package/dist/src/common.js +27 -13
- package/dist/src/index.d.ts +9 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +40 -11
- package/dist/src/lightning.d.ts +20 -0
- package/dist/src/lightning.d.ts.map +1 -0
- package/dist/src/lightning.js +13 -0
- package/dist/src/units.js +5 -6
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +207 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilder.js +174 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.js +108 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +46 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.js +69 -0
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +91 -29
- package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
- package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
- package/dist/test/unit/account-lib/mpc/util.js +53 -0
- package/dist/test/unit/bitgo/address-book/address-book.d.ts +2 -0
- package/dist/test/unit/bitgo/address-book/address-book.d.ts.map +1 -0
- package/dist/test/unit/bitgo/address-book/address-book.js +159 -0
- package/dist/test/unit/bitgo/defi/defiVault.d.ts +2 -0
- package/dist/test/unit/bitgo/defi/defiVault.d.ts.map +1 -0
- package/dist/test/unit/bitgo/defi/defiVault.js +863 -0
- package/dist/test/unit/bitgo/environment.d.ts +2 -0
- package/dist/test/unit/bitgo/environment.d.ts.map +1 -0
- package/dist/test/unit/bitgo/environment.js +38 -0
- package/dist/test/unit/bitgo/errors.d.ts +2 -0
- package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
- package/dist/test/unit/bitgo/errors.js +262 -0
- package/dist/test/unit/bitgo/keychain/keychains.d.ts +2 -0
- package/dist/test/unit/bitgo/keychain/keychains.d.ts.map +1 -0
- package/dist/test/unit/bitgo/keychain/keychains.js +166 -0
- package/dist/test/unit/bitgo/recovery/initiate.d.ts +2 -0
- package/dist/test/unit/bitgo/recovery/initiate.d.ts.map +1 -0
- package/dist/test/unit/bitgo/recovery/initiate.js +188 -0
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +133 -0
- package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +72 -0
- package/dist/test/unit/bitgo/safe/safe.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/safe.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/safe.js +528 -0
- package/dist/test/unit/bitgo/safe/safeDerivation.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/safeDerivation.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/safeDerivation.js +75 -0
- package/dist/test/unit/bitgo/safe/safes.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/safes.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/safes.js +376 -0
- package/dist/test/unit/bitgo/trading/network/encrypt.d.ts +2 -0
- package/dist/test/unit/bitgo/trading/network/encrypt.d.ts.map +1 -0
- package/dist/test/unit/bitgo/trading/network/encrypt.js +71 -0
- package/dist/test/unit/bitgo/trading/network/network.test.d.ts +2 -0
- package/dist/test/unit/bitgo/trading/network/network.test.d.ts.map +1 -0
- package/dist/test/unit/bitgo/trading/network/network.test.js +136 -0
- package/dist/test/unit/bitgo/trading/tradingAccount.d.ts +2 -0
- package/dist/test/unit/bitgo/trading/tradingAccount.d.ts.map +1 -0
- package/dist/test/unit/bitgo/trading/tradingAccount.js +192 -0
- package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts +2 -0
- package/dist/test/unit/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
- package/dist/test/unit/bitgo/tss/bitgoPubKeys.js +66 -0
- package/dist/test/unit/bitgo/tss/common.d.ts +2 -0
- package/dist/test/unit/bitgo/tss/common.d.ts.map +1 -0
- package/dist/test/unit/bitgo/tss/common.js +77 -0
- package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts +2 -0
- package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
- package/dist/test/unit/bitgo/tss/redpallas/redpallasMPCv2.js +181 -0
- package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +45 -4
- package/dist/test/unit/bitgo/utils/messageTypes.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/messageTypes.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/messageTypes.js +64 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.unwrap.js +109 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.js +106 -0
- package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
- package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
- package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/addressVerification.js +251 -0
- package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/baseTSSUtils.js +348 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaEncryptionVersion.js +94 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +1068 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts +5 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/ecdsa/gpgKeys.js +36 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaExternalSigner.js +158 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +1993 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +174 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +376 -0
- package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.js +83 -0
- package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/preHashedSignable.js +55 -0
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +462 -0
- package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.js +80 -0
- package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.js +279 -0
- package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/redpallasBitgoGpgKey.js +111 -0
- package/dist/test/unit/bitgo/utils/txRequest.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/txRequest.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/txRequest.js +179 -0
- package/dist/test/unit/bitgo/utils/wallet.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/wallet.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/wallet.js +55 -0
- package/dist/test/unit/bitgo/wallet/BuildParams.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/BuildParams.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/BuildParams.js +154 -0
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +79 -9
- package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/getAccountResources.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/getAccountResources.js +133 -0
- package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/getPotentialStuckTxs.js +88 -0
- package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/getResourceDelegations.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/getResourceDelegations.js +118 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.js +141 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletSignTransaction.js +185 -0
- package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/prebuildTransactionTypes.js +20 -0
- package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts +3 -0
- package/dist/test/unit/bitgo/wallet/resourceManagement.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/resourceManagement.js +441 -0
- package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts +5 -0
- package/dist/test/unit/bitgo/wallet/safeGetUserPrv.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +671 -0
- package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts +9 -0
- package/dist/test/unit/bitgo/wallet/safeShareWallet.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/safeShareWallet.js +303 -0
- package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/tokenApproval.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/tokenApproval.js +201 -0
- package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletEvmAddressCreation.js +181 -0
- package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +69 -0
- package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletTssAddressVerification.js +320 -0
- package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +304 -0
- package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletsEvmKeyring.js +216 -0
- package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletsExternalSigner.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +675 -0
- package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletsGoAccount.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletsGoAccount.js +150 -0
- package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletsWebauthn.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletsWebauthn.js +201 -0
- package/dist/test/unit/coins/ofc.d.ts +2 -0
- package/dist/test/unit/coins/ofc.d.ts.map +1 -0
- package/dist/test/unit/coins/ofc.js +124 -0
- package/dist/test/unit/lightning.d.ts +2 -0
- package/dist/test/unit/lightning.d.ts.map +1 -0
- package/dist/test/unit/lightning.js +23 -0
- package/dist/test/unit/units.d.ts.map +1 -1
- package/dist/test/unit/units.js +64 -64
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +25 -22
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -1788
- package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +0 -77
- package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +0 -1
- package/dist/src/account-lib/baseCoin/blsKeyPair.js +0 -209
- package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +0 -49
- package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +0 -1
- package/dist/src/account-lib/util/ed25519KeyDeriver.js +0 -87
- package/dist/src/bitgo/lightning/iLightning.d.ts +0 -186
- package/dist/src/bitgo/lightning/iLightning.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/iLightning.js +0 -106
- package/dist/src/bitgo/lightning/index.d.ts +0 -5
- package/dist/src/bitgo/lightning/index.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/index.js +0 -17
- package/dist/src/bitgo/lightning/lightning.d.ts +0 -25
- package/dist/src/bitgo/lightning/lightning.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/lightning.js +0 -111
- package/dist/src/bitgo/lightning/lightningUtils.d.ts +0 -46
- package/dist/src/bitgo/lightning/lightningUtils.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/lightningUtils.js +0 -133
- package/dist/src/bitgo/lightning/lnurlCodec.d.ts +0 -3
- package/dist/src/bitgo/lightning/lnurlCodec.d.ts.map +0 -1
- package/dist/src/bitgo/lightning/lnurlCodec.js +0 -28
- package/dist/src/bitgo/utils/blsUtils.d.ts +0 -52
- package/dist/src/bitgo/utils/blsUtils.d.ts.map +0 -1
- package/dist/src/bitgo/utils/blsUtils.js +0 -237
- package/dist/src/bitgo/utils/iBlsUtils.d.ts +0 -14
- package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +0 -1
- package/dist/src/bitgo/utils/iBlsUtils.js +0 -3
- package/dist/src/coins/fiateur.d.ts +0 -31
- package/dist/src/coins/fiateur.d.ts.map +0 -1
- package/dist/src/coins/fiateur.js +0 -57
- package/dist/src/coins/fiatgbp.d.ts +0 -31
- package/dist/src/coins/fiatgbp.d.ts.map +0 -1
- package/dist/src/coins/fiatgbp.js +0 -57
- package/dist/src/coins/fiatusd.d.ts +0 -31
- package/dist/src/coins/fiatusd.d.ts.map +0 -1
- package/dist/src/coins/fiatusd.js +0 -57
- package/dist/src/coins/tfiateur.d.ts +0 -11
- package/dist/src/coins/tfiateur.d.ts.map +0 -1
- package/dist/src/coins/tfiateur.js +0 -17
- package/dist/src/coins/tfiatgbp.d.ts +0 -11
- package/dist/src/coins/tfiatgbp.d.ts.map +0 -1
- package/dist/src/coins/tfiatgbp.js +0 -17
- package/dist/src/coins/tfiatusd.d.ts +0 -11
- package/dist/src/coins/tfiatusd.d.ts.map +0 -1
- package/dist/src/coins/tfiatusd.js +0 -17
- package/dist/src/openssl/index.d.ts +0 -5
- package/dist/src/openssl/index.d.ts.map +0 -1
- package/dist/src/openssl/index.js +0 -9
- package/dist/test/unit/openssl.d.ts +0 -2
- package/dist/test/unit/openssl.d.ts.map +0 -1
- package/dist/test/unit/openssl.js +0 -39
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import TssUtils, { TssUtilsTypes, EddsaUtilsTypes } from './eddsa';
|
|
2
2
|
export * as ECDSAUtils from './ecdsa';
|
|
3
3
|
export * as EDDSAUtils from './eddsa';
|
|
4
|
+
export * as RedpallasUtils from './redpallas';
|
|
4
5
|
/** @deprecated use EDDSAUtils */
|
|
5
6
|
export { TssUtils };
|
|
6
7
|
/** @deprecated use EDDSAUtilsTypes */
|
|
@@ -10,4 +11,9 @@ export { EddsaUtilsTypes };
|
|
|
10
11
|
export { ITssUtils, IEddsaUtils, TxRequest, EddsaUnsignedTransaction } from './eddsa';
|
|
11
12
|
export * as BaseTssUtils from './baseTSSUtils';
|
|
12
13
|
export * from './baseTypes';
|
|
14
|
+
export * from './addressVerification';
|
|
15
|
+
export * from './preHashedSignable';
|
|
16
|
+
export * from './recipientUtils';
|
|
17
|
+
export * from './keyShareEnvelope';
|
|
18
|
+
export * from './signableConsistency';
|
|
13
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,cAAc,MAAM,aAAa,CAAC;AAE9C,iCAAiC;AACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,CAAC;AAG3B,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEtF,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,24 +15,40 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
11
15
|
}) : function(o, v) {
|
|
12
16
|
o["default"] = v;
|
|
13
17
|
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
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
|
+
})();
|
|
21
35
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
37
|
};
|
|
24
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.BaseTssUtils = exports.EddsaUtilsTypes = exports.TssUtilsTypes = exports.TssUtils = exports.EDDSAUtils = exports.ECDSAUtils = void 0;
|
|
39
|
+
exports.BaseTssUtils = exports.EddsaUtilsTypes = exports.TssUtilsTypes = exports.TssUtils = exports.RedpallasUtils = exports.EDDSAUtils = exports.ECDSAUtils = void 0;
|
|
26
40
|
const eddsa_1 = __importStar(require("./eddsa"));
|
|
27
41
|
exports.TssUtils = eddsa_1.default;
|
|
28
42
|
Object.defineProperty(exports, "TssUtilsTypes", { enumerable: true, get: function () { return eddsa_1.TssUtilsTypes; } });
|
|
29
43
|
Object.defineProperty(exports, "EddsaUtilsTypes", { enumerable: true, get: function () { return eddsa_1.EddsaUtilsTypes; } });
|
|
30
44
|
exports.ECDSAUtils = __importStar(require("./ecdsa"));
|
|
31
45
|
exports.EDDSAUtils = __importStar(require("./eddsa"));
|
|
46
|
+
exports.RedpallasUtils = __importStar(require("./redpallas"));
|
|
32
47
|
exports.BaseTssUtils = __importStar(require("./baseTSSUtils"));
|
|
33
48
|
__exportStar(require("./baseTypes"), exports);
|
|
34
|
-
|
|
49
|
+
__exportStar(require("./addressVerification"), exports);
|
|
50
|
+
__exportStar(require("./preHashedSignable"), exports);
|
|
51
|
+
__exportStar(require("./recipientUtils"), exports);
|
|
52
|
+
__exportStar(require("./keyShareEnvelope"), exports);
|
|
53
|
+
__exportStar(require("./signableConsistency"), exports);
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFtRTtBQU0xRCxtQkFORixlQUFRLENBTUU7QUFFUiw4RkFSVSxxQkFBYSxPQVFWO0FBQ2IsZ0dBVHlCLHVCQUFlLE9BU3pCO0FBUnhCLHNEQUFzQztBQUN0QyxzREFBc0M7QUFDdEMsOERBQThDO0FBWTlDLCtEQUErQztBQUMvQyw4Q0FBNEI7QUFDNUIsd0RBQXNDO0FBQ3RDLHNEQUFvQztBQUNwQyxtREFBaUM7QUFDakMscURBQW1DO0FBQ25DLHdEQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUc3NVdGlscywgeyBUc3NVdGlsc1R5cGVzLCBFZGRzYVV0aWxzVHlwZXMgfSBmcm9tICcuL2VkZHNhJztcbmV4cG9ydCAqIGFzIEVDRFNBVXRpbHMgZnJvbSAnLi9lY2RzYSc7XG5leHBvcnQgKiBhcyBFRERTQVV0aWxzIGZyb20gJy4vZWRkc2EnO1xuZXhwb3J0ICogYXMgUmVkcGFsbGFzVXRpbHMgZnJvbSAnLi9yZWRwYWxsYXMnO1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIEVERFNBVXRpbHMgKi9cbmV4cG9ydCB7IFRzc1V0aWxzIH07XG4vKiogQGRlcHJlY2F0ZWQgdXNlIEVERFNBVXRpbHNUeXBlcyAqL1xuZXhwb3J0IHsgVHNzVXRpbHNUeXBlcyB9O1xuZXhwb3J0IHsgRWRkc2FVdGlsc1R5cGVzIH07XG5cbi8vIGV4cG9ydGluZyB0aGlzIHR5cGVzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuLyoqIEBkZXByZWNhdGVkIHVzZSBFRERTQVV0aWxzLjx0eXBlL21ldGhvZD4gKi9cbmV4cG9ydCB7IElUc3NVdGlscywgSUVkZHNhVXRpbHMsIFR4UmVxdWVzdCwgRWRkc2FVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9lZGRzYSc7XG5cbmV4cG9ydCAqIGFzIEJhc2VUc3NVdGlscyBmcm9tICcuL2Jhc2VUU1NVdGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2VUeXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2FkZHJlc3NWZXJpZmljYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVIYXNoZWRTaWduYWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwaWVudFV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4va2V5U2hhcmVFbnZlbG9wZSc7XG5leHBvcnQgKiBmcm9tICcuL3NpZ25hYmxlQ29uc2lzdGVuY3knO1xuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
/** Version of the Safe MPC keyshare envelope that carries VRF material. */
|
|
3
|
+
export declare const SAFE_MPC_KEY_ENVELOPE_VERSION = 1;
|
|
4
|
+
export interface ParsedMpcV2KeyShare {
|
|
5
|
+
/** Serialized MPC signing keyshare (DKLS or MPS) or reduced signing keyshare. */
|
|
6
|
+
signingKeyShare: Buffer;
|
|
7
|
+
/** Serialized VRF keyshare, present in Safe-root envelopes. */
|
|
8
|
+
vrfKeyShare?: Buffer;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Combines a signing keyshare with a VRF keyshare into the Safe MPC CBOR envelope
|
|
12
|
+
* (`{ version, prvKeyShare, vrf }`). `envelope` wraps the full signing share for
|
|
13
|
+
* `encryptedPrv`. `reducedEnvelope` wraps the reduced signing share for
|
|
14
|
+
* `reducedEncryptedPrv`, which is what Safe keycards store.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildSafeMpcKeyEnvelopes(privateMaterial: Buffer, reducedPrivateMaterial: Buffer, vrfKeyShare: Buffer): {
|
|
17
|
+
envelope: Buffer;
|
|
18
|
+
reducedEnvelope: Buffer;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Parses a decrypted Safe MPC root blob produced by {@link buildSafeMpcKeyEnvelopes}.
|
|
22
|
+
* Throws if the blob is not a versioned envelope with both shares. Wallet-card recovery
|
|
23
|
+
* uses {@link parseMpcV2KeyShareEnvelope} instead, because legacy cards have no VRF share.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseSafeMpcKeyEnvelopes(decryptedBlob: string): {
|
|
26
|
+
signing: Buffer;
|
|
27
|
+
vrf: Buffer;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Parses decrypted MPCv2 key material from a wallet or Safe keycard.
|
|
31
|
+
*
|
|
32
|
+
* Legacy MPCv2 cards contain base64(CBOR ReducedKeyShare). Safe-root cards contain
|
|
33
|
+
* base64(CBOR({ version: 1, prvKeyShare, vrf })); the signing share remains reduced,
|
|
34
|
+
* while `vrf` is the complete serialized VrfKeyshare required by the VRF wasm API.
|
|
35
|
+
*
|
|
36
|
+
* The legacy path is intentionally retained because existing wallet cards do not have
|
|
37
|
+
* VRF material and must continue to recover as before.
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseMpcV2KeyShareEnvelope(decryptedKeyShare: string): ParsedMpcV2KeyShare;
|
|
40
|
+
//# sourceMappingURL=keyShareEnvelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyShareEnvelope.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/keyShareEnvelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,MAAM,EACvB,sBAAsB,EAAE,MAAM,EAC9B,WAAW,EAAE,MAAM,GAClB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAY/C;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAoBhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,GAAG,mBAAmB,CAkBzF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SAFE_MPC_KEY_ENVELOPE_VERSION = void 0;
|
|
4
|
+
exports.buildSafeMpcKeyEnvelopes = buildSafeMpcKeyEnvelopes;
|
|
5
|
+
exports.parseSafeMpcKeyEnvelopes = parseSafeMpcKeyEnvelopes;
|
|
6
|
+
exports.parseMpcV2KeyShareEnvelope = parseMpcV2KeyShareEnvelope;
|
|
7
|
+
const cbor_x_1 = require("cbor-x");
|
|
8
|
+
const buffer_1 = require("buffer");
|
|
9
|
+
/** Version of the Safe MPC keyshare envelope that carries VRF material. */
|
|
10
|
+
exports.SAFE_MPC_KEY_ENVELOPE_VERSION = 1;
|
|
11
|
+
function isRecord(value) {
|
|
12
|
+
return typeof value === 'object' && value !== null;
|
|
13
|
+
}
|
|
14
|
+
function isSafeMpcKeyEnvelope(value) {
|
|
15
|
+
return isRecord(value) && 'version' in value && 'prvKeyShare' in value && 'vrf' in value;
|
|
16
|
+
}
|
|
17
|
+
function asBuffer(value, field) {
|
|
18
|
+
if (!(value instanceof Uint8Array)) {
|
|
19
|
+
throw new Error(`Invalid MPC keyshare envelope: ${field} must be a byte string`);
|
|
20
|
+
}
|
|
21
|
+
return buffer_1.Buffer.from(value);
|
|
22
|
+
}
|
|
23
|
+
function tryDecodeCbor(decryptedKeyShare) {
|
|
24
|
+
const encoded = buffer_1.Buffer.from(decryptedKeyShare, 'base64');
|
|
25
|
+
try {
|
|
26
|
+
return { encoded, decoded: (0, cbor_x_1.decode)(encoded) };
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return { encoded, error };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Combines a signing keyshare with a VRF keyshare into the Safe MPC CBOR envelope
|
|
34
|
+
* (`{ version, prvKeyShare, vrf }`). `envelope` wraps the full signing share for
|
|
35
|
+
* `encryptedPrv`. `reducedEnvelope` wraps the reduced signing share for
|
|
36
|
+
* `reducedEncryptedPrv`, which is what Safe keycards store.
|
|
37
|
+
*/
|
|
38
|
+
function buildSafeMpcKeyEnvelopes(privateMaterial, reducedPrivateMaterial, vrfKeyShare) {
|
|
39
|
+
const envelope = (0, cbor_x_1.encode)({
|
|
40
|
+
version: exports.SAFE_MPC_KEY_ENVELOPE_VERSION,
|
|
41
|
+
prvKeyShare: new Uint8Array(privateMaterial),
|
|
42
|
+
vrf: new Uint8Array(vrfKeyShare),
|
|
43
|
+
});
|
|
44
|
+
const reducedEnvelope = (0, cbor_x_1.encode)({
|
|
45
|
+
version: exports.SAFE_MPC_KEY_ENVELOPE_VERSION,
|
|
46
|
+
prvKeyShare: new Uint8Array(reducedPrivateMaterial),
|
|
47
|
+
vrf: new Uint8Array(vrfKeyShare),
|
|
48
|
+
});
|
|
49
|
+
return { envelope: buffer_1.Buffer.from(envelope), reducedEnvelope: buffer_1.Buffer.from(reducedEnvelope) };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parses a decrypted Safe MPC root blob produced by {@link buildSafeMpcKeyEnvelopes}.
|
|
53
|
+
* Throws if the blob is not a versioned envelope with both shares. Wallet-card recovery
|
|
54
|
+
* uses {@link parseMpcV2KeyShareEnvelope} instead, because legacy cards have no VRF share.
|
|
55
|
+
*/
|
|
56
|
+
function parseSafeMpcKeyEnvelopes(decryptedBlob) {
|
|
57
|
+
const decoded = tryDecodeCbor(decryptedBlob);
|
|
58
|
+
if ('error' in decoded) {
|
|
59
|
+
const message = decoded.error instanceof Error ? decoded.error.message : String(decoded.error);
|
|
60
|
+
throw new Error(`Failed to decode safe MPC root key envelope: ${message}`);
|
|
61
|
+
}
|
|
62
|
+
if (!isSafeMpcKeyEnvelope(decoded.decoded)) {
|
|
63
|
+
throw new Error('Invalid safe MPC root key envelope: expected version, signing keyshare, and VRF keyshare');
|
|
64
|
+
}
|
|
65
|
+
const { version, prvKeyShare, vrf } = decoded.decoded;
|
|
66
|
+
if (version !== exports.SAFE_MPC_KEY_ENVELOPE_VERSION) {
|
|
67
|
+
throw new Error(`Unsupported safe MPC root key envelope version: ${String(version)}`);
|
|
68
|
+
}
|
|
69
|
+
if (!(prvKeyShare instanceof Uint8Array) || prvKeyShare.length === 0) {
|
|
70
|
+
throw new Error('Safe MPC root key envelope is missing a signing keyshare');
|
|
71
|
+
}
|
|
72
|
+
if (!(vrf instanceof Uint8Array) || vrf.length === 0) {
|
|
73
|
+
throw new Error('Safe MPC root key envelope is missing a VRF keyshare');
|
|
74
|
+
}
|
|
75
|
+
return { signing: buffer_1.Buffer.from(prvKeyShare), vrf: buffer_1.Buffer.from(vrf) };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Parses decrypted MPCv2 key material from a wallet or Safe keycard.
|
|
79
|
+
*
|
|
80
|
+
* Legacy MPCv2 cards contain base64(CBOR ReducedKeyShare). Safe-root cards contain
|
|
81
|
+
* base64(CBOR({ version: 1, prvKeyShare, vrf })); the signing share remains reduced,
|
|
82
|
+
* while `vrf` is the complete serialized VrfKeyshare required by the VRF wasm API.
|
|
83
|
+
*
|
|
84
|
+
* The legacy path is intentionally retained because existing wallet cards do not have
|
|
85
|
+
* VRF material and must continue to recover as before.
|
|
86
|
+
*/
|
|
87
|
+
function parseMpcV2KeyShareEnvelope(decryptedKeyShare) {
|
|
88
|
+
const decoded = tryDecodeCbor(decryptedKeyShare);
|
|
89
|
+
if ('error' in decoded) {
|
|
90
|
+
return { signingKeyShare: decoded.encoded };
|
|
91
|
+
}
|
|
92
|
+
if (!isRecord(decoded.decoded) || !('version' in decoded.decoded)) {
|
|
93
|
+
return { signingKeyShare: decoded.encoded };
|
|
94
|
+
}
|
|
95
|
+
if (decoded.decoded.version !== exports.SAFE_MPC_KEY_ENVELOPE_VERSION) {
|
|
96
|
+
throw new Error(`Unsupported MPC keyshare envelope version: ${String(decoded.decoded.version)}`);
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
signingKeyShare: asBuffer(decoded.decoded.prvKeyShare, 'prvKeyShare'),
|
|
100
|
+
vrfKeyShare: asBuffer(decoded.decoded.vrf, 'vrf'),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5U2hhcmVFbnZlbG9wZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3Mva2V5U2hhcmVFbnZlbG9wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtREEsNERBZ0JDO0FBT0QsNERBb0JDO0FBWUQsZ0VBa0JDO0FBNUhELG1DQUF3QztBQUN4QyxtQ0FBZ0M7QUFFaEMsMkVBQTJFO0FBQzlELFFBQUEsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDO0FBZS9DLFNBQVMsUUFBUSxDQUFDLEtBQWM7SUFDOUIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztBQUNyRCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFjO0lBQzFDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksYUFBYSxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDO0FBQzNGLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxLQUFjLEVBQUUsS0FBYTtJQUM3QyxJQUFJLENBQUMsQ0FBQyxLQUFLLFlBQVksVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxLQUFLLHdCQUF3QixDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUNELE9BQU8sZUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLGlCQUF5QjtJQUV6QixNQUFNLE9BQU8sR0FBRyxlQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELElBQUksQ0FBQztRQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUEsZUFBTSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUFDLE9BQU8s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LFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxxQ0FBNkIsRUFBRSxDQUFDO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsT0FBTztRQUNMLGVBQWUsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO1FBQ3JFLFdBQVcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDO0tBQ2xELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVjb2RlLCBlbmNvZGUgfSBmcm9tICdjYm9yLXgnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcblxuLyoqIFZlcnNpb24gb2YgdGhlIFNhZmUgTVBDIGtleXNoYXJlIGVudmVsb3BlIHRoYXQgY2FycmllcyBWUkYgbWF0ZXJpYWwuICovXG5leHBvcnQgY29uc3QgU0FGRV9NUENfS0VZX0VOVkVMT1BFX1ZFUlNJT04gPSAxO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZE1wY1YyS2V5U2hhcmUge1xuICAvKiogU2VyaWFsaXplZCBNUEMgc2lnbmluZyBrZXlzaGFyZSAoREtMUyBvciBNUFMpIG9yIHJlZHVjZWQgc2lnbmluZyBrZXlzaGFyZS4gKi9cbiAgc2lnbmluZ0tleVNoYXJlOiBCdWZmZXI7XG4gIC8qKiBTZXJpYWxpemVkIFZSRiBrZXlzaGFyZSwgcHJlc2VudCBpbiBTYWZlLXJvb3QgZW52ZWxvcGVzLiAqL1xuICB2cmZLZXlTaGFyZT86IEJ1ZmZlcjtcbn1cblxudHlwZSBTYWZlTXBjS2V5RW52ZWxvcGUgPSB7XG4gIHZlcnNpb246IHVua25vd247XG4gIHBydktleVNoYXJlOiB1bmtub3duO1xuICB2cmY6IHVua25vd247XG59O1xuXG5mdW5jdGlvbiBpc1JlY29yZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzU2FmZU1wY0tleUVudmVsb3BlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU2FmZU1wY0tleUVudmVsb3BlIHtcbiAgcmV0dXJuIGlzUmVjb3JkKHZhbHVlKSAmJiAndmVyc2lvbicgaW4gdmFsdWUgJiYgJ3BydktleVNoYXJlJyBpbiB2YWx1ZSAmJiAndnJmJyBpbiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gYXNCdWZmZXIodmFsdWU6IHVua25vd24sIGZpZWxkOiBzdHJpbmcpOiBCdWZmZXIge1xuICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIE1QQyBrZXlzaGFyZSBlbnZlbG9wZTogJHtmaWVsZH0gbXVzdCBiZSBhIGJ5dGUgc3RyaW5nYCk7XG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gdHJ5RGVjb2RlQ2JvcihcbiAgZGVjcnlwdGVkS2V5U2hhcmU6IHN0cmluZ1xuKTogeyBlbmNvZGVkOiBCdWZmZXI7IGRlY29kZWQ6IHVua25vd24gfSB8IHsgZW5jb2RlZDogQnVmZmVyOyBlcnJvcjogdW5rbm93biB9IHtcbiAgY29uc3QgZW5jb2RlZCA9IEJ1ZmZlci5mcm9tKGRlY3J5cHRlZEtleVNoYXJlLCAnYmFzZTY0Jyk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHsgZW5jb2RlZCwgZGVjb2RlZDogZGVjb2RlKGVuY29kZWQpIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHsgZW5jb2RlZCwgZXJyb3IgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvbWJpbmVzIGEgc2lnbmluZyBrZXlzaGFyZSB3aXRoIGEgVlJGIGtleXNoYXJlIGludG8gdGhlIFNhZmUgTVBDIENCT1IgZW52ZWxvcGVcbiAqIChgeyB2ZXJzaW9uLCBwcnZLZXlTaGFyZSwgdnJmIH1gKS4gYGVudmVsb3BlYCB3cmFwcyB0aGUgZnVsbCBzaWduaW5nIHNoYXJlIGZvclxuICogYGVuY3J5cHRlZFBydmAuIGByZWR1Y2VkRW52ZWxvcGVgIHdyYXBzIHRoZSByZWR1Y2VkIHNpZ25pbmcgc2hhcmUgZm9yXG4gKiBgcmVkdWNlZEVuY3J5cHRlZFBydmAsIHdoaWNoIGlzIHdoYXQgU2FmZSBrZXljYXJkcyBzdG9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2FmZU1wY0tleUVudmVsb3BlcyhcbiAgcHJpdmF0ZU1hdGVyaWFsOiBCdWZmZXIsXG4gIHJlZHVjZWRQcml2YXRlTWF0ZXJpYWw6IEJ1ZmZlcixcbiAgdnJmS2V5U2hhcmU6IEJ1ZmZlclxuKTogeyBlbnZlbG9wZTogQnVmZmVyOyByZWR1Y2VkRW52ZWxvcGU6IEJ1ZmZlciB9IHtcbiAgY29uc3QgZW52ZWxvcGUgPSBlbmNvZGUoe1xuICAgIHZlcnNpb246IFNBRkVfTVBDX0tFWV9FTlZFTE9QRV9WRVJTSU9OLFxuICAgIHBydktleVNoYXJlOiBuZXcgVWludDhBcnJheShwcml2YXRlTWF0ZXJpYWwpLFxuICAgIHZyZjogbmV3IFVpbnQ4QXJyYXkodnJmS2V5U2hhcmUpLFxuICB9KTtcbiAgY29uc3QgcmVkdWNlZEVudmVsb3BlID0gZW5jb2RlKHtcbiAgICB2ZXJzaW9uOiBTQUZFX01QQ19LRVlfRU5WRUxPUEVfVkVSU0lPTixcbiAgICBwcnZLZXlTaGFyZTogbmV3IFVpbnQ4QXJyYXkocmVkdWNlZFByaXZhdGVNYXRlcmlhbCksXG4gICAgdnJmOiBuZXcgVWludDhBcnJheSh2cmZLZXlTaGFyZSksXG4gIH0pO1xuICByZXR1cm4geyBlbnZlbG9wZTogQnVmZmVyLmZyb20oZW52ZWxvcGUpLCByZWR1Y2VkRW52ZWxvcGU6IEJ1ZmZlci5mcm9tKHJlZHVjZWRFbnZlbG9wZSkgfTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBkZWNyeXB0ZWQgU2FmZSBNUEMgcm9vdCBibG9iIHByb2R1Y2VkIGJ5IHtAbGluayBidWlsZFNhZmVNcGNLZXlFbnZlbG9wZXN9LlxuICogVGhyb3dzIGlmIHRoZSBibG9iIGlzIG5vdCBhIHZlcnNpb25lZCBlbnZlbG9wZSB3aXRoIGJvdGggc2hhcmVzLiBXYWxsZXQtY2FyZCByZWNvdmVyeVxuICogdXNlcyB7QGxpbmsgcGFyc2VNcGNWMktleVNoYXJlRW52ZWxvcGV9IGluc3RlYWQsIGJlY2F1c2UgbGVnYWN5IGNhcmRzIGhhdmUgbm8gVlJGIHNoYXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYWZlTXBjS2V5RW52ZWxvcGVzKGRlY3J5cHRlZEJsb2I6IHN0cmluZyk6IHsgc2lnbmluZzogQnVmZmVyOyB2cmY6IEJ1ZmZlciB9IHtcbiAgY29uc3QgZGVjb2RlZCA9IHRyeURlY29kZUNib3IoZGVjcnlwdGVkQmxvYik7XG4gIGlmICgnZXJyb3InIGluIGRlY29kZWQpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZGVjb2RlZC5lcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZGVjb2RlZC5lcnJvci5tZXNzYWdlIDogU3RyaW5nKGRlY29kZWQuZXJyb3IpO1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlY29kZSBzYWZlIE1QQyByb290IGtleSBlbnZlbG9wZTogJHttZXNzYWdlfWApO1xuICB9XG4gIGlmICghaXNTYWZlTXBjS2V5RW52ZWxvcGUoZGVjb2RlZC5kZWNvZGVkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzYWZlIE1QQyByb290IGtleSBlbnZlbG9wZTogZXhwZWN0ZWQgdmVyc2lvbiwgc2lnbmluZyBrZXlzaGFyZSwgYW5kIFZSRiBrZXlzaGFyZScpO1xuICB9XG4gIGNvbnN0IHsgdmVyc2lvbiwgcHJ2S2V5U2hhcmUsIHZyZiB9ID0gZGVjb2RlZC5kZWNvZGVkO1xuICBpZiAodmVyc2lvbiAhPT0gU0FGRV9NUENfS0VZX0VOVkVMT1BFX1ZFUlNJT04pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNhZmUgTVBDIHJvb3Qga2V5IGVudmVsb3BlIHZlcnNpb246ICR7U3RyaW5nKHZlcnNpb24pfWApO1xuICB9XG4gIGlmICghKHBydktleVNoYXJlIGluc3RhbmNlb2YgVWludDhBcnJheSkgfHwgcHJ2S2V5U2hhcmUubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTYWZlIE1QQyByb290IGtleSBlbnZlbG9wZSBpcyBtaXNzaW5nIGEgc2lnbmluZyBrZXlzaGFyZScpO1xuICB9XG4gIGlmICghKHZyZiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHx8IHZyZi5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NhZmUgTVBDIHJvb3Qga2V5IGVudmVsb3BlIGlzIG1pc3NpbmcgYSBWUkYga2V5c2hhcmUnKTtcbiAgfVxuICByZXR1cm4geyBzaWduaW5nOiBCdWZmZXIuZnJvbShwcnZLZXlTaGFyZSksIHZyZjogQnVmZmVyLmZyb20odnJmKSB9O1xufVxuXG4vKipcbiAqIFBhcnNlcyBkZWNyeXB0ZWQgTVBDdjIga2V5IG1hdGVyaWFsIGZyb20gYSB3YWxsZXQgb3IgU2FmZSBrZXljYXJkLlxuICpcbiAqIExlZ2FjeSBNUEN2MiBjYXJkcyBjb250YWluIGJhc2U2NChDQk9SIFJlZHVjZWRLZXlTaGFyZSkuIFNhZmUtcm9vdCBjYXJkcyBjb250YWluXG4gKiBiYXNlNjQoQ0JPUih7IHZlcnNpb246IDEsIHBydktleVNoYXJlLCB2cmYgfSkpOyB0aGUgc2lnbmluZyBzaGFyZSByZW1haW5zIHJlZHVjZWQsXG4gKiB3aGlsZSBgdnJmYCBpcyB0aGUgY29tcGxldGUgc2VyaWFsaXplZCBWcmZLZXlzaGFyZSByZXF1aXJlZCBieSB0aGUgVlJGIHdhc20gQVBJLlxuICpcbiAqIFRoZSBsZWdhY3kgcGF0aCBpcyBpbnRlbnRpb25hbGx5IHJldGFpbmVkIGJlY2F1c2UgZXhpc3Rpbmcgd2FsbGV0IGNhcmRzIGRvIG5vdCBoYXZlXG4gKiBWUkYgbWF0ZXJpYWwgYW5kIG11c3QgY29udGludWUgdG8gcmVjb3ZlciBhcyBiZWZvcmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU1wY1YyS2V5U2hhcmVFbnZlbG9wZShkZWNyeXB0ZWRLZXlTaGFyZTogc3RyaW5nKTogUGFyc2VkTXBjVjJLZXlTaGFyZSB7XG4gIGNvbnN0IGRlY29kZWQgPSB0cnlEZWNvZGVDYm9yKGRlY3J5cHRlZEtleVNoYXJlKTtcbiAgaWYgKCdlcnJvcicgaW4gZGVjb2RlZCkge1xuICAgIHJldHVybiB7IHNpZ25pbmdLZXlTaGFyZTogZGVjb2RlZC5lbmNvZGVkIH07XG4gIH1cblxuICBpZiAoIWlzUmVjb3JkKGRlY29kZWQuZGVjb2RlZCkgfHwgISgndmVyc2lvbicgaW4gZGVjb2RlZC5kZWNvZGVkKSkge1xuICAgIHJldHVybiB7IHNpZ25pbmdLZXlTaGFyZTogZGVjb2RlZC5lbmNvZGVkIH07XG4gIH1cblxuICBpZiAoZGVjb2RlZC5kZWNvZGVkLnZlcnNpb24gIT09IFNBRkVfTVBDX0tFWV9FTlZFTE9QRV9WRVJTSU9OKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBNUEMga2V5c2hhcmUgZW52ZWxvcGUgdmVyc2lvbjogJHtTdHJpbmcoZGVjb2RlZC5kZWNvZGVkLnZlcnNpb24pfWApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzaWduaW5nS2V5U2hhcmU6IGFzQnVmZmVyKGRlY29kZWQuZGVjb2RlZC5wcnZLZXlTaGFyZSwgJ3BydktleVNoYXJlJyksXG4gICAgdnJmS2V5U2hhcmU6IGFzQnVmZmVyKGRlY29kZWQuZGVjb2RlZC52cmYsICd2cmYnKSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IBaseCoin } from '../../baseCoin';
|
|
2
|
+
import { SignableTransaction } from './baseTypes';
|
|
3
|
+
export interface CoinWithPreHashedSignable {
|
|
4
|
+
/**
|
|
5
|
+
* Returns true when the signableHex for this transaction is already the
|
|
6
|
+
* final signing hash (SHA-256 for Avalanche atomic txs), and the MPC
|
|
7
|
+
* signing flow should use it directly without additional hashing.
|
|
8
|
+
*/
|
|
9
|
+
isSignablePreHashed(unsignedTx: SignableTransaction): boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function isCoinWithPreHashedSignable(coin: unknown): coin is CoinWithPreHashedSignable;
|
|
12
|
+
/**
|
|
13
|
+
* Detect Avalanche atomic cross-chain transactions by codec prefix.
|
|
14
|
+
*
|
|
15
|
+
* Avalanche codec type IDs start with 0x00000000 (first 4 hex chars = '0000').
|
|
16
|
+
* Standard EVM RLP encoding starts with 0xf8xx — overlap is currently impossible.
|
|
17
|
+
*
|
|
18
|
+
* Note: The WP strips the '0x' prefix from serializedTxHex before storing,
|
|
19
|
+
* so we check for '0000' not '0x0000'.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isAvalancheAtomicTx(unsignedTx: SignableTransaction): boolean;
|
|
22
|
+
export declare function shouldUsePreHashedSignable(coin: IBaseCoin, unsignedTx: SignableTransaction): boolean;
|
|
23
|
+
//# sourceMappingURL=preHashedSignable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preHashedSignable.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/preHashedSignable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC;CAC/D;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,yBAAyB,CAM5F;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAE5E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAEpG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCoinWithPreHashedSignable = isCoinWithPreHashedSignable;
|
|
4
|
+
exports.isAvalancheAtomicTx = isAvalancheAtomicTx;
|
|
5
|
+
exports.shouldUsePreHashedSignable = shouldUsePreHashedSignable;
|
|
6
|
+
function isCoinWithPreHashedSignable(coin) {
|
|
7
|
+
return (coin !== null &&
|
|
8
|
+
typeof coin === 'object' &&
|
|
9
|
+
typeof coin.isSignablePreHashed === 'function');
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Detect Avalanche atomic cross-chain transactions by codec prefix.
|
|
13
|
+
*
|
|
14
|
+
* Avalanche codec type IDs start with 0x00000000 (first 4 hex chars = '0000').
|
|
15
|
+
* Standard EVM RLP encoding starts with 0xf8xx — overlap is currently impossible.
|
|
16
|
+
*
|
|
17
|
+
* Note: The WP strips the '0x' prefix from serializedTxHex before storing,
|
|
18
|
+
* so we check for '0000' not '0x0000'.
|
|
19
|
+
*/
|
|
20
|
+
function isAvalancheAtomicTx(unsignedTx) {
|
|
21
|
+
return unsignedTx.serializedTxHex.startsWith('0000');
|
|
22
|
+
}
|
|
23
|
+
function shouldUsePreHashedSignable(coin, unsignedTx) {
|
|
24
|
+
return isCoinWithPreHashedSignable(coin) && coin.isSignablePreHashed(unsignedTx);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlSGFzaGVkU2lnbmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL3ByZUhhc2hlZFNpZ25hYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsa0VBTUM7QUFXRCxrREFFQztBQUVELGdFQUVDO0FBdkJELFNBQWdCLDJCQUEyQixDQUFDLElBQWE7SUFDdkQsT0FBTyxDQUNMLElBQUksS0FBSyxJQUFJO1FBQ2IsT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixPQUFRLElBQWtDLENBQUMsbUJBQW1CLEtBQUssVUFBVSxDQUM5RSxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsVUFBK0I7SUFDakUsT0FBTyxVQUFVLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsSUFBZSxFQUFFLFVBQStCO0lBQ3pGLE9BQU8sMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuLi8uLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBTaWduYWJsZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9iYXNlVHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5XaXRoUHJlSGFzaGVkU2lnbmFibGUge1xuICAvKipcbiAgICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHNpZ25hYmxlSGV4IGZvciB0aGlzIHRyYW5zYWN0aW9uIGlzIGFscmVhZHkgdGhlXG4gICAqIGZpbmFsIHNpZ25pbmcgaGFzaCAoU0hBLTI1NiBmb3IgQXZhbGFuY2hlIGF0b21pYyB0eHMpLCBhbmQgdGhlIE1QQ1xuICAgKiBzaWduaW5nIGZsb3cgc2hvdWxkIHVzZSBpdCBkaXJlY3RseSB3aXRob3V0IGFkZGl0aW9uYWwgaGFzaGluZy5cbiAgICovXG4gIGlzU2lnbmFibGVQcmVIYXNoZWQodW5zaWduZWRUeDogU2lnbmFibGVUcmFuc2FjdGlvbik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvaW5XaXRoUHJlSGFzaGVkU2lnbmFibGUoY29pbjogdW5rbm93bik6IGNvaW4gaXMgQ29pbldpdGhQcmVIYXNoZWRTaWduYWJsZSB7XG4gIHJldHVybiAoXG4gICAgY29pbiAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiBjb2luID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiAoY29pbiBhcyBDb2luV2l0aFByZUhhc2hlZFNpZ25hYmxlKS5pc1NpZ25hYmxlUHJlSGFzaGVkID09PSAnZnVuY3Rpb24nXG4gICk7XG59XG5cbi8qKlxuICogRGV0ZWN0IEF2YWxhbmNoZSBhdG9taWMgY3Jvc3MtY2hhaW4gdHJhbnNhY3Rpb25zIGJ5IGNvZGVjIHByZWZpeC5cbiAqXG4gKiBBdmFsYW5jaGUgY29kZWMgdHlwZSBJRHMgc3RhcnQgd2l0aCAweDAwMDAwMDAwIChmaXJzdCA0IGhleCBjaGFycyA9ICcwMDAwJykuXG4gKiBTdGFuZGFyZCBFVk0gUkxQIGVuY29kaW5nIHN0YXJ0cyB3aXRoIDB4Zjh4eCDigJQgb3ZlcmxhcCBpcyBjdXJyZW50bHkgaW1wb3NzaWJsZS5cbiAqXG4gKiBOb3RlOiBUaGUgV1Agc3RyaXBzIHRoZSAnMHgnIHByZWZpeCBmcm9tIHNlcmlhbGl6ZWRUeEhleCBiZWZvcmUgc3RvcmluZyxcbiAqIHNvIHdlIGNoZWNrIGZvciAnMDAwMCcgbm90ICcweDAwMDAnLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBdmFsYW5jaGVBdG9taWNUeCh1bnNpZ25lZFR4OiBTaWduYWJsZVRyYW5zYWN0aW9uKTogYm9vbGVhbiB7XG4gIHJldHVybiB1bnNpZ25lZFR4LnNlcmlhbGl6ZWRUeEhleC5zdGFydHNXaXRoKCcwMDAwJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRVc2VQcmVIYXNoZWRTaWduYWJsZShjb2luOiBJQmFzZUNvaW4sIHVuc2lnbmVkVHg6IFNpZ25hYmxlVHJhbnNhY3Rpb24pOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzQ29pbldpdGhQcmVIYXNoZWRTaWduYWJsZShjb2luKSAmJiBjb2luLmlzU2lnbmFibGVQcmVIYXNoZWQodW5zaWduZWRUeCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TransactionParams } from '../../baseCoin';
|
|
2
|
+
import { TxRequest } from './baseTypes';
|
|
3
|
+
/**
|
|
4
|
+
* Transaction types that legitimately carry no explicit recipients.
|
|
5
|
+
* These are the intentType strings as stored in TxRequest.intent.intentType by WP.
|
|
6
|
+
* verifyTransaction handles no-recipient validation for these internally.
|
|
7
|
+
* Mirrors the bypass list in abstractEthLikeNewCoins.ts verifyTssTransaction.
|
|
8
|
+
*
|
|
9
|
+
* ECDSA types: acceleration, fillNonce, transferToken, tokenApproval, consolidate,
|
|
10
|
+
* bridgeFunds, enableToken, customTx, wrapApprove, wrap, unwrap,
|
|
11
|
+
* finalizeUnwrap, contractCall
|
|
12
|
+
* BSC/BNB delegation-based staking: delegate, undelegate, switchValidator
|
|
13
|
+
* CELO/ETH lock-based staking: stake, unstake, stakeWithCallData, unstakeWithCallData,
|
|
14
|
+
* transferStake, increaseStake, goUnstake
|
|
15
|
+
* Claim rewards (BSC, CELO — TRX/SOL use EdDSA and are unaffected): claim, stakeClaimRewards
|
|
16
|
+
*/
|
|
17
|
+
export declare const NO_RECIPIENT_TX_TYPES: Set<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Resolves the effective txParams for TSS signing recipient verification.
|
|
20
|
+
*
|
|
21
|
+
* For smart contract interactions, recipients live in txRequest.intent.recipients
|
|
22
|
+
* (native amount = 0, so buildParams is empty). Falls back to intent recipients
|
|
23
|
+
* mapped to ITransactionRecipient shape when txParams.recipients is absent.
|
|
24
|
+
*
|
|
25
|
+
* tokenName is derived from tokenData.tokenName when present, otherwise from
|
|
26
|
+
* amount.symbol when chainName is provided and symbol differs from it.
|
|
27
|
+
*
|
|
28
|
+
* Staking intents (BSC delegate/undelegate, CELO stake/unstake, etc.) are
|
|
29
|
+
* identified generically by the presence of `stakingRequestId` on the intent —
|
|
30
|
+
* a required field on BaseStakeIntent in @bitgo/public-types. These intents
|
|
31
|
+
* have no txParams recipients by design; validation is done at the coin layer.
|
|
32
|
+
*
|
|
33
|
+
* Throws InvalidTransactionError if no recipients can be resolved and the
|
|
34
|
+
* transaction is not a known no-recipient type.
|
|
35
|
+
*
|
|
36
|
+
* @param txRequest - the transaction request containing the persisted intent
|
|
37
|
+
* @param txParams - the caller-supplied transaction parameters (may be undefined)
|
|
38
|
+
* @param chainName - the base chain name (e.g. 'sol', 'tsol') used to exclude
|
|
39
|
+
* native-coin transfers from tokenName; pass baseCoin.getChain()
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveEffectiveTxParams(txRequest: TxRequest, txParams: TransactionParams | undefined, chainName?: string): TransactionParams;
|
|
42
|
+
//# sourceMappingURL=recipientUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipientUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/recipientUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAmB,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,aAsFhC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,MAAM,GACjB,iBAAiB,CA0DnB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NO_RECIPIENT_TX_TYPES = void 0;
|
|
4
|
+
exports.resolveEffectiveTxParams = resolveEffectiveTxParams;
|
|
5
|
+
const errors_1 = require("../../errors");
|
|
6
|
+
/**
|
|
7
|
+
* Transaction types that legitimately carry no explicit recipients.
|
|
8
|
+
* These are the intentType strings as stored in TxRequest.intent.intentType by WP.
|
|
9
|
+
* verifyTransaction handles no-recipient validation for these internally.
|
|
10
|
+
* Mirrors the bypass list in abstractEthLikeNewCoins.ts verifyTssTransaction.
|
|
11
|
+
*
|
|
12
|
+
* ECDSA types: acceleration, fillNonce, transferToken, tokenApproval, consolidate,
|
|
13
|
+
* bridgeFunds, enableToken, customTx, wrapApprove, wrap, unwrap,
|
|
14
|
+
* finalizeUnwrap, contractCall
|
|
15
|
+
* BSC/BNB delegation-based staking: delegate, undelegate, switchValidator
|
|
16
|
+
* CELO/ETH lock-based staking: stake, unstake, stakeWithCallData, unstakeWithCallData,
|
|
17
|
+
* transferStake, increaseStake, goUnstake
|
|
18
|
+
* Claim rewards (BSC, CELO — TRX/SOL use EdDSA and are unaffected): claim, stakeClaimRewards
|
|
19
|
+
*/
|
|
20
|
+
exports.NO_RECIPIENT_TX_TYPES = new Set([
|
|
21
|
+
// ECDSA types
|
|
22
|
+
'acceleration',
|
|
23
|
+
'fillNonce',
|
|
24
|
+
'transferToken',
|
|
25
|
+
'tokenApproval',
|
|
26
|
+
'consolidate',
|
|
27
|
+
'bridgeFunds',
|
|
28
|
+
'enableToken',
|
|
29
|
+
'enabletoken',
|
|
30
|
+
'disableToken',
|
|
31
|
+
'disabletoken',
|
|
32
|
+
'customTx',
|
|
33
|
+
// DeFi vault operations — recipients/calldata built server-side from defiParams
|
|
34
|
+
'defiApprove',
|
|
35
|
+
'defiDeposit',
|
|
36
|
+
'defiWithdraw',
|
|
37
|
+
// Native wrap/unwrap (WETH9 deposit()/withdraw()) — calldata and the WETH9
|
|
38
|
+
// address are resolved server-side from the vault binding, so no recipients.
|
|
39
|
+
// Registered in BOTH spellings on purpose: this set is matched against
|
|
40
|
+
// txParams.type, which is buildParams.type (camelCase, from wallet.sendMany),
|
|
41
|
+
// AND against intent.intentType (kebab-case, as WP persists it). Signing paths
|
|
42
|
+
// that carry no txParams — notably pendingApproval.approve() →
|
|
43
|
+
// recreateTxRequest() → signTxRequest() with no txParams — only ever see the
|
|
44
|
+
// kebab-case spelling.
|
|
45
|
+
'wrapNative',
|
|
46
|
+
'wrap-native',
|
|
47
|
+
'unwrapNative',
|
|
48
|
+
'unwrap-native',
|
|
49
|
+
// ERC-7984 shield/unshield: approve/wrap/unwrap calldata is built server-side from the
|
|
50
|
+
// intent, and finalizeUnwrap txnReqs are WP-created at READY_TO_FINALIZE (client signs
|
|
51
|
+
// only) — none carry SDK-level recipients.
|
|
52
|
+
'wrapApprove',
|
|
53
|
+
'wrap',
|
|
54
|
+
'unwrap',
|
|
55
|
+
'finalizeUnwrap',
|
|
56
|
+
// Smart contract invocations with no explicit SDK-level recipients
|
|
57
|
+
'contractCall',
|
|
58
|
+
// BSC/BNB delegation-based staking — intentType strings from TxRequest.intent.intentType.
|
|
59
|
+
// Note: SOL solDelegateIntent also uses intentType "delegate".
|
|
60
|
+
'delegate',
|
|
61
|
+
'undelegate',
|
|
62
|
+
'switchValidator',
|
|
63
|
+
// CELO/ETH lock-based staking
|
|
64
|
+
'stake',
|
|
65
|
+
'unstake',
|
|
66
|
+
'stakeWithCallData',
|
|
67
|
+
'unstakeWithCallData',
|
|
68
|
+
'transferStake',
|
|
69
|
+
'increaseStake',
|
|
70
|
+
'goUnstake',
|
|
71
|
+
// Claim rewards — BSC and CELO (TRX/SOL/Cosmos use EdDSA, not affected by this guard)
|
|
72
|
+
'claim',
|
|
73
|
+
'stakeClaimRewards',
|
|
74
|
+
'createAccount',
|
|
75
|
+
// Canton operations with no SDK-level recipients. Canton.verifyTransaction validates these from the transaction itself.
|
|
76
|
+
'transferAccept',
|
|
77
|
+
'transferReject',
|
|
78
|
+
'transferOfferWithdrawn',
|
|
79
|
+
'cosignDelegationAccept',
|
|
80
|
+
'allocationAllocate',
|
|
81
|
+
'allocationOfferWithdrawn',
|
|
82
|
+
'cantonCommand',
|
|
83
|
+
'cantonEndInvestorOnboardingOffer',
|
|
84
|
+
'cantonEndInvestorOnboardingAccept',
|
|
85
|
+
'cantonEndInvestorOnboardingReject',
|
|
86
|
+
'cantonParticipantOnboardingRequest',
|
|
87
|
+
'pledge',
|
|
88
|
+
// Avalanche / Flare cross-chain atomic imports — recipients are not supplied
|
|
89
|
+
// by the client because the import consumes UTXOs already owned by the
|
|
90
|
+
// wallet; the destination address is the wallet itself. WP issues these
|
|
91
|
+
// with intentType 'import' (P-chain) or 'importtoc' (C-chain).
|
|
92
|
+
'import',
|
|
93
|
+
'importtoc',
|
|
94
|
+
// SOL: deactivate stake account — no on-chain transfer recipient.
|
|
95
|
+
'deactivate',
|
|
96
|
+
// SOL: authorize stake account — no transfer recipient.
|
|
97
|
+
'authorize',
|
|
98
|
+
]);
|
|
99
|
+
/**
|
|
100
|
+
* Resolves the effective txParams for TSS signing recipient verification.
|
|
101
|
+
*
|
|
102
|
+
* For smart contract interactions, recipients live in txRequest.intent.recipients
|
|
103
|
+
* (native amount = 0, so buildParams is empty). Falls back to intent recipients
|
|
104
|
+
* mapped to ITransactionRecipient shape when txParams.recipients is absent.
|
|
105
|
+
*
|
|
106
|
+
* tokenName is derived from tokenData.tokenName when present, otherwise from
|
|
107
|
+
* amount.symbol when chainName is provided and symbol differs from it.
|
|
108
|
+
*
|
|
109
|
+
* Staking intents (BSC delegate/undelegate, CELO stake/unstake, etc.) are
|
|
110
|
+
* identified generically by the presence of `stakingRequestId` on the intent —
|
|
111
|
+
* a required field on BaseStakeIntent in @bitgo/public-types. These intents
|
|
112
|
+
* have no txParams recipients by design; validation is done at the coin layer.
|
|
113
|
+
*
|
|
114
|
+
* Throws InvalidTransactionError if no recipients can be resolved and the
|
|
115
|
+
* transaction is not a known no-recipient type.
|
|
116
|
+
*
|
|
117
|
+
* @param txRequest - the transaction request containing the persisted intent
|
|
118
|
+
* @param txParams - the caller-supplied transaction parameters (may be undefined)
|
|
119
|
+
* @param chainName - the base chain name (e.g. 'sol', 'tsol') used to exclude
|
|
120
|
+
* native-coin transfers from tokenName; pass baseCoin.getChain()
|
|
121
|
+
*/
|
|
122
|
+
function resolveEffectiveTxParams(txRequest, txParams, chainName) {
|
|
123
|
+
const intentRecipients = txRequest.intent?.recipients?.map((intentRecipient) => {
|
|
124
|
+
// Prefer tokenData.tokenName; fall back to amount.symbol when chainName is
|
|
125
|
+
// provided and differs from it. When absent, skip the symbol fallback.
|
|
126
|
+
const { symbol } = intentRecipient.amount;
|
|
127
|
+
const tokenName = intentRecipient.tokenData?.tokenName ||
|
|
128
|
+
(chainName !== undefined && symbol && symbol !== chainName ? symbol : undefined);
|
|
129
|
+
return {
|
|
130
|
+
address: intentRecipient.address.address,
|
|
131
|
+
amount: intentRecipient.amount.value,
|
|
132
|
+
data: intentRecipient.data,
|
|
133
|
+
...(tokenName && { tokenName }),
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
const effectiveTxParams = {
|
|
137
|
+
...txParams,
|
|
138
|
+
recipients: txParams?.recipients?.length ? txParams.recipients : intentRecipients,
|
|
139
|
+
};
|
|
140
|
+
// Fall back to intent.intentType when txParams.type is not explicitly set.
|
|
141
|
+
// Staking wallets call signTransaction without txParams, so the type lives only in the intent.
|
|
142
|
+
const txType = effectiveTxParams.type ?? txRequest.intent?.intentType ?? '';
|
|
143
|
+
// Propagate the resolved type so downstream callers
|
|
144
|
+
if (!effectiveTxParams.type && txType) {
|
|
145
|
+
effectiveTxParams.type = txType;
|
|
146
|
+
}
|
|
147
|
+
// Propagate stakingRequestId from intent into effectiveTxParams so verifyTssTransaction
|
|
148
|
+
// overrides can bypass the no-recipient guard without needing access to txRequest directly.
|
|
149
|
+
const intentStakingRequestId = txRequest.intent?.stakingRequestId;
|
|
150
|
+
if (intentStakingRequestId && !effectiveTxParams.stakingRequestId) {
|
|
151
|
+
effectiveTxParams.stakingRequestId = intentStakingRequestId;
|
|
152
|
+
}
|
|
153
|
+
// All staking intents (BSC delegate/undelegate, CELO stake/unstake, etc.) carry
|
|
154
|
+
// stakingRequestId as a required field on BaseStakeIntent (@bitgo/public-types).
|
|
155
|
+
// Use its presence as a generic staking signal — no need to enumerate every intentType.
|
|
156
|
+
const isStakingIntent = !!txRequest.intent?.stakingRequestId;
|
|
157
|
+
// buildParams.type from the wallet UI is PascalCase ('Import'); intent.intentType from WP
|
|
158
|
+
// is lowercase ('import'). Either may be the source of truth depending on the signing path.
|
|
159
|
+
const intentType = txRequest.intent?.intentType ?? '';
|
|
160
|
+
if (!effectiveTxParams.recipients?.length &&
|
|
161
|
+
!isStakingIntent &&
|
|
162
|
+
!exports.NO_RECIPIENT_TX_TYPES.has(txType) &&
|
|
163
|
+
!exports.NO_RECIPIENT_TX_TYPES.has(intentType)) {
|
|
164
|
+
throw new errors_1.InvalidTransactionError('Recipient details are required to verify this transaction before signing. Pass txParams with at least one recipient.');
|
|
165
|
+
}
|
|
166
|
+
return effectiveTxParams;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL3JlY2lwaWVudFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlJQSw0REE4REM7QUE5TEQseUNBQXVEO0FBR3ZEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDVSxRQUFBLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNDLGNBQWM7SUFDZCxjQUFjO0lBQ2QsV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0lBQ2YsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtJQUNiLGNBQWM7SUFDZCxjQUFjO0lBQ2QsVUFBVTtJQUNWLGdGQUFnRjtJQUNoRixhQUFhO0lBQ2IsYUFBYTtJQUNiLGNBQWM7SUFDZCwyRUFBMkU7SUFDM0UsNkVBQTZFO0lBQzdFLHVFQUF1RTtJQUN2RSw4RUFBOEU7SUFDOUUsK0VBQStFO0lBQy9FLCtEQUErRDtJQUMvRCw2RUFBNkU7SUFDN0UsdUJBQXVCO0lBQ3ZCLFlBQVk7SUFDWixhQUFhO0lBQ2IsY0FBYztJQUNkLGVBQWU7SUFDZix1RkFBdUY7SUFDdkYsdUZBQXVGO0lBQ3ZGLDJDQUEyQztJQUMzQyxhQUFhO0lBQ2IsTUFBTTtJQUNOLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsbUVBQW1FO0lBQ25FLGNBQWM7SUFFZCwwRkFBMEY7SUFDMUYsK0RBQStEO0lBQy9ELFVBQVU7SUFDVixZQUFZO0lBQ1osaUJBQWlCO0lBRWpCLDhCQUE4QjtJQUM5QixPQUFPO0lBQ1AsU0FBUztJQUNULG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsZUFBZTtJQUNmLGVBQWU7SUFDZixXQUFXO0lBRVgsc0ZBQXNGO0lBQ3RGLE9BQU87SUFDUCxtQkFBbUI7SUFFbkIsZUFBZTtJQUNmLHdIQUF3SDtJQUN4SCxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4Qix3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LE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHsgUG9wdWxhdGVkSW50ZW50LCBUeFJlcXVlc3QgfSBmcm9tICcuL2Jhc2VUeXBlcyc7XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gdHlwZXMgdGhhdCBsZWdpdGltYXRlbHkgY2Fycnkgbm8gZXhwbGljaXQgcmVjaXBpZW50cy5cbiAqIFRoZXNlIGFyZSB0aGUgaW50ZW50VHlwZSBzdHJpbmdzIGFzIHN0b3JlZCBpbiBUeFJlcXVlc3QuaW50ZW50LmludGVudFR5cGUgYnkgV1AuXG4gKiB2ZXJpZnlUcmFuc2FjdGlvbiBoYW5kbGVzIG5vLXJlY2lwaWVudCB2YWxpZGF0aW9uIGZvciB0aGVzZSBpbnRlcm5hbGx5LlxuICogTWlycm9ycyB0aGUgYnlwYXNzIGxpc3QgaW4gYWJzdHJhY3RFdGhMaWtlTmV3Q29pbnMudHMgdmVyaWZ5VHNzVHJhbnNhY3Rpb24uXG4gKlxuICogRUNEU0EgdHlwZXM6IGFjY2VsZXJhdGlvbiwgZmlsbE5vbmNlLCB0cmFuc2ZlclRva2VuLCB0b2tlbkFwcHJvdmFsLCBjb25zb2xpZGF0ZSxcbiAqICAgICAgICAgICAgICBicmlkZ2VGdW5kcywgZW5hYmxlVG9rZW4sIGN1c3RvbVR4LCB3cmFwQXBwcm92ZSwgd3JhcCwgdW53cmFwLFxuICogICAgICAgICAgICAgIGZpbmFsaXplVW53cmFwLCBjb250cmFjdENhbGxcbiAqIEJTQy9CTkIgZGVsZWdhdGlvbi1iYXNlZCBzdGFraW5nOiBkZWxlZ2F0ZSwgdW5kZWxlZ2F0ZSwgc3dpdGNoVmFsaWRhdG9yXG4gKiBDRUxPL0VUSCBsb2NrLWJhc2VkIHN0YWtpbmc6IHN0YWtlLCB1bnN0YWtlLCBzdGFrZVdpdGhDYWxsRGF0YSwgdW5zdGFrZVdpdGhDYWxsRGF0YSxcbiAqICAgICAgICAgICAgICB0cmFuc2ZlclN0YWtlLCBpbmNyZWFzZVN0YWtlLCBnb1Vuc3Rha2VcbiAqIENsYWltIHJld2FyZHMgKEJTQywgQ0VMTyDigJQgVFJYL1NPTCB1c2UgRWREU0EgYW5kIGFyZSB1bmFmZmVjdGVkKTogY2xhaW0sIHN0YWtlQ2xhaW1SZXdhcmRzXG4gKi9cbmV4cG9ydCBjb25zdCBOT19SRUNJUElFTlRfVFhfVFlQRVMgPSBuZXcgU2V0KFtcbiAgLy8gRUNEU0EgdHlwZXNcbiAgJ2FjY2VsZXJhdGlvbicsXG4gICdmaWxsTm9uY2UnLFxuICAndHJhbnNmZXJUb2tlbicsXG4gICd0b2tlbkFwcHJvdmFsJyxcbiAgJ2NvbnNvbGlkYXRlJyxcbiAgJ2JyaWRnZUZ1bmRzJyxcbiAgJ2VuYWJsZVRva2VuJyxcbiAgJ2VuYWJsZXRva2VuJyxcbiAgJ2Rpc2FibGVUb2tlbicsXG4gICdkaXNhYmxldG9rZW4nLFxuICAnY3VzdG9tVHgnLFxuICAvLyBEZUZpIHZhdWx0IG9wZXJhdGlvbnMg4oCUIHJlY2lwaWVudHMvY2FsbGRhdGEgYnVpbHQgc2VydmVyLXNpZGUgZnJvbSBkZWZpUGFyYW1zXG4gICdkZWZpQXBwcm92ZScsXG4gICdkZWZpRGVwb3NpdCcsXG4gICdkZWZpV2l0aGRyYXcnLFxuICAvLyBOYXRpdmUgd3JhcC91bndyYXAgKFdFVEg5IGRlcG9zaXQoKS93aXRoZHJhdygpKSDigJQgY2FsbGRhdGEgYW5kIHRoZSBXRVRIOVxuICAvLyBhZGRyZXNzIGFyZSByZXNvbHZlZCBzZXJ2ZXItc2lkZSBmcm9tIHRoZSB2YXVsdCBiaW5kaW5nLCBzbyBubyByZWNpcGllbnRzLlxuICAvLyBSZWdpc3RlcmVkIGluIEJPVEggc3BlbGxpbmdzIG9uIHB1cnBvc2U6IHRoaXMgc2V0IGlzIG1hdGNoZWQgYWdhaW5zdFxuICAvLyB0eFBhcmFtcy50eXBlLCB3aGljaCBpcyBidWlsZFBhcmFtcy50eXBlIChjYW1lbENhc2UsIGZyb20gd2FsbGV0LnNlbmRNYW55KSxcbiAgLy8gQU5EIGFnYWluc3QgaW50ZW50LmludGVudFR5cGUgKGtlYmFiLWNhc2UsIGFzIFdQIHBlcnNpc3RzIGl0KS4gU2lnbmluZyBwYXRoc1xuICAvLyB0aGF0IGNhcnJ5IG5vIHR4UGFyYW1zIOKAlCBub3RhYmx5IHBlbmRpbmdBcHByb3ZhbC5hcHByb3ZlKCkg4oaSXG4gIC8vIHJlY3JlYXRlVHhSZXF1ZXN0KCkg4oaSIHNpZ25UeFJlcXVlc3QoKSB3aXRoIG5vIHR4UGFyYW1zIOKAlCBvbmx5IGV2ZXIgc2VlIHRoZVxuICAvLyBrZWJhYi1jYXNlIHNwZWxsaW5nLlxuICAnd3JhcE5hdGl2ZScsXG4gICd3cmFwLW5hdGl2ZScsXG4gICd1bndyYXBOYXRpdmUnLFxuICAndW53cmFwLW5hdGl2ZScsXG4gIC8vIEVSQy03OTg0IHNoaWVsZC91bnNoaWVsZDogYXBwcm92ZS93cmFwL3Vud3JhcCBjYWxsZGF0YSBpcyBidWlsdCBzZXJ2ZXItc2lkZSBmcm9tIHRoZVxuICAvLyBpbnRlbnQsIGFuZCBmaW5hbGl6ZVVud3JhcCB0eG5SZXFzIGFyZSBXUC1jcmVhdGVkIGF0IFJFQURZX1RPX0ZJTkFMSVpFIChjbGllbnQgc2lnbnNcbiAgLy8gb25seSkg4oCUIG5vbmUgY2FycnkgU0RLLWxldmVsIHJlY2lwaWVudHMuXG4gICd3cmFwQXBwcm92ZScsXG4gICd3cmFwJyxcbiAgJ3Vud3JhcCcsXG4gICdmaW5hbGl6ZVVud3JhcCcsXG4gIC8vIFNtYXJ0IGNvbnRyYWN0IGludm9jYXRpb25zIHdpdGggbm8gZXhwbGljaXQgU0RLLWxldmVsIHJlY2lwaWVudHNcbiAgJ2NvbnRyYWN0Q2FsbCcsXG5cbiAgLy8gQlNDL0JOQiBkZWxlZ2F0aW9uLWJhc2VkIHN0YWtpbmcg4oCUIGludGVudFR5cGUgc3RyaW5ncyBmcm9tIFR4UmVxdWVzdC5pbnRlbnQuaW50ZW50VHlwZS5cbiAgLy8gTm90ZTogU09MIHNvbERlbGVnYXRlSW50ZW50IGFsc28gdXNlcyBpbnRlbnRUeXBlIFwiZGVsZWdhdGVcIi5cbiAgJ2RlbGVnYXRlJyxcbiAgJ3VuZGVsZWdhdGUnLFxuICAnc3dpdGNoVmFsaWRhdG9yJyxcblxuICAvLyBDRUxPL0VUSCBsb2NrLWJhc2VkIHN0YWtpbmdcbiAgJ3N0YWtlJyxcbiAgJ3Vuc3Rha2UnLFxuICAnc3Rha2VXaXRoQ2FsbERhdGEnLFxuICAndW5zdGFrZVdpdGhDYWxsRGF0YScsXG4gICd0cmFuc2ZlclN0YWtlJyxcbiAgJ2luY3JlYXNlU3Rha2UnLFxuICAnZ29VbnN0YWtlJyxcblxuICAvLyBDbGFpbSByZXdhcmRzIOKAlCBCU0MgYW5kIENFTE8gKFRSWC9TT0wvQ29zbW9zIHVzZSBFZERTQSwgbm90IGFmZmVjdGVkIGJ5IHRoaXMgZ3VhcmQpXG4gICdjbGFpbScsXG4gICdzdGFrZUNsYWltUmV3YXJkcycsXG5cbiAgJ2NyZWF0ZUFjY291bnQnLFxuICAvLyBDYW50b24gb3BlcmF0aW9ucyB3aXRoIG5vIFNESy1sZXZlbCByZWNpcGllbnRzLiBDYW50b24udmVyaWZ5VHJhbnNhY3Rpb24gdmFsaWRhdGVzIHRoZXNlIGZyb20gdGhlIHRyYW5zYWN0aW9uIGl0c2VsZi5cbiAgJ3RyYW5zZmVyQWNjZXB0JyxcbiAgJ3RyYW5zZmVyUmVqZWN0JyxcbiAgJ3RyYW5zZmVyT2ZmZXJXaXRoZHJhd24nLFxuICAnY29zaWduRGVsZWdhdGlvbkFjY2VwdCcsXG4gICdhbGxvY2F0aW9uQWxsb2NhdGUnLFxuICAnYWxsb2NhdGlvbk9mZmVyV2l0aGRyYXduJyxcbiAgJ2NhbnRvbkNvbW1hbmQnLFxuICAnY2FudG9uRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXInLFxuICAnY2FudG9uRW5kSW52ZXN0b3JPbmJvYXJkaW5nQWNjZXB0JyxcbiAgJ2NhbnRvbkVuZEludmVzdG9yT25ib2FyZGluZ1JlamVjdCcsXG4gICdjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0JyxcblxuICAncGxlZGdlJyxcblxuICAvLyBBdmFsYW5jaGUgLyBGbGFyZSBjcm9zcy1jaGFpbiBhdG9taWMgaW1wb3J0cyDigJQgcmVjaXBpZW50cyBhcmUgbm90IHN1cHBsaWVkXG4gIC8vIGJ5IHRoZSBjbGllbnQgYmVjYXVzZSB0aGUgaW1wb3J0IGNvbnN1bWVzIFVUWE9zIGFscmVhZHkgb3duZWQgYnkgdGhlXG4gIC8vIHdhbGxldDsgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMgdGhlIHdhbGxldCBpdHNlbGYuIFdQIGlzc3VlcyB0aGVzZVxuICAvLyB3aXRoIGludGVudFR5cGUgJ2ltcG9ydCcgKFAtY2hhaW4pIG9yICdpbXBvcnR0b2MnIChDLWNoYWluKS5cbiAgJ2ltcG9ydCcsXG4gICdpbXBvcnR0b2MnLFxuXG4gIC8vIFNPTDogZGVhY3RpdmF0ZSBzdGFrZSBhY2NvdW50IOKAlCBubyBvbi1jaGFpbiB0cmFuc2ZlciByZWNpcGllbnQuXG4gICdkZWFjdGl2YXRlJyxcblxuICAvLyBTT0w6IGF1dGhvcml6ZSBzdGFrZSBhY2NvdW50IOKAlCBubyB0cmFuc2ZlciByZWNpcGllbnQuXG4gICdhdXRob3JpemUnLFxuXSk7XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGVmZmVjdGl2ZSB0eFBhcmFtcyBmb3IgVFNTIHNpZ25pbmcgcmVjaXBpZW50IHZlcmlmaWNhdGlvbi5cbiAqXG4gKiBGb3Igc21hcnQgY29udHJhY3QgaW50ZXJhY3Rpb25zLCByZWNpcGllbnRzIGxpdmUgaW4gdHhSZXF1ZXN0LmludGVudC5yZWNpcGllbnRzXG4gKiAobmF0aXZlIGFtb3VudCA9IDAsIHNvIGJ1aWxkUGFyYW1zIGlzIGVtcHR5KS4gRmFsbHMgYmFjayB0byBpbnRlbnQgcmVjaXBpZW50c1xuICogbWFwcGVkIHRvIElUcmFuc2FjdGlvblJlY2lwaWVudCBzaGFwZSB3aGVuIHR4UGFyYW1zLnJlY2lwaWVudHMgaXMgYWJzZW50LlxuICpcbiAqIHRva2VuTmFtZSBpcyBkZXJpdmVkIGZyb20gdG9rZW5EYXRhLnRva2VuTmFtZSB3aGVuIHByZXNlbnQsIG90aGVyd2lzZSBmcm9tXG4gKiBhbW91bnQuc3ltYm9sIHdoZW4gY2hhaW5OYW1lIGlzIHByb3ZpZGVkIGFuZCBzeW1ib2wgZGlmZmVycyBmcm9tIGl0LlxuICpcbiAqIFN0YWtpbmcgaW50ZW50cyAoQlNDIGRlbGVnYXRlL3VuZGVsZWdhdGUsIENFTE8gc3Rha2UvdW5zdGFrZSwgZXRjLikgYXJlXG4gKiBpZGVudGlmaWVkIGdlbmVyaWNhbGx5IGJ5IHRoZSBwcmVzZW5jZSBvZiBgc3Rha2luZ1JlcXVlc3RJZGAgb24gdGhlIGludGVudCDigJRcbiAqIGEgcmVxdWlyZWQgZmllbGQgb24gQmFzZVN0YWtlSW50ZW50IGluIEBiaXRnby9wdWJsaWMtdHlwZXMuIFRoZXNlIGludGVudHNcbiAqIGhhdmUgbm8gdHhQYXJhbXMgcmVjaXBpZW50cyBieSBkZXNpZ247IHZhbGlkYXRpb24gaXMgZG9uZSBhdCB0aGUgY29pbiBsYXllci5cbiAqXG4gKiBUaHJvd3MgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgaWYgbm8gcmVjaXBpZW50cyBjYW4gYmUgcmVzb2x2ZWQgYW5kIHRoZVxuICogdHJhbnNhY3Rpb24gaXMgbm90IGEga25vd24gbm8tcmVjaXBpZW50IHR5cGUuXG4gKlxuICogQHBhcmFtIHR4UmVxdWVzdCAtIHRoZSB0cmFuc2FjdGlvbiByZXF1ZXN0IGNvbnRhaW5pbmcgdGhlIHBlcnNpc3RlZCBpbnRlbnRcbiAqIEBwYXJhbSB0eFBhcmFtcyAtIHRoZSBjYWxsZXItc3VwcGxpZWQgdHJhbnNhY3Rpb24gcGFyYW1ldGVycyAobWF5IGJlIHVuZGVmaW5lZClcbiAqIEBwYXJhbSBjaGFpbk5hbWUgLSB0aGUgYmFzZSBjaGFpbiBuYW1lIChlLmcuICdzb2wnLCAndHNvbCcpIHVzZWQgdG8gZXhjbHVkZVxuICogICBuYXRpdmUtY29pbiB0cmFuc2ZlcnMgZnJvbSB0b2tlbk5hbWU7IHBhc3MgYmFzZUNvaW4uZ2V0Q2hhaW4oKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVmZmVjdGl2ZVR4UGFyYW1zKFxuICB0eFJlcXVlc3Q6IFR4UmVxdWVzdCxcbiAgdHhQYXJhbXM6IFRyYW5zYWN0aW9uUGFyYW1zIHwgdW5kZWZpbmVkLFxuICBjaGFpbk5hbWU/OiBzdHJpbmdcbik6IFRyYW5zYWN0aW9uUGFyYW1zIHtcbiAgY29uc3QgaW50ZW50UmVjaXBpZW50cyA9ICh0eFJlcXVlc3QuaW50ZW50IGFzIFBvcHVsYXRlZEludGVudCk/LnJlY2lwaWVudHM/Lm1hcCgoaW50ZW50UmVjaXBpZW50KSA9PiB7XG4gICAgLy8gUHJlZmVyIHRva2VuRGF0YS50b2tlbk5hbWU7IGZhbGwgYmFjayB0byBhbW91bnQuc3ltYm9sIHdoZW4gY2hhaW5OYW1lIGlzXG4gICAgLy8gcHJvdmlkZWQgYW5kIGRpZmZlcnMgZnJvbSBpdC4gV2hlbiBhYnNlbnQsIHNraXAgdGhlIHN5bWJvbCBmYWxsYmFjay5cbiAgICBjb25zdCB7IHN5bWJvbCB9ID0gaW50ZW50UmVjaXBpZW50LmFtb3VudDtcbiAgICBjb25zdCB0b2tlbk5hbWUgPVxuICAgICAgaW50ZW50UmVjaXBpZW50LnRva2VuRGF0YT8udG9rZW5OYW1lIHx8XG4gICAgICAoY2hhaW5OYW1lICE9PSB1bmRlZmluZWQgJiYgc3ltYm9sICYmIHN5bWJvbCAhPT0gY2hhaW5OYW1lID8gc3ltYm9sIDogdW5kZWZpbmVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogaW50ZW50UmVjaXBpZW50LmFkZHJlc3MuYWRkcmVzcyxcbiAgICAgIGFtb3VudDogaW50ZW50UmVjaXBpZW50LmFtb3VudC52YWx1ZSxcbiAgICAgIGRhdGE6IGludGVudFJlY2lwaWVudC5kYXRhLFxuICAgICAgLi4uKHRva2VuTmFtZSAmJiB7IHRva2VuTmFtZSB9KSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdCBlZmZlY3RpdmVUeFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXMgPSB7XG4gICAgLi4udHhQYXJhbXMsXG4gICAgcmVjaXBpZW50czogdHhQYXJhbXM/LnJlY2lwaWVudHM/Lmxlbmd0aCA/IHR4UGFyYW1zLnJlY2lwaWVudHMgOiBpbnRlbnRSZWNpcGllbnRzLFxuICB9O1xuXG4gIC8vIEZhbGwgYmFjayB0byBpbnRlbnQuaW50ZW50VHlwZSB3aGVuIHR4UGFyYW1zLnR5cGUgaXMgbm90IGV4cGxpY2l0bHkgc2V0LlxuICAvLyBTdGFraW5nIHdhbGxldHMgY2FsbCBzaWduVHJhbnNhY3Rpb24gd2l0aG91dCB0eFBhcmFtcywgc28gdGhlIHR5cGUgbGl2ZXMgb25seSBpbiB0aGUgaW50ZW50LlxuICBjb25zdCB0eFR5cGUgPSBlZmZlY3RpdmVUeFBhcmFtcy50eXBlID8/ICh0eFJlcXVlc3QuaW50ZW50IGFzIFBvcHVsYXRlZEludGVudCk/LmludGVudFR5cGUgPz8gJyc7XG5cbiAgLy8gUHJvcGFnYXRlIHRoZSByZXNvbHZlZCB0eXBlIHNvIGRvd25zdHJlYW0gY2FsbGVyc1xuICBpZiAoIWVmZmVjdGl2ZVR4UGFyYW1zLnR5cGUgJiYgdHhUeXBlKSB7XG4gICAgZWZmZWN0aXZlVHhQYXJhbXMudHlwZSA9IHR4VHlwZTtcbiAgfVxuXG4gIC8vIFByb3BhZ2F0ZSBzdGFraW5nUmVxdWVzdElkIGZyb20gaW50ZW50IGludG8gZWZmZWN0aXZlVHhQYXJhbXMgc28gdmVyaWZ5VHNzVHJhbnNhY3Rpb25cbiAgLy8gb3ZlcnJpZGVzIGNhbiBieXBhc3MgdGhlIG5vLXJlY2lwaWVudCBndWFyZCB3aXRob3V0IG5lZWRpbmcgYWNjZXNzIHRvIHR4UmVxdWVzdCBkaXJlY3RseS5cbiAgY29uc3QgaW50ZW50U3Rha2luZ1JlcXVlc3RJZCA9ICh0eFJlcXVlc3QuaW50ZW50IGFzIFBvcHVsYXRlZEludGVudCk/LnN0YWtpbmdSZXF1ZXN0SWQ7XG4gIGlmIChpbnRlbnRTdGFraW5nUmVxdWVzdElkICYmICFlZmZlY3RpdmVUeFBhcmFtcy5zdGFraW5nUmVxdWVzdElkKSB7XG4gICAgZWZmZWN0aXZlVHhQYXJhbXMuc3Rha2luZ1JlcXVlc3RJZCA9IGludGVudFN0YWtpbmdSZXF1ZXN0SWQ7XG4gIH1cblxuICAvLyBBbGwgc3Rha2luZyBpbnRlbnRzIChCU0MgZGVsZWdhdGUvdW5kZWxlZ2F0ZSwgQ0VMTyBzdGFrZS91bnN0YWtlLCBldGMuKSBjYXJyeVxuICAvLyBzdGFraW5nUmVxdWVzdElkIGFzIGEgcmVxdWlyZWQgZmllbGQgb24gQmFzZVN0YWtlSW50ZW50IChAYml0Z28vcHVibGljLXR5cGVzKS5cbiAgLy8gVXNlIGl0cyBwcmVzZW5jZSBhcyBhIGdlbmVyaWMgc3Rha2luZyBzaWduYWwg4oCUIG5vIG5lZWQgdG8gZW51bWVyYXRlIGV2ZXJ5IGludGVudFR5cGUuXG4gIGNvbnN0IGlzU3Rha2luZ0ludGVudCA9ICEhKHR4UmVxdWVzdC5pbnRlbnQgYXMgUG9wdWxhdGVkSW50ZW50KT8uc3Rha2luZ1JlcXVlc3RJZDtcblxuICAvLyBidWlsZFBhcmFtcy50eXBlIGZyb20gdGhlIHdhbGxldCBVSSBpcyBQYXNjYWxDYXNlICgnSW1wb3J0Jyk7IGludGVudC5pbnRlbnRUeXBlIGZyb20gV1BcbiAgLy8gaXMgbG93ZXJjYXNlICgnaW1wb3J0JykuIEVpdGhlciBtYXkgYmUgdGhlIHNvdXJjZSBvZiB0cnV0aCBkZXBlbmRpbmcgb24gdGhlIHNpZ25pbmcgcGF0aC5cbiAgY29uc3QgaW50ZW50VHlwZSA9ICh0eFJlcXVlc3QuaW50ZW50IGFzIFBvcHVsYXRlZEludGVudCk/LmludGVudFR5cGUgPz8gJyc7XG5cbiAgaWYgKFxuICAgICFlZmZlY3RpdmVUeFBhcmFtcy5yZWNpcGllbnRzPy5sZW5ndGggJiZcbiAgICAhaXNTdGFraW5nSW50ZW50ICYmXG4gICAgIU5PX1JFQ0lQSUVOVF9UWF9UWVBFUy5oYXModHhUeXBlKSAmJlxuICAgICFOT19SRUNJUElFTlRfVFhfVFlQRVMuaGFzKGludGVudFR5cGUpXG4gICkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICdSZWNpcGllbnQgZGV0YWlscyBhcmUgcmVxdWlyZWQgdG8gdmVyaWZ5IHRoaXMgdHJhbnNhY3Rpb24gYmVmb3JlIHNpZ25pbmcuIFBhc3MgdHhQYXJhbXMgd2l0aCBhdCBsZWFzdCBvbmUgcmVjaXBpZW50LidcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGVmZmVjdGl2ZVR4UGFyYW1zO1xufVxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RedpallasBitgoToOVC1Round1Response, RedpallasBitgoToOVC1Round2Response, RedpallasMPCv2KeyGenRound1Response, RedpallasMPCv2KeyGenRound2Response, RedpallasOVC1ToBitgoRound1Payload, RedpallasOVC2ToBitgoRound2Payload } from '@bitgo/public-types';
|
|
2
|
+
import { IBaseCoin } from '../../../../baseCoin';
|
|
3
|
+
import { BitGoBase } from '../../../../bitgoBase';
|
|
4
|
+
import { Keychain } from '../../../..';
|
|
5
|
+
import { RedpallasMPCv2KeyGenSendFn } from '../redpallasMPCv2KeyGenSender';
|
|
6
|
+
/**
|
|
7
|
+
* Custodial (SMC/OVC) DKG-only key generation for the Zcash Orchard shielded pool (RedPallas).
|
|
8
|
+
*
|
|
9
|
+
* Mirrors for both custodial and SMC wallet
|
|
10
|
+
* ceremonies driven by external OVC (offline vault console) clients: round1/round2 payloads are
|
|
11
|
+
* relayed from OVC1/OVC2 to BitGo and back. There is no round3 (no signing) - RedPallas MPS DKG
|
|
12
|
+
* completes key generation in 2 online rounds, same as EdDSA MPS DKG.
|
|
13
|
+
*/
|
|
14
|
+
export declare class RedpallasMPCv2SMCUtils {
|
|
15
|
+
private bitgo;
|
|
16
|
+
private baseCoin;
|
|
17
|
+
private MPCv2Utils;
|
|
18
|
+
constructor(bitgo: BitGoBase, baseCoin: IBaseCoin);
|
|
19
|
+
keyGenRound1(enterprise: string, payload: RedpallasOVC1ToBitgoRound1Payload): Promise<RedpallasBitgoToOVC1Round1Response>;
|
|
20
|
+
keyGenRound2(enterprise: string, payload: RedpallasOVC2ToBitgoRound2Payload): Promise<RedpallasBitgoToOVC1Round2Response>;
|
|
21
|
+
keyGenRound1BySender(senderFn: RedpallasMPCv2KeyGenSendFn<RedpallasMPCv2KeyGenRound1Response>, payload: RedpallasOVC1ToBitgoRound1Payload): Promise<RedpallasBitgoToOVC1Round1Response>;
|
|
22
|
+
keyGenRound2BySender(senderFn: RedpallasMPCv2KeyGenSendFn<RedpallasMPCv2KeyGenRound2Response>, payload: RedpallasOVC2ToBitgoRound2Payload): Promise<RedpallasBitgoToOVC1Round2Response>;
|
|
23
|
+
uploadClientKeys(bitgoKeyId: string, userCommonKeychain: string, backupCommonKeychain: string): Promise<{
|
|
24
|
+
userKeychain: Keychain;
|
|
25
|
+
backupKeychain: Keychain;
|
|
26
|
+
bitgoKeychain: Keychain;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/bitgo/utils/tss/redpallas/SMC/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kCAAkC,EAClC,kCAAkC,EAElC,kCAAkC,EAClC,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAgB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,0BAA0B,EAAsC,MAAM,+BAA+B,CAAC;AAE/G;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,KAAK;IAAa,OAAO,CAAC,QAAQ;IAFtD,OAAO,CAAC,UAAU,CAAsB;gBAEpB,KAAK,EAAE,SAAS,EAAU,QAAQ,EAAE,SAAS;IAIpD,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIjC,YAAY,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAIjC,oBAAoB,CAC/B,QAAQ,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,EACxE,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAwCjC,oBAAoB,CAC/B,QAAQ,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,EACxE,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAsDjC,gBAAgB,CAC3B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC;QAAE,YAAY,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAA;KAAE,CAAC;CA8B1F"}
|