@bitgo-beta/sdk-core 8.2.1-beta.21 → 8.2.1-beta.2100
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 +61 -2
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +118 -6
- 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/curves/ed25519.d.ts +4 -18
- package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/curves/ed25519.js +6 -60
- package/dist/src/account-lib/mpc/index.d.ts +4 -4
- package/dist/src/account-lib/mpc/index.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/index.js +11 -7
- package/dist/src/account-lib/mpc/shamir.d.ts +5 -37
- package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/shamir.js +6 -130
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +40 -11
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +521 -378
- 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 +73 -52
- 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 +1 -2
- 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 -4
- 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 +61 -0
- package/dist/src/bitgo/address-book/address-book.d.ts.map +1 -0
- package/dist/src/bitgo/address-book/address-book.js +150 -0
- package/dist/src/bitgo/address-book/index.d.ts +3 -0
- package/dist/src/bitgo/address-book/index.d.ts.map +1 -0
- package/dist/src/{openssl → bitgo/address-book}/index.js +8 -3
- package/dist/src/bitgo/address-book/types.d.ts +170 -0
- package/dist/src/bitgo/address-book/types.d.ts.map +1 -0
- package/dist/src/bitgo/address-book/types.js +3 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +139 -12
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +217 -16
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +366 -29
- 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 +19 -5
- 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 -89
- 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 +22 -14
- package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/enterprise.js +72 -31
- package/dist/src/bitgo/enterprise/enterprises.d.ts +6 -0
- package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/enterprises.js +48 -9
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts +9 -7
- 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/iEnterprises.d.ts +2 -0
- package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/iEnterprises.js +1 -1
- package/dist/src/bitgo/enterprise/index.js +6 -2
- package/dist/src/bitgo/environments.d.ts +88 -5
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +436 -30
- package/dist/src/bitgo/errors.d.ts +189 -1
- package/dist/src/bitgo/errors.d.ts.map +1 -1
- package/dist/src/bitgo/errors.js +187 -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 +189 -10
- 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 +106 -13
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +451 -93
- package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +126 -91
- package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/ovcJsonCodec.js +53 -32
- 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 +7 -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 +251 -110
- 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 +20 -4
- 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 +8 -0
- package/dist/src/bitgo/safe/index.d.ts.map +1 -0
- package/dist/src/bitgo/safe/index.js +24 -0
- package/dist/src/bitgo/safe/recovery.d.ts +92 -0
- package/dist/src/bitgo/safe/recovery.d.ts.map +1 -0
- package/dist/src/bitgo/safe/recovery.js +148 -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 +409 -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 +197 -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 +27 -8
- package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/stakingWallet.js +161 -7
- package/dist/src/bitgo/trading/iTradingAccount.d.ts +15 -33
- 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 -15
- package/dist/src/bitgo/trading/index.d.ts.map +1 -1
- package/dist/src/bitgo/trading/index.js +7 -17
- 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 +5 -0
- package/dist/src/bitgo/trading/network/index.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/index.js +21 -0
- package/dist/src/bitgo/trading/network/network.d.ts +36 -0
- package/dist/src/bitgo/trading/network/network.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/network.js +94 -0
- package/dist/src/bitgo/trading/network/types.d.ts +277 -0
- package/dist/src/bitgo/trading/network/types.d.ts.map +1 -0
- package/dist/src/bitgo/trading/network/types.js +3 -0
- 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 +23 -33
- package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
- package/dist/src/bitgo/trading/tradingAccount.js +58 -97
- 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 +52 -6
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +144 -15
- 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 +85 -81
- 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 +19 -9
- package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/eddsa/eddsa.js +56 -38
- 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 +79 -0
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +179 -0
- package/dist/src/bitgo/tss/types.d.ts +19 -0
- 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 +14 -0
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +87 -10
- package/dist/src/bitgo/utils/codecProps.d.ts +7 -0
- package/dist/src/bitgo/utils/codecProps.d.ts.map +1 -0
- package/dist/src/bitgo/utils/codecProps.js +54 -0
- 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 +5 -2
- package/dist/src/bitgo/utils/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/index.js +28 -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 +208 -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 +13 -9
- package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/opengpgUtils.js +87 -73
- package/dist/src/bitgo/utils/postWithCodec.d.ts +18 -0
- package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -0
- package/dist/src/bitgo/utils/postWithCodec.js +25 -0
- 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/siws.d.ts +17 -0
- package/dist/src/bitgo/utils/siws.d.ts.map +1 -0
- package/dist/src/bitgo/utils/siws.js +171 -0
- 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 +157 -28
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +381 -43
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +620 -44
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +60 -10
- 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 +63 -53
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +356 -327
- 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 +15 -9
- 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 +59 -14
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +318 -99
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +260 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +995 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +11 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +26 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +42 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +267 -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 +75 -0
- package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +44 -0
- package/dist/src/bitgo/utils/tss/index.d.ts +7 -0
- package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/index.js +31 -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/keyVerification.d.ts +45 -0
- package/dist/src/bitgo/utils/tss/keyVerification.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/keyVerification.js +192 -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 +201 -0
- package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/BuildParams.js +202 -0
- package/dist/src/bitgo/wallet/iWallet.d.ts +682 -30
- 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 +325 -19
- 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 +485 -29
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +2723 -478
- package/dist/src/bitgo/wallet/wallets.d.ts +124 -9
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +1398 -181
- 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 +13 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +42 -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/node.utils.d.ts +2 -0
- package/dist/test/node.utils.d.ts.map +1 -0
- package/dist/test/node.utils.js +5 -0
- 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.d.ts +2 -0
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/ecdsa.js +279 -0
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.d.ts +3 -0
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.d.ts.map +1 -0
- package/dist/test/unit/account-lib/mpc/tss/ecdsa/fixtures.js +24 -0
- 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 +426 -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 +159 -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/recovery.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/recovery.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/recovery.js +313 -0
- package/dist/test/unit/bitgo/safe/rootCoin.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/rootCoin.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/rootCoin.js +13 -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 +585 -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 +249 -0
- package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/abstractUtxoCoinUtil.js +66 -0
- 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.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/postWithCodec.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/postWithCodec.js +73 -0
- package/dist/test/unit/bitgo/utils/siws.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/siws.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/siws.js +206 -0
- 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 +2410 -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 +549 -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/keyVerification.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/keyVerification.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/keyVerification.js +229 -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.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +114 -0
- 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 +210 -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/walletVerifyKey.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/walletVerifyKey.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/walletVerifyKey.js +160 -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 +853 -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 +2 -0
- package/dist/test/unit/units.d.ts.map +1 -0
- package/dist/test/unit/units.js +98 -0
- package/dist/tsconfig.tsbuildinfo +1 -8340
- package/package.json +31 -24
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -662
- 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/mpc/hdTree.d.ts +0 -31
- package/dist/src/account-lib/mpc/hdTree.d.ts.map +0 -1
- package/dist/src/account-lib/mpc/hdTree.js +0 -141
- package/dist/src/account-lib/mpc/types.d.ts +0 -5
- package/dist/src/account-lib/mpc/types.d.ts.map +0 -1
- package/dist/src/account-lib/mpc/types.js +0 -3
- 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/trading/affirmation.d.ts +0 -35
- package/dist/src/bitgo/trading/affirmation.d.ts.map +0 -1
- package/dist/src/bitgo/trading/affirmation.js +0 -53
- package/dist/src/bitgo/trading/affirmations.d.ts +0 -23
- package/dist/src/bitgo/trading/affirmations.d.ts.map +0 -1
- package/dist/src/bitgo/trading/affirmations.js +0 -45
- package/dist/src/bitgo/trading/iAffirmation.d.ts +0 -15
- package/dist/src/bitgo/trading/iAffirmation.d.ts.map +0 -1
- package/dist/src/bitgo/trading/iAffirmation.js +0 -13
- package/dist/src/bitgo/trading/iAffirmations.d.ts +0 -10
- package/dist/src/bitgo/trading/iAffirmations.d.ts.map +0 -1
- package/dist/src/bitgo/trading/iAffirmations.js +0 -3
- package/dist/src/bitgo/trading/iSettlement.d.ts +0 -25
- package/dist/src/bitgo/trading/iSettlement.d.ts.map +0 -1
- package/dist/src/bitgo/trading/iSettlement.js +0 -17
- package/dist/src/bitgo/trading/iSettlements.d.ts +0 -19
- package/dist/src/bitgo/trading/iSettlements.d.ts.map +0 -1
- package/dist/src/bitgo/trading/iSettlements.js +0 -3
- package/dist/src/bitgo/trading/iTradingPartner.d.ts +0 -14
- package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +0 -1
- package/dist/src/bitgo/trading/iTradingPartner.js +0 -17
- package/dist/src/bitgo/trading/iTradingPartners.d.ts +0 -15
- package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +0 -1
- package/dist/src/bitgo/trading/iTradingPartners.js +0 -9
- package/dist/src/bitgo/trading/lock.d.ts +0 -16
- package/dist/src/bitgo/trading/lock.d.ts.map +0 -1
- package/dist/src/bitgo/trading/lock.js +0 -12
- package/dist/src/bitgo/trading/payload.d.ts +0 -22
- package/dist/src/bitgo/trading/payload.d.ts.map +0 -1
- package/dist/src/bitgo/trading/payload.js +0 -3
- package/dist/src/bitgo/trading/settlement.d.ts +0 -16
- package/dist/src/bitgo/trading/settlement.d.ts.map +0 -1
- package/dist/src/bitgo/trading/settlement.js +0 -21
- package/dist/src/bitgo/trading/settlements.d.ts +0 -32
- package/dist/src/bitgo/trading/settlements.d.ts.map +0 -1
- package/dist/src/bitgo/trading/settlements.js +0 -61
- package/dist/src/bitgo/trading/trade.d.ts +0 -29
- package/dist/src/bitgo/trading/trade.d.ts.map +0 -1
- package/dist/src/bitgo/trading/trade.js +0 -11
- package/dist/src/bitgo/trading/tradingPartner.d.ts +0 -26
- package/dist/src/bitgo/trading/tradingPartner.d.ts.map +0 -1
- package/dist/src/bitgo/trading/tradingPartner.js +0 -31
- package/dist/src/bitgo/trading/tradingPartners.d.ts +0 -24
- package/dist/src/bitgo/trading/tradingPartners.d.ts.map +0 -1
- package/dist/src/bitgo/trading/tradingPartners.js +0 -32
- 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 -2
- package/dist/src/openssl/index.d.ts.map +0 -1
- package/dist/src/openssl/openssl.d.ts +0 -12
- package/dist/src/openssl/openssl.d.ts.map +0 -1
- package/dist/src/openssl/openssl.js +0 -48
- package/dist/src/openssl/opensslbytes.d.ts +0 -4
- package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
- package/dist/src/openssl/opensslbytes.js +0 -20
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MPCv2KeyGenState } from '@bitgo/public-types';
|
|
2
|
+
import { BitGoBase } from '../../../bitgoBase';
|
|
3
|
+
import { GenerateEddsaMPCv2DeriveKeyRequest, GenerateEddsaMPCv2DeriveKeyRequestResponse, GenerateEddsaMPCv2KeyRequestBody, GenerateEddsaMPCv2KeyRequestResponse } from './typesEddsaMPCv2';
|
|
4
|
+
export type EddsaMPCv2KeyGenSendFn<T extends GenerateEddsaMPCv2KeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateEddsaMPCv2KeyRequestBody & {
|
|
5
|
+
walletId?: string;
|
|
6
|
+
}) => Promise<T>;
|
|
7
|
+
export declare function KeyGenSenderForEnterprise<T extends GenerateEddsaMPCv2KeyRequestResponse>(bitgo: BitGoBase, enterprise: string, safeId?: string): EddsaMPCv2KeyGenSendFn<T>;
|
|
8
|
+
export type EddsaMPCv2DeriveKeySendFn<T extends GenerateEddsaMPCv2DeriveKeyRequestResponse> = (round: MPCv2KeyGenState, payload: GenerateEddsaMPCv2DeriveKeyRequest) => Promise<T>;
|
|
9
|
+
/** The EdDSA safe-child derive uses the keygen endpoint and a distinct two-round state family. */
|
|
10
|
+
export declare function KeyGenSenderForSafeChild<T extends GenerateEddsaMPCv2DeriveKeyRequestResponse>(bitgo: BitGoBase, enterprise: string, safeId: string): EddsaMPCv2DeriveKeySendFn<T>;
|
|
11
|
+
//# sourceMappingURL=eddsaMPCv2KeyGenSender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eddsaMPCv2KeyGenSender.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,kCAAkC,EAClC,0CAA0C,EAC1C,gCAAgC,EAChC,oCAAoC,EACrC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,oCAAoC,IAAI,CACnF,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,gCAAgC,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAC9D,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,oCAAoC,EACtF,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAGlB,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,CAAC,CAAC,CAAC,CAO3B;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,0CAA0C,IAAI,CAC5F,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,kCAAkC,KACxC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,kGAAkG;AAClG,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,0CAA0C,EAC3F,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,yBAAyB,CAAC,CAAC,CAAC,CAO9B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyGenSenderForEnterprise = KeyGenSenderForEnterprise;
|
|
4
|
+
exports.KeyGenSenderForSafeChild = KeyGenSenderForSafeChild;
|
|
5
|
+
const public_types_1 = require("@bitgo/public-types");
|
|
6
|
+
function KeyGenSenderForEnterprise(bitgo, enterprise,
|
|
7
|
+
// Wallet Safes v1 (@experimental): when set, tags the resulting root keys with this safe. WP only reads it on
|
|
8
|
+
// round MPCv2-R1; passing it on a sender used solely for round 1 is sufficient.
|
|
9
|
+
safeId) {
|
|
10
|
+
return (round, payload) => {
|
|
11
|
+
return bitgo
|
|
12
|
+
.post(bitgo.url('/mpc/generatekey', 2))
|
|
13
|
+
.send({ enterprise, safeId, type: public_types_1.KeyGenTypeEnum.MPCv2, curveType: public_types_1.KeyCurveEnum.EdDSA, round, payload })
|
|
14
|
+
.result();
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** The EdDSA safe-child derive uses the keygen endpoint and a distinct two-round state family. */
|
|
18
|
+
function KeyGenSenderForSafeChild(bitgo, enterprise, safeId) {
|
|
19
|
+
return (round, payload) => {
|
|
20
|
+
return bitgo
|
|
21
|
+
.post(bitgo.url('/mpc/generatekey', 2))
|
|
22
|
+
.send({ enterprise, safeId, type: public_types_1.KeyGenTypeEnum.MPCv2, curveType: public_types_1.KeyCurveEnum.EdDSA, round, payload })
|
|
23
|
+
.result();
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FNUEN2MktleUdlblNlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FNUEN2MktleUdlblNlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLDhEQWFDO0FBUUQsNERBV0M7QUE5Q0Qsc0RBQXFGO0FBY3JGLFNBQWdCLHlCQUF5QixDQUN2QyxLQUFnQixFQUNoQixVQUFrQjtBQUNsQiw4R0FBOEc7QUFDOUcsZ0ZBQWdGO0FBQ2hGLE1BQWU7SUFFZixPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE9BQU8sS0FBSzthQUNULElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSwyQkFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7YUFDdkcsTUFBTSxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBT0Qsa0dBQWtHO0FBQ2xHLFNBQWdCLHdCQUF3QixDQUN0QyxLQUFnQixFQUNoQixVQUFrQixFQUNsQixNQUFjO0lBRWQsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixPQUFPLEtBQUs7YUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSw2QkFBYyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsMkJBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ3ZHLE1BQU0sRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleUN1cnZlRW51bSwgS2V5R2VuVHlwZUVudW0sIE1QQ3YyS2V5R2VuU3RhdGUgfSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQge1xuICBHZW5lcmF0ZUVkZHNhTVBDdjJEZXJpdmVLZXlSZXF1ZXN0LFxuICBHZW5lcmF0ZUVkZHNhTVBDdjJEZXJpdmVLZXlSZXF1ZXN0UmVzcG9uc2UsXG4gIEdlbmVyYXRlRWRkc2FNUEN2MktleVJlcXVlc3RCb2R5LFxuICBHZW5lcmF0ZUVkZHNhTVBDdjJLZXlSZXF1ZXN0UmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXNFZGRzYU1QQ3YyJztcblxuZXhwb3J0IHR5cGUgRWRkc2FNUEN2MktleUdlblNlbmRGbjxUIGV4dGVuZHMgR2VuZXJhdGVFZGRzYU1QQ3YyS2V5UmVxdWVzdFJlc3BvbnNlPiA9IChcbiAgcm91bmQ6IE1QQ3YyS2V5R2VuU3RhdGUsXG4gIHBheWxvYWQ6IEdlbmVyYXRlRWRkc2FNUEN2MktleVJlcXVlc3RCb2R5ICYgeyB3YWxsZXRJZD86IHN0cmluZyB9XG4pID0+IFByb21pc2U8VD47XG5cbmV4cG9ydCBmdW5jdGlvbiBLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlPFQgZXh0ZW5kcyBHZW5lcmF0ZUVkZHNhTVBDdjJLZXlSZXF1ZXN0UmVzcG9uc2U+KFxuICBiaXRnbzogQml0R29CYXNlLFxuICBlbnRlcnByaXNlOiBzdHJpbmcsXG4gIC8vIFdhbGxldCBTYWZlcyB2MSAoQGV4cGVyaW1lbnRhbCk6IHdoZW4gc2V0LCB0YWdzIHRoZSByZXN1bHRpbmcgcm9vdCBrZXlzIHdpdGggdGhpcyBzYWZlLiBXUCBvbmx5IHJlYWRzIGl0IG9uXG4gIC8vIHJvdW5kIE1QQ3YyLVIxOyBwYXNzaW5nIGl0IG9uIGEgc2VuZGVyIHVzZWQgc29sZWx5IGZvciByb3VuZCAxIGlzIHN1ZmZpY2llbnQuXG4gIHNhZmVJZD86IHN0cmluZ1xuKTogRWRkc2FNUEN2MktleUdlblNlbmRGbjxUPiB7XG4gIHJldHVybiAocm91bmQsIHBheWxvYWQpID0+IHtcbiAgICByZXR1cm4gYml0Z29cbiAgICAgIC5wb3N0KGJpdGdvLnVybCgnL21wYy9nZW5lcmF0ZWtleScsIDIpKVxuICAgICAgLnNlbmQoeyBlbnRlcnByaXNlLCBzYWZlSWQsIHR5cGU6IEtleUdlblR5cGVFbnVtLk1QQ3YyLCBjdXJ2ZVR5cGU6IEtleUN1cnZlRW51bS5FZERTQSwgcm91bmQsIHBheWxvYWQgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRWRkc2FNUEN2MkRlcml2ZUtleVNlbmRGbjxUIGV4dGVuZHMgR2VuZXJhdGVFZGRzYU1QQ3YyRGVyaXZlS2V5UmVxdWVzdFJlc3BvbnNlPiA9IChcbiAgcm91bmQ6IE1QQ3YyS2V5R2VuU3RhdGUsXG4gIHBheWxvYWQ6IEdlbmVyYXRlRWRkc2FNUEN2MkRlcml2ZUtleVJlcXVlc3RcbikgPT4gUHJvbWlzZTxUPjtcblxuLyoqIFRoZSBFZERTQSBzYWZlLWNoaWxkIGRlcml2ZSB1c2VzIHRoZSBrZXlnZW4gZW5kcG9pbnQgYW5kIGEgZGlzdGluY3QgdHdvLXJvdW5kIHN0YXRlIGZhbWlseS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBLZXlHZW5TZW5kZXJGb3JTYWZlQ2hpbGQ8VCBleHRlbmRzIEdlbmVyYXRlRWRkc2FNUEN2MkRlcml2ZUtleVJlcXVlc3RSZXNwb25zZT4oXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIGVudGVycHJpc2U6IHN0cmluZyxcbiAgc2FmZUlkOiBzdHJpbmdcbik6IEVkZHNhTVBDdjJEZXJpdmVLZXlTZW5kRm48VD4ge1xuICByZXR1cm4gKHJvdW5kLCBwYXlsb2FkKSA9PiB7XG4gICAgcmV0dXJuIGJpdGdvXG4gICAgICAucG9zdChiaXRnby51cmwoJy9tcGMvZ2VuZXJhdGVrZXknLCAyKSlcbiAgICAgIC5zZW5kKHsgZW50ZXJwcmlzZSwgc2FmZUlkLCB0eXBlOiBLZXlHZW5UeXBlRW51bS5NUEN2MiwgY3VydmVUeXBlOiBLZXlDdXJ2ZUVudW0uRWREU0EsIHJvdW5kLCBwYXlsb2FkIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type MPSTypes } from '@bitgo-beta/sdk-lib-mpc';
|
|
2
|
+
import { EddsaMPCv2DeriveRound1Response, EddsaMPCv2DeriveRound2Response } from '@bitgo/public-types';
|
|
3
|
+
import type { KeychainsTriplet } from '../../../baseCoin';
|
|
4
|
+
import type { DecryptedRetrofitPayload } from '../../../keychain/iKeychains';
|
|
5
|
+
import type { EncryptionVersion } from '../../../../api';
|
|
6
|
+
import type { WebauthnKeyEncryptionInfo } from '../../../keychain';
|
|
7
|
+
import { EddsaMPCv2Utils } from './eddsaMPCv2';
|
|
8
|
+
import { EddsaMPCv2DeriveKeySendFn } from './eddsaMPCv2KeyGenSender';
|
|
9
|
+
/**
|
|
10
|
+
* EdDSA MPCv2 key generation for safe roots. The two-round MPS VRF DKG rides
|
|
11
|
+
* the existing MPCv2-R1/R2 payloads and is only selected when safeId is set.
|
|
12
|
+
*/
|
|
13
|
+
export declare class EddsaVrfMPCv2Utils extends EddsaMPCv2Utils {
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
createKeychains(params: {
|
|
16
|
+
passphrase: string;
|
|
17
|
+
enterprise: string;
|
|
18
|
+
originalPasscodeEncryptionCode?: string;
|
|
19
|
+
retrofit?: DecryptedRetrofitPayload;
|
|
20
|
+
webauthnInfo?: WebauthnKeyEncryptionInfo;
|
|
21
|
+
encryptionVersion?: EncryptionVersion;
|
|
22
|
+
safeId: string;
|
|
23
|
+
}): Promise<KeychainsTriplet>;
|
|
24
|
+
sendDerivationRound1BySender(senderFn: EddsaMPCv2DeriveKeySendFn<EddsaMPCv2DeriveRound1Response>, userGpgPublicKey: string, userMsg1: MPSTypes.MPSSignedMessage, parentKeyId: string, derivationIndex: number): Promise<EddsaMPCv2DeriveRound1Response>;
|
|
25
|
+
sendDerivationRound2BySender(senderFn: EddsaMPCv2DeriveKeySendFn<EddsaMPCv2DeriveRound2Response>, sessionId: string, userMsg2: MPSTypes.MPSSignedMessage): Promise<EddsaMPCv2DeriveRound2Response>;
|
|
26
|
+
/** Derives the user signing share with BitGo and registers all three safe children. */
|
|
27
|
+
createSafeChildKeychains(params: {
|
|
28
|
+
passphrase: string;
|
|
29
|
+
enterprise: string;
|
|
30
|
+
safeId: string;
|
|
31
|
+
parentKeyId: string;
|
|
32
|
+
derivationIndex: number;
|
|
33
|
+
userRootKeyId: string;
|
|
34
|
+
backupRootKeyId: string;
|
|
35
|
+
userRootKeyShare: Buffer;
|
|
36
|
+
userRootVrfKeyShare: Buffer;
|
|
37
|
+
originalPasscodeEncryptionCode?: string;
|
|
38
|
+
webauthnInfo?: WebauthnKeyEncryptionInfo;
|
|
39
|
+
encryptionVersion?: EncryptionVersion;
|
|
40
|
+
}): Promise<KeychainsTriplet>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=eddsaVrfMPCv2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eddsaVrfMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAEL,8BAA8B,EAE9B,8BAA8B,EAK/B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,yBAAyB,EAG1B,MAAM,0BAA0B,CAAC;AA6BlC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6NvB,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,8BAA8B,CAAC,EACnE,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EACnC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,8BAA8B,CAAC;IAcpC,4BAA4B,CAChC,QAAQ,EAAE,yBAAyB,CAAC,8BAA8B,CAAC,EACnE,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,GAClC,OAAO,CAAC,8BAA8B,CAAC;IAa1C,uFAAuF;IACjF,wBAAwB,CAAC,MAAM,EAAE;QACrC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;KACvC,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA+F9B"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.EddsaVrfMPCv2Utils = void 0;
|
|
40
|
+
const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
|
|
41
|
+
const public_types_1 = require("@bitgo/public-types");
|
|
42
|
+
const sdk_lib_safes_1 = require("@bitgo-beta/sdk-lib-safes");
|
|
43
|
+
const assert_1 = __importDefault(require("assert"));
|
|
44
|
+
const pgp = __importStar(require("openpgp"));
|
|
45
|
+
const io_ts_types_1 = require("io-ts-types");
|
|
46
|
+
const opengpgUtils_1 = require("../../opengpgUtils");
|
|
47
|
+
const bitgoPubKeys_1 = require("../../../tss/bitgoPubKeys");
|
|
48
|
+
const codecs_1 = require("../../codecs");
|
|
49
|
+
const eddsaMPCv2_1 = require("./eddsaMPCv2");
|
|
50
|
+
const eddsaMPCv2KeyGenSender_1 = require("./eddsaMPCv2KeyGenSender");
|
|
51
|
+
const typesMPCv2_1 = require("../ecdsa/typesMPCv2");
|
|
52
|
+
const keyShareEnvelope_1 = require("../keyShareEnvelope");
|
|
53
|
+
/** Returns the single payload a VRF round produced, which is what the party signs for BitGo. */
|
|
54
|
+
function getSingleVrfPayload(messages, description) {
|
|
55
|
+
assert_1.default.equal(messages.length, 1, `${description} must produce exactly one message`);
|
|
56
|
+
return messages[0].payload;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Decrypts a BitGo VRF opening encrypted to a client party's GPG key and verifies BitGo's
|
|
60
|
+
* detached signature over the plaintext.
|
|
61
|
+
*/
|
|
62
|
+
async function decryptBitgoVrfOpening(message, partyKey, bitgoKey) {
|
|
63
|
+
const { data } = await pgp.decrypt({
|
|
64
|
+
message: await pgp.readMessage({ armoredMessage: message.message }),
|
|
65
|
+
decryptionKeys: partyKey,
|
|
66
|
+
format: 'binary',
|
|
67
|
+
});
|
|
68
|
+
const plaintext = Buffer.from(data);
|
|
69
|
+
await sdk_lib_mpc_1.MPSComms.verifyMpsMessage({ message: plaintext.toString('base64'), signature: message.signature }, bitgoKey);
|
|
70
|
+
return new Uint8Array(plaintext);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* EdDSA MPCv2 key generation for safe roots. The two-round MPS VRF DKG rides
|
|
74
|
+
* the existing MPCv2-R1/R2 payloads and is only selected when safeId is set.
|
|
75
|
+
*/
|
|
76
|
+
class EddsaVrfMPCv2Utils extends eddsaMPCv2_1.EddsaMPCv2Utils {
|
|
77
|
+
/** @inheritdoc */
|
|
78
|
+
async createKeychains(params) {
|
|
79
|
+
const { userDkg, backupDkg } = await this.getUserAndBackupSession(params.retrofit);
|
|
80
|
+
const userVrfSession = new sdk_lib_mpc_1.MpsVrf.VrfDkg(3, 2, typesMPCv2_1.MPCv2PartiesEnum.USER);
|
|
81
|
+
const backupVrfSession = new sdk_lib_mpc_1.MpsVrf.VrfDkg(3, 2, typesMPCv2_1.MPCv2PartiesEnum.BACKUP);
|
|
82
|
+
const userKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
|
|
83
|
+
const userGpgKey = await pgp.readPrivateKey({ armoredKey: userKeyPair.privateKey });
|
|
84
|
+
const userGpgPublicKey = userKeyPair.publicKey;
|
|
85
|
+
const [userPk, userSk] = await sdk_lib_mpc_1.MPSComms.extractEd25519KeyPair(userGpgKey);
|
|
86
|
+
const backupKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
|
|
87
|
+
const backupGpgKey = await pgp.readPrivateKey({ armoredKey: backupKeyPair.privateKey });
|
|
88
|
+
const backupGpgPublicKey = backupKeyPair.publicKey;
|
|
89
|
+
const [backupPk, backupSk] = await sdk_lib_mpc_1.MPSComms.extractEd25519KeyPair(backupGpgKey);
|
|
90
|
+
const { eddsaMpcv2PublicKey } = await this.getBitgoGpgPubkeyBasedOnFeatureFlags(params.enterprise, true);
|
|
91
|
+
const bitgoPublicGpgKey = eddsaMpcv2PublicKey ?? this.bitgoEddsaMpcv2PublicGpgKey;
|
|
92
|
+
(0, assert_1.default)(bitgoPublicGpgKey, 'Failed to get BitGo EdDSA MPCv2 GPG public key');
|
|
93
|
+
const bitgoPublicGpgKeyArmored = bitgoPublicGpgKey.armor();
|
|
94
|
+
if ((0, bitgoPubKeys_1.envRequiresBitgoPubGpgKeyConfig)(this.bitgo.getEnv())) {
|
|
95
|
+
(0, assert_1.default)((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPublicGpgKeyArmored), 'Invalid BitGo EdDSA MPCv2 GPG public key');
|
|
96
|
+
}
|
|
97
|
+
const bitgoKeyObj = await pgp.readKey({ armoredKey: bitgoPublicGpgKeyArmored });
|
|
98
|
+
const bitgoPk = await sdk_lib_mpc_1.MPSComms.extractEd25519PublicKey(bitgoKeyObj);
|
|
99
|
+
// #region round 1
|
|
100
|
+
await userDkg.initDkg(userSk, [backupPk, bitgoPk]);
|
|
101
|
+
await backupDkg.initDkg(backupSk, [userPk, bitgoPk]);
|
|
102
|
+
const userMsg1 = userDkg.getFirstMessage();
|
|
103
|
+
const backupMsg1 = backupDkg.getFirstMessage();
|
|
104
|
+
const userVrfMsg1 = await userVrfSession.initDkg();
|
|
105
|
+
const backupVrfMsg1 = await backupVrfSession.initDkg();
|
|
106
|
+
const userSignedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg1.payload), userGpgKey);
|
|
107
|
+
const backupSignedMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(backupMsg1.payload), backupGpgKey);
|
|
108
|
+
const userSignedVrfMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(userVrfMsg1.broadcastMessages, 'User VRF round 0'), userGpgKey);
|
|
109
|
+
const backupSignedVrfMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(backupVrfMsg1.broadcastMessages, 'Backup VRF round 0'), backupGpgKey);
|
|
110
|
+
(0, assert_1.default)(io_ts_types_1.NonEmptyString.is(userGpgPublicKey), 'User GPG public key is required');
|
|
111
|
+
(0, assert_1.default)(io_ts_types_1.NonEmptyString.is(backupGpgPublicKey), 'Backup GPG public key is required');
|
|
112
|
+
const round1Sender = (0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, params.enterprise, params.safeId);
|
|
113
|
+
const { sessionId, bitgoMsg1, bitgoVrfMsg1 } = await round1Sender(public_types_1.MPCv2KeyGenStateEnum['MPCv2-R1'], {
|
|
114
|
+
userGpgPublicKey,
|
|
115
|
+
backupGpgPublicKey,
|
|
116
|
+
userMsg1: userSignedMsg1,
|
|
117
|
+
backupMsg1: backupSignedMsg1,
|
|
118
|
+
userVrfMsg1: userSignedVrfMsg1,
|
|
119
|
+
backupVrfMsg1: backupSignedVrfMsg1,
|
|
120
|
+
...(params.retrofit?.walletId ? { walletId: params.retrofit.walletId } : {}),
|
|
121
|
+
});
|
|
122
|
+
(0, assert_1.default)(bitgoVrfMsg1, 'BitGo VRF message 1 not found in round 1 response');
|
|
123
|
+
// #endregion
|
|
124
|
+
// #region round 2
|
|
125
|
+
const bitgoRawMsg1Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg1, bitgoKeyObj);
|
|
126
|
+
const bitgoDeserializedMsg1 = {
|
|
127
|
+
from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
|
|
128
|
+
payload: new Uint8Array(bitgoRawMsg1Bytes),
|
|
129
|
+
};
|
|
130
|
+
const round1Messages = [userMsg1, backupMsg1, bitgoDeserializedMsg1];
|
|
131
|
+
const userRound2Msgs = userDkg.handleIncomingMessages(round1Messages);
|
|
132
|
+
const backupRound2Msgs = backupDkg.handleIncomingMessages(round1Messages);
|
|
133
|
+
(0, assert_1.default)(userRound2Msgs.length === 1, 'User round 1 should produce exactly one round 2 message');
|
|
134
|
+
(0, assert_1.default)(backupRound2Msgs.length === 1, 'Backup round 1 should produce exactly one round 2 message');
|
|
135
|
+
const userMsg2 = userRound2Msgs[0];
|
|
136
|
+
const backupMsg2 = backupRound2Msgs[0];
|
|
137
|
+
const userSignedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(userMsg2.payload), userGpgKey);
|
|
138
|
+
const backupSignedMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(Buffer.from(backupMsg2.payload), backupGpgKey);
|
|
139
|
+
const bitgoVrfRawMsg1Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoVrfMsg1, bitgoKeyObj);
|
|
140
|
+
const bitgoVrfDeserializedMsg1 = {
|
|
141
|
+
from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
|
|
142
|
+
payload: new Uint8Array(bitgoVrfRawMsg1Bytes),
|
|
143
|
+
};
|
|
144
|
+
const userVrfMsg2 = await userVrfSession.handleIncomingMessages({
|
|
145
|
+
broadcastMessages: [...backupVrfMsg1.broadcastMessages, bitgoVrfDeserializedMsg1],
|
|
146
|
+
p2pMessages: [],
|
|
147
|
+
});
|
|
148
|
+
const backupVrfMsg2 = await backupVrfSession.handleIncomingMessages({
|
|
149
|
+
broadcastMessages: [...userVrfMsg1.broadcastMessages, bitgoVrfDeserializedMsg1],
|
|
150
|
+
p2pMessages: [],
|
|
151
|
+
});
|
|
152
|
+
const userSignedVrfMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(userVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.BITGO), 'User VRF round 1 opening for BitGo'), userGpgKey);
|
|
153
|
+
const backupSignedVrfMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(getSingleVrfPayload(backupVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.BITGO), 'Backup VRF round 1 opening for BitGo'), backupGpgKey);
|
|
154
|
+
const round2Sender = (0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, params.enterprise);
|
|
155
|
+
const { sessionId: sessionIdRound2, commonPublicKeychain, bitgoMsg2, bitgoVrfMsgToUser, bitgoVrfMsgToBackup, } = await round2Sender(public_types_1.MPCv2KeyGenStateEnum['MPCv2-R2'], {
|
|
156
|
+
sessionId,
|
|
157
|
+
userMsg2: userSignedMsg2,
|
|
158
|
+
backupMsg2: backupSignedMsg2,
|
|
159
|
+
userVrfMsg2: userSignedVrfMsg2,
|
|
160
|
+
backupVrfMsg2: backupSignedVrfMsg2,
|
|
161
|
+
});
|
|
162
|
+
assert_1.default.equal(sessionId, sessionIdRound2, 'Round 1 and round 2 session IDs do not match');
|
|
163
|
+
(0, assert_1.default)(bitgoVrfMsgToUser, 'BitGo VRF message to user not found in round 2 response');
|
|
164
|
+
(0, assert_1.default)(bitgoVrfMsgToBackup, 'BitGo VRF message to backup not found in round 2 response');
|
|
165
|
+
// VRF finalizes locally after the second existing MPCv2 round. BitGo's openings are encrypted
|
|
166
|
+
// to the recipient party's GPG key and signed by BitGo's key.
|
|
167
|
+
const bitgoVrfOpeningToUser = await decryptBitgoVrfOpening(bitgoVrfMsgToUser, userGpgKey, bitgoKeyObj);
|
|
168
|
+
const bitgoVrfOpeningToBackup = await decryptBitgoVrfOpening(bitgoVrfMsgToBackup, backupGpgKey, bitgoKeyObj);
|
|
169
|
+
await userVrfSession.handleIncomingMessages({
|
|
170
|
+
broadcastMessages: [],
|
|
171
|
+
p2pMessages: [
|
|
172
|
+
...backupVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.USER),
|
|
173
|
+
{ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, to: typesMPCv2_1.MPCv2PartiesEnum.USER, payload: bitgoVrfOpeningToUser },
|
|
174
|
+
],
|
|
175
|
+
});
|
|
176
|
+
await backupVrfSession.handleIncomingMessages({
|
|
177
|
+
broadcastMessages: [],
|
|
178
|
+
p2pMessages: [
|
|
179
|
+
...userVrfMsg2.p2pMessages.filter((message) => message.to === typesMPCv2_1.MPCv2PartiesEnum.BACKUP),
|
|
180
|
+
{ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, to: typesMPCv2_1.MPCv2PartiesEnum.BACKUP, payload: bitgoVrfOpeningToBackup },
|
|
181
|
+
],
|
|
182
|
+
});
|
|
183
|
+
// #endregion
|
|
184
|
+
// #region keychain creation
|
|
185
|
+
const bitgoRawMsg2Bytes = await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg2, bitgoKeyObj);
|
|
186
|
+
const bitgoDeserializedMsg2 = {
|
|
187
|
+
from: typesMPCv2_1.MPCv2PartiesEnum.BITGO,
|
|
188
|
+
payload: new Uint8Array(bitgoRawMsg2Bytes),
|
|
189
|
+
};
|
|
190
|
+
const round2Messages = [userMsg2, backupMsg2, bitgoDeserializedMsg2];
|
|
191
|
+
const userFinalMsgs = userDkg.handleIncomingMessages(round2Messages);
|
|
192
|
+
const backupFinalMsgs = backupDkg.handleIncomingMessages(round2Messages);
|
|
193
|
+
(0, assert_1.default)(userFinalMsgs.length === 0, 'WASM round 2 should produce no output messages for user');
|
|
194
|
+
(0, assert_1.default)(backupFinalMsgs.length === 0, 'WASM round 2 should produce no output messages for backup');
|
|
195
|
+
const userCommonKeychain = userDkg.getCommonKeychain();
|
|
196
|
+
const backupCommonKeychain = backupDkg.getCommonKeychain();
|
|
197
|
+
assert_1.default.equal(userCommonKeychain, commonPublicKeychain, 'User computed keychain does not match BitGo common keychain');
|
|
198
|
+
assert_1.default.equal(backupCommonKeychain, commonPublicKeychain, 'Backup computed keychain does not match BitGo common keychain');
|
|
199
|
+
const { envelope: userEnvelope, reducedEnvelope: userReducedEnvelope } = (0, keyShareEnvelope_1.buildSafeMpcKeyEnvelopes)(userDkg.getKeyShare(), userDkg.getReducedKeyShare(), userVrfSession.getKeyShare());
|
|
200
|
+
const { envelope: backupEnvelope, reducedEnvelope: backupReducedEnvelope } = (0, keyShareEnvelope_1.buildSafeMpcKeyEnvelopes)(backupDkg.getKeyShare(), backupDkg.getReducedKeyShare(), backupVrfSession.getKeyShare());
|
|
201
|
+
const userKeychainPromise = this.addUserKeychain(userCommonKeychain, userEnvelope, userReducedEnvelope, params.passphrase, params.originalPasscodeEncryptionCode, params.webauthnInfo, params.encryptionVersion, params.enterprise, params.safeId);
|
|
202
|
+
const backupKeychainPromise = this.addBackupKeychain(backupCommonKeychain, backupEnvelope, backupReducedEnvelope, params.passphrase, params.originalPasscodeEncryptionCode, params.encryptionVersion, params.enterprise, params.safeId);
|
|
203
|
+
const bitgoKeychainPromise = this.addBitgoKeychain(commonPublicKeychain, params.safeId);
|
|
204
|
+
const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
|
|
205
|
+
userKeychainPromise,
|
|
206
|
+
backupKeychainPromise,
|
|
207
|
+
bitgoKeychainPromise,
|
|
208
|
+
]);
|
|
209
|
+
// #endregion
|
|
210
|
+
return { userKeychain, backupKeychain, bitgoKeychain };
|
|
211
|
+
}
|
|
212
|
+
async sendDerivationRound1BySender(senderFn, userGpgPublicKey, userMsg1, parentKeyId, derivationIndex) {
|
|
213
|
+
const request = (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound1Request, { userGpgPublicKey, userMsg1, parentKeyId, derivationIndex }, 'EddsaMPCv2DeriveRound1Request');
|
|
214
|
+
(0, assert_1.default)(request.derivationIndex <= 0x7fffffff, 'Derivation index must fit a hardened child path');
|
|
215
|
+
return (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound1Response, await senderFn(public_types_1.MPCv2KeyGenStateEnum['MPCv2Derive-R1'], request), 'EddsaMPCv2DeriveRound1Response');
|
|
216
|
+
}
|
|
217
|
+
async sendDerivationRound2BySender(senderFn, sessionId, userMsg2) {
|
|
218
|
+
const request = (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound2Request, { sessionId, userMsg2 }, 'EddsaMPCv2DeriveRound2Request');
|
|
219
|
+
return (0, codecs_1.decodeWithCodec)(public_types_1.EddsaMPCv2DeriveRound2Response, await senderFn(public_types_1.MPCv2KeyGenStateEnum['MPCv2Derive-R2'], request), 'EddsaMPCv2DeriveRound2Response');
|
|
220
|
+
}
|
|
221
|
+
/** Derives the user signing share with BitGo and registers all three safe children. */
|
|
222
|
+
async createSafeChildKeychains(params) {
|
|
223
|
+
(0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.safeId), 'Safe ID is required for child derivation');
|
|
224
|
+
(0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.userRootKeyId), 'User root key ID is required for child derivation');
|
|
225
|
+
(0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.backupRootKeyId), 'Backup root key ID is required for child derivation');
|
|
226
|
+
(0, assert_1.default)(io_ts_types_1.NonEmptyString.is(params.parentKeyId), 'BitGo root key ID is required for child derivation');
|
|
227
|
+
const path = (0, codecs_1.decodeWithCodec)(sdk_lib_safes_1.DerivedFromParentWithHardenedPath, `m/${params.derivationIndex}'`, 'derivedFromParentWithPath');
|
|
228
|
+
const userKeyPair = await (0, opengpgUtils_1.generateGPGKeyPair)('ed25519');
|
|
229
|
+
const userGpgKey = await pgp.readPrivateKey({ armoredKey: userKeyPair.privateKey });
|
|
230
|
+
const { eddsaMpcv2PublicKey } = await this.getBitgoGpgPubkeyBasedOnFeatureFlags(params.enterprise, true);
|
|
231
|
+
const bitgoPublicGpgKey = eddsaMpcv2PublicKey ?? this.bitgoEddsaMpcv2PublicGpgKey;
|
|
232
|
+
(0, assert_1.default)(bitgoPublicGpgKey, 'Failed to get BitGo EdDSA MPCv2 GPG public key');
|
|
233
|
+
const bitgoPublicGpgKeyArmored = bitgoPublicGpgKey.armor();
|
|
234
|
+
if ((0, bitgoPubKeys_1.envRequiresBitgoPubGpgKeyConfig)(this.bitgo.getEnv())) {
|
|
235
|
+
(0, assert_1.default)((0, bitgoPubKeys_1.isBitgoEddsaMpcv2PubKey)(bitgoPublicGpgKeyArmored), 'Invalid BitGo GPG public key');
|
|
236
|
+
}
|
|
237
|
+
const bitgoKeyObj = await pgp.readKey({ armoredKey: bitgoPublicGpgKeyArmored });
|
|
238
|
+
const userDeriveSession = new sdk_lib_mpc_1.MpsDerive.Derive(3, 2, typesMPCv2_1.MPCv2PartiesEnum.USER, params.userRootKeyShare, params.userRootVrfKeyShare, path);
|
|
239
|
+
const userMsg1 = await userDeriveSession.initDerive();
|
|
240
|
+
const signedUserMsg1 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(userMsg1.payload, userGpgKey);
|
|
241
|
+
const { sessionId, bitgoMsg1 } = await this.sendDerivationRound1BySender((0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForSafeChild)(this.bitgo, params.enterprise, params.safeId), userKeyPair.publicKey, signedUserMsg1, params.parentKeyId, params.derivationIndex);
|
|
242
|
+
const [userMsg2] = userDeriveSession.handleIncomingMessages([
|
|
243
|
+
{ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, payload: await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg1, bitgoKeyObj) },
|
|
244
|
+
]);
|
|
245
|
+
(0, assert_1.default)(userMsg2, 'User derive round 1 must produce a round 2 message');
|
|
246
|
+
const signedUserMsg2 = await sdk_lib_mpc_1.MPSComms.detachSignMpsMessage(userMsg2.payload, userGpgKey);
|
|
247
|
+
const { sessionId: sessionIdRound2, commonPublicKeychain, bitgoMsg2, } = await this.sendDerivationRound2BySender((0, eddsaMPCv2KeyGenSender_1.KeyGenSenderForSafeChild)(this.bitgo, params.enterprise, params.safeId), sessionId, signedUserMsg2);
|
|
248
|
+
assert_1.default.equal(sessionId, sessionIdRound2, 'Round 1 and 2 Session IDs do not match');
|
|
249
|
+
const finalMessages = userDeriveSession.handleIncomingMessages([
|
|
250
|
+
{ from: typesMPCv2_1.MPCv2PartiesEnum.BITGO, payload: await sdk_lib_mpc_1.MPSComms.verifyMpsMessage(bitgoMsg2, bitgoKeyObj) },
|
|
251
|
+
]);
|
|
252
|
+
assert_1.default.equal(finalMessages.length, 0, 'MPS derive round 2 must not produce another message');
|
|
253
|
+
const commonKeychain = userDeriveSession.getCommonKeychain();
|
|
254
|
+
assert_1.default.equal(commonKeychain, commonPublicKeychain, 'User and BitGo common keychains do not match');
|
|
255
|
+
const [userKeychain, backupKeychain, bitgoKeychain] = await Promise.all([
|
|
256
|
+
this.addUserKeychain(commonKeychain, userDeriveSession.getKeyShare(), userDeriveSession.getReducedKeyShare(), params.passphrase, params.originalPasscodeEncryptionCode, params.webauthnInfo, params.encryptionVersion, params.enterprise, params.safeId, { parentKeyId: params.userRootKeyId, index: params.derivationIndex }),
|
|
257
|
+
this.addBackupKeychain(commonKeychain, undefined, undefined, params.passphrase, params.originalPasscodeEncryptionCode, params.encryptionVersion, params.enterprise, params.safeId, { parentKeyId: params.backupRootKeyId, index: params.derivationIndex }),
|
|
258
|
+
this.addBitgoKeychain(commonKeychain, params.safeId, {
|
|
259
|
+
parentKeyId: params.parentKeyId,
|
|
260
|
+
index: params.derivationIndex,
|
|
261
|
+
}),
|
|
262
|
+
]);
|
|
263
|
+
return { userKeychain, backupKeychain, bitgoKeychain };
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
exports.EddsaVrfMPCv2Utils = EddsaVrfMPCv2Utils;
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2FWcmZNUEN2Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FWcmZNUEN2Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBcUY7QUFDckYsc0RBUzZCO0FBQzdCLDZEQUE4RTtBQUM5RSxvREFBNEI7QUFDNUIsNkNBQStCO0FBQy9CLDZDQUE2QztBQUs3QyxxREFBd0Q7QUFFeEQsNERBQXFHO0FBQ3JHLHlDQUErQztBQUMvQyw2Q0FBK0M7QUFDL0MscUVBSWtDO0FBQ2xDLG9EQUF1RDtBQUN2RCwwREFBK0Q7QUFFL0QsZ0dBQWdHO0FBQ2hHLFNBQVMsbUJBQW1CLENBQUMsUUFBbUMsRUFBRSxXQUFtQjtJQUNuRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLFdBQVcsbUNBQW1DLENBQUMsQ0FBQztJQUNwRixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxzQkFBc0IsQ0FDbkMsT0FBZ0MsRUFDaEMsUUFBd0IsRUFDeEIsUUFBaUI7SUFFakIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNqQyxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRSxjQUFjLEVBQUUsUUFBUTtRQUN4QixNQUFNLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUM7SUFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sc0JBQVEsQ0FBQyxnQkFB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RUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUN2RTtZQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDbkQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWU7YUFDOUIsQ0FBQztTQUNILENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQXpYRCxnREF5WEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNUFNDb21tcywgTXBzRGVyaXZlLCBNcHNWcmYsIHR5cGUgTVBTVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQge1xuICBFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVxdWVzdCxcbiAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMVJlc3BvbnNlLFxuICBFZGRzYU1QQ3YyRGVyaXZlUm91bmQyUmVxdWVzdCxcbiAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlLFxuICBNUEN2MktleUdlblN0YXRlRW51bSxcbiAgdHlwZSBFZGRzYU1QQ3YyS2V5R2VuUm91bmQxUmVzcG9uc2UsXG4gIHR5cGUgRWRkc2FNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlLFxuICB0eXBlIEVkZHNhTVBDdjJTaWduZWRNZXNzYWdlLFxufSBmcm9tICdAYml0Z28vcHVibGljLXR5cGVzJztcbmltcG9ydCB7IERlcml2ZWRGcm9tUGFyZW50V2l0aEhhcmRlbmVkUGF0aCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItc2FmZXMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgcGdwIGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgTm9uRW1wdHlTdHJpbmcgfSBmcm9tICdpby10cy10eXBlcyc7XG5cbmltcG9ydCB0eXBlIHsgS2V5Y2hhaW5zVHJpcGxldCB9IGZyb20gJy4uLy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB0eXBlIHsgRGVjcnlwdGVkUmV0cm9maXRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4va2V5Y2hhaW4vaUtleWNoYWlucyc7XG5pbXBvcnQgdHlwZSB7IEVuY3J5cHRpb25WZXJzaW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBpJztcbmltcG9ydCB7IGdlbmVyYXRlR1BHS2V5UGFpciB9IGZyb20gJy4uLy4uL29wZW5ncGdVdGlscyc7XG5pbXBvcnQgdHlwZSB7IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm8gfSBmcm9tICcuLi8uLi8uLi9rZXljaGFpbic7XG5pbXBvcnQgeyBlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnLCBpc0JpdGdvRWRkc2FNcGN2MlB1YktleSB9IGZyb20gJy4uLy4uLy4uL3Rzcy9iaXRnb1B1YktleXMnO1xuaW1wb3J0IHsgZGVjb2RlV2l0aENvZGVjIH0gZnJvbSAnLi4vLi4vY29kZWNzJztcbmltcG9ydCB7IEVkZHNhTVBDdjJVdGlscyB9IGZyb20gJy4vZWRkc2FNUEN2Mic7XG5pbXBvcnQge1xuICBFZGRzYU1QQ3YyRGVyaXZlS2V5U2VuZEZuLFxuICBLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlLFxuICBLZXlHZW5TZW5kZXJGb3JTYWZlQ2hpbGQsXG59IGZyb20gJy4vZWRkc2FNUEN2MktleUdlblNlbmRlcic7XG5pbXBvcnQgeyBNUEN2MlBhcnRpZXNFbnVtIH0gZnJvbSAnLi4vZWNkc2EvdHlwZXNNUEN2Mic7XG5pbXBvcnQgeyBidWlsZFNhZmVNcGNLZXlFbnZlbG9wZXMgfSBmcm9tICcuLi9rZXlTaGFyZUVudmVsb3BlJztcblxuLyoqIFJldHVybnMgdGhlIHNpbmdsZSBwYXlsb2FkIGEgVlJGIHJvdW5kIHByb2R1Y2VkLCB3aGljaCBpcyB3aGF0IHRoZSBwYXJ0eSBzaWducyBmb3IgQml0R28uICovXG5mdW5jdGlvbiBnZXRTaW5nbGVWcmZQYXlsb2FkKG1lc3NhZ2VzOiB7IHBheWxvYWQ6IFVpbnQ4QXJyYXkgfVtdLCBkZXNjcmlwdGlvbjogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGFzc2VydC5lcXVhbChtZXNzYWdlcy5sZW5ndGgsIDEsIGAke2Rlc2NyaXB0aW9ufSBtdXN0IHByb2R1Y2UgZXhhY3RseSBvbmUgbWVzc2FnZWApO1xuICByZXR1cm4gbWVzc2FnZXNbMF0ucGF5bG9hZDtcbn1cblxuLyoqXG4gKiBEZWNyeXB0cyBhIEJpdEdvIFZSRiBvcGVuaW5nIGVuY3J5cHRlZCB0byBhIGNsaWVudCBwYXJ0eSdzIEdQRyBrZXkgYW5kIHZlcmlmaWVzIEJpdEdvJ3NcbiAqIGRldGFjaGVkIHNpZ25hdHVyZSBvdmVyIHRoZSBwbGFpbnRleHQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRlY3J5cHRCaXRnb1ZyZk9wZW5pbmcoXG4gIG1lc3NhZ2U6IEVkZHNhTVBDdjJTaWduZWRNZXNzYWdlLFxuICBwYXJ0eUtleTogcGdwLlByaXZhdGVLZXksXG4gIGJpdGdvS2V5OiBwZ3AuS2V5XG4pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBwZ3AuZGVjcnlwdCh7XG4gICAgbWVzc2FnZTogYXdhaXQgcGdwLnJlYWRNZXNzYWdlKHsgYXJtb3JlZE1lc3NhZ2U6IG1lc3NhZ2UubWVzc2FnZSB9KSxcbiAgICBkZWNyeXB0aW9uS2V5czogcGFydHlLZXksXG4gICAgZm9ybWF0OiAnYmluYXJ5JyxcbiAgfSk7XG4gIGNvbnN0IHBsYWludGV4dCA9IEJ1ZmZlci5mcm9tKGRhdGEpO1xuICBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKHsgbWVzc2FnZTogcGxhaW50ZXh0LnRvU3RyaW5nKCdiYXNlNjQnKSwgc2lnbmF0dXJlOiBtZXNzYWdlLnNpZ25hdHVyZSB9LCBiaXRnb0tleSk7XG4gIHJldHVybiBuZXcgVWludDhBcnJheShwbGFpbnRleHQpO1xufVxuXG4vKipcbiAqIEVkRFNBIE1QQ3YyIGtleSBnZW5lcmF0aW9uIGZvciBzYWZlIHJvb3RzLiBUaGUgdHdvLXJvdW5kIE1QUyBWUkYgREtHIHJpZGVzXG4gKiB0aGUgZXhpc3RpbmcgTVBDdjItUjEvUjIgcGF5bG9hZHMgYW5kIGlzIG9ubHkgc2VsZWN0ZWQgd2hlbiBzYWZlSWQgaXMgc2V0LlxuICovXG5leHBvcnQgY2xhc3MgRWRkc2FWcmZNUEN2MlV0aWxzIGV4dGVuZHMgRWRkc2FNUEN2MlV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZTogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgICByZXRyb2ZpdD86IERlY3J5cHRlZFJldHJvZml0UGF5bG9hZDtcbiAgICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvO1xuICAgIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gICAgc2FmZUlkOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+IHtcbiAgICBjb25zdCB7IHVzZXJEa2csIGJhY2t1cERrZyB9ID0gYXdhaXQgdGhpcy5nZXRVc2VyQW5kQmFja3VwU2Vzc2lvbihwYXJhbXMucmV0cm9maXQpO1xuICAgIGNvbnN0IHVzZXJWcmZTZXNzaW9uID0gbmV3IE1wc1ZyZi5WcmZEa2coMywgMiwgTVBDdjJQYXJ0aWVzRW51bS5VU0VSKTtcbiAgICBjb25zdCBiYWNrdXBWcmZTZXNzaW9uID0gbmV3IE1wc1ZyZi5WcmZEa2coMywgMiwgTVBDdjJQYXJ0aWVzRW51bS5CQUNLVVApO1xuXG4gICAgY29uc3QgdXNlcktleVBhaXIgPSBhd2FpdCBnZW5lcmF0ZUdQR0tleVBhaXIoJ2VkMjU1MTknKTtcbiAgICBjb25zdCB1c2VyR3BnS2V5ID0gYXdhaXQgcGdwLnJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogdXNlcktleVBhaXIucHJpdmF0ZUtleSB9KTtcbiAgICBjb25zdCB1c2VyR3BnUHVibGljS2V5ID0gdXNlcktleVBhaXIucHVibGljS2V5O1xuICAgIGNvbnN0IFt1c2VyUGssIHVzZXJTa10gPSBhd2FpdCBNUFNDb21tcy5leHRyYWN0RWQyNTUxOUtleVBhaXIodXNlckdwZ0tleSk7XG5cbiAgICBjb25zdCBiYWNrdXBLZXlQYWlyID0gYXdhaXQgZ2VuZXJhdGVHUEdLZXlQYWlyKCdlZDI1NTE5Jyk7XG4gICAgY29uc3QgYmFja3VwR3BnS2V5ID0gYXdhaXQgcGdwLnJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogYmFja3VwS2V5UGFpci5wcml2YXRlS2V5IH0pO1xuICAgIGNvbnN0IGJhY2t1cEdwZ1B1YmxpY0tleSA9IGJhY2t1cEtleVBhaXIucHVibGljS2V5O1xuICAgIGNvbnN0IFtiYWNrdXBQaywgYmFja3VwU2tdID0gYXdhaXQgTVBTQ29tbXMuZXh0cmFjdEVkMjU1MTlLZXlQYWlyKGJhY2t1cEdwZ0tleSk7XG5cbiAgICBjb25zdCB7IGVkZHNhTXBjdjJQdWJsaWNLZXkgfSA9IGF3YWl0IHRoaXMuZ2V0Qml0Z29HcGdQdWJrZXlCYXNlZE9uRmVhdHVyZUZsYWdzKHBhcmFtcy5lbnRlcnByaXNlLCB0cnVlKTtcbiAgICBjb25zdCBiaXRnb1B1YmxpY0dwZ0tleSA9IGVkZHNhTXBjdjJQdWJsaWNLZXkgPz8gdGhpcy5iaXRnb0VkZHNhTXBjdjJQdWJsaWNHcGdLZXk7XG4gICAgYXNzZXJ0KGJpdGdvUHVibGljR3BnS2V5LCAnRmFpbGVkIHRvIGdldCBCaXRHbyBFZERTQSBNUEN2MiBHUEcgcHVibGljIGtleScpO1xuICAgIGNvbnN0IGJpdGdvUHVibGljR3BnS2V5QXJtb3JlZCA9IGJpdGdvUHVibGljR3BnS2V5LmFybW9yKCk7XG5cbiAgICBpZiAoZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZyh0aGlzLmJpdGdvLmdldEVudigpKSkge1xuICAgICAgYXNzZXJ0KGlzQml0Z29FZGRzYU1wY3YyUHViS2V5KGJpdGdvUHVibGljR3BnS2V5QXJtb3JlZCksICdJbnZhbGlkIEJpdEdvIEVkRFNBIE1QQ3YyIEdQRyBwdWJsaWMga2V5Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgYml0Z29LZXlPYmogPSBhd2FpdCBwZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IGJpdGdvUHVibGljR3BnS2V5QXJtb3JlZCB9KTtcbiAgICBjb25zdCBiaXRnb1BrID0gYXdhaXQgTVBTQ29tbXMuZXh0cmFjdEVkMjU1MTlQdWJsaWNLZXkoYml0Z29LZXlPYmopO1xuXG4gICAgLy8gI3JlZ2lvbiByb3VuZCAxXG4gICAgYXdhaXQgdXNlckRrZy5pbml0RGtnKHVzZXJTaywgW2JhY2t1cFBrLCBiaXRnb1BrXSk7XG4gICAgYXdhaXQgYmFja3VwRGtnLmluaXREa2coYmFja3VwU2ssIFt1c2VyUGssIGJpdGdvUGtdKTtcblxuICAgIGNvbnN0IHVzZXJNc2cxID0gdXNlckRrZy5nZXRGaXJzdE1lc3NhZ2UoKTtcbiAgICBjb25zdCBiYWNrdXBNc2cxID0gYmFja3VwRGtnLmdldEZpcnN0TWVzc2FnZSgpO1xuICAgIGNvbnN0IHVzZXJWcmZNc2cxID0gYXdhaXQgdXNlclZyZlNlc3Npb24uaW5pdERrZygpO1xuICAgIGNvbnN0IGJhY2t1cFZyZk1zZzEgPSBhd2FpdCBiYWNrdXBWcmZTZXNzaW9uLmluaXREa2coKTtcblxuICAgIGNvbnN0IHVzZXJTaWduZWRNc2cxID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoQnVmZmVyLmZyb20odXNlck1zZzEucGF5bG9hZCksIHVzZXJHcGdLZXkpO1xuICAgIGNvbnN0IGJhY2t1cFNpZ25lZE1zZzEgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShCdWZmZXIuZnJvbShiYWNrdXBNc2cxLnBheWxvYWQpLCBiYWNrdXBHcGdLZXkpO1xuICAgIGNvbnN0IHVzZXJTaWduZWRWcmZNc2cxID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoXG4gICAgICBnZXRTaW5nbGVWcmZQYXlsb2FkKHVzZXJWcmZNc2cxLmJyb2FkY2FzdE1lc3NhZ2VzLCAnVXNlciBWUkYgcm91bmQgMCcpLFxuICAgICAgdXNlckdwZ0tleVxuICAgICk7XG4gICAgY29uc3QgYmFja3VwU2lnbmVkVnJmTXNnMSA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKFxuICAgICAgZ2V0U2luZ2xlVnJmUGF5bG9hZChiYWNrdXBWcmZNc2cxLmJyb2FkY2FzdE1lc3NhZ2VzLCAnQmFja3VwIFZSRiByb3VuZCAwJyksXG4gICAgICBiYWNrdXBHcGdLZXlcbiAgICApO1xuXG4gICAgYXNzZXJ0KE5vbkVtcHR5U3RyaW5nLmlzKHVzZXJHcGdQdWJsaWNLZXkpLCAnVXNlciBHUEcgcHVibGljIGtleSBpcyByZXF1aXJlZCcpO1xuICAgIGFzc2VydChOb25FbXB0eVN0cmluZy5pcyhiYWNrdXBHcGdQdWJsaWNLZXkpLCAnQmFja3VwIEdQRyBwdWJsaWMga2V5IGlzIHJlcXVpcmVkJyk7XG5cbiAgICBjb25zdCByb3VuZDFTZW5kZXIgPSBLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlPEVkZHNhTVBDdjJLZXlHZW5Sb3VuZDFSZXNwb25zZT4oXG4gICAgICB0aGlzLmJpdGdvLFxuICAgICAgcGFyYW1zLmVudGVycHJpc2UsXG4gICAgICBwYXJhbXMuc2FmZUlkXG4gICAgKTtcbiAgICBjb25zdCB7IHNlc3Npb25JZCwgYml0Z29Nc2cxLCBiaXRnb1ZyZk1zZzEgfSA9IGF3YWl0IHJvdW5kMVNlbmRlcihNUEN2MktleUdlblN0YXRlRW51bVsnTVBDdjItUjEnXSwge1xuICAgICAgdXNlckdwZ1B1YmxpY0tleSxcbiAgICAgIGJhY2t1cEdwZ1B1YmxpY0tleSxcbiAgICAgIHVzZXJNc2cxOiB1c2VyU2lnbmVkTXNnMSxcbiAgICAgIGJhY2t1cE1zZzE6IGJhY2t1cFNpZ25lZE1zZzEsXG4gICAgICB1c2VyVnJmTXNnMTogdXNlclNpZ25lZFZyZk1zZzEsXG4gICAgICBiYWNrdXBWcmZNc2cxOiBiYWNrdXBTaWduZWRWcmZNc2cxLFxuICAgICAgLi4uKHBhcmFtcy5yZXRyb2ZpdD8ud2FsbGV0SWQgPyB7IHdhbGxldElkOiBwYXJhbXMucmV0cm9maXQud2FsbGV0SWQgfSA6IHt9KSxcbiAgICB9KTtcbiAgICBhc3NlcnQoYml0Z29WcmZNc2cxLCAnQml0R28gVlJGIG1lc3NhZ2UgMSBub3QgZm91bmQgaW4gcm91bmQgMSByZXNwb25zZScpO1xuICAgIC8vICNlbmRyZWdpb25cblxuICAgIC8vICNyZWdpb24gcm91bmQgMlxuICAgIGNvbnN0IGJpdGdvUmF3TXNnMUJ5dGVzID0gYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShiaXRnb01zZzEsIGJpdGdvS2V5T2JqKTtcbiAgICBjb25zdCBiaXRnb0Rlc2VyaWFsaXplZE1zZzE6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2UgPSB7XG4gICAgICBmcm9tOiBNUEN2MlBhcnRpZXNFbnVtLkJJVEdPLFxuICAgICAgcGF5bG9hZDogbmV3IFVpbnQ4QXJyYXkoYml0Z29SYXdNc2cxQnl0ZXMpLFxuICAgIH07XG4gICAgY29uc3Qgcm91bmQxTWVzc2FnZXM6IE1QU1R5cGVzLkRlc2VyaWFsaXplZE1lc3NhZ2VzID0gW3VzZXJNc2cxLCBiYWNrdXBNc2cxLCBiaXRnb0Rlc2VyaWFsaXplZE1zZzFdO1xuXG4gICAgY29uc3QgdXNlclJvdW5kMk1zZ3MgPSB1c2VyRGtnLmhhbmRsZUluY29taW5nTWVzc2FnZXMocm91bmQxTWVzc2FnZXMpO1xuICAgIGNvbnN0IGJhY2t1cFJvdW5kMk1zZ3MgPSBiYWNrdXBEa2cuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhyb3VuZDFNZXNzYWdlcyk7XG4gICAgYXNzZXJ0KHVzZXJSb3VuZDJNc2dzLmxlbmd0aCA9PT0gMSwgJ1VzZXIgcm91bmQgMSBzaG91bGQgcHJvZHVjZSBleGFjdGx5IG9uZSByb3VuZCAyIG1lc3NhZ2UnKTtcbiAgICBhc3NlcnQoYmFja3VwUm91bmQyTXNncy5sZW5ndGggPT09IDEsICdCYWNrdXAgcm91bmQgMSBzaG91bGQgcHJvZHVjZSBleGFjdGx5IG9uZSByb3VuZCAyIG1lc3NhZ2UnKTtcblxuICAgIGNvbnN0IHVzZXJNc2cyID0gdXNlclJvdW5kMk1zZ3NbMF07XG4gICAgY29uc3QgYmFja3VwTXNnMiA9IGJhY2t1cFJvdW5kMk1zZ3NbMF07XG4gICAgY29uc3QgdXNlclNpZ25lZE1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZShCdWZmZXIuZnJvbSh1c2VyTXNnMi5wYXlsb2FkKSwgdXNlckdwZ0tleSk7XG4gICAgY29uc3QgYmFja3VwU2lnbmVkTXNnMiA9IGF3YWl0IE1QU0NvbW1zLmRldGFjaFNpZ25NcHNNZXNzYWdlKEJ1ZmZlci5mcm9tKGJhY2t1cE1zZzIucGF5bG9hZCksIGJhY2t1cEdwZ0tleSk7XG5cbiAgICBjb25zdCBiaXRnb1ZyZlJhd01zZzFCeXRlcyA9IGF3YWl0IE1QU0NvbW1zLnZlcmlmeU1wc01lc3NhZ2UoYml0Z29WcmZNc2cxLCBiaXRnb0tleU9iaik7XG4gICAgY29uc3QgYml0Z29WcmZEZXNlcmlhbGl6ZWRNc2cxOiBNUFNUeXBlcy5EZXNlcmlhbGl6ZWRNZXNzYWdlID0ge1xuICAgICAgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTyxcbiAgICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KGJpdGdvVnJmUmF3TXNnMUJ5dGVzKSxcbiAgICB9O1xuICAgIGNvbnN0IHVzZXJWcmZNc2cyID0gYXdhaXQgdXNlclZyZlNlc3Npb24uaGFuZGxlSW5jb21pbmdNZXNzYWdlcyh7XG4gICAgICBicm9hZGNhc3RNZXNzYWdlczogWy4uLmJhY2t1cFZyZk1zZzEuYnJvYWRjYXN0TWVzc2FnZXMsIGJpdGdvVnJmRGVzZXJpYWxpemVkTXNnMV0sXG4gICAgICBwMnBNZXNzYWdlczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgYmFja3VwVnJmTXNnMiA9IGF3YWl0IGJhY2t1cFZyZlNlc3Npb24uaGFuZGxlSW5jb21pbmdNZXNzYWdlcyh7XG4gICAgICBicm9hZGNhc3RNZXNzYWdlczogWy4uLnVzZXJWcmZNc2cxLmJyb2FkY2FzdE1lc3NhZ2VzLCBiaXRnb1ZyZkRlc2VyaWFsaXplZE1zZzFdLFxuICAgICAgcDJwTWVzc2FnZXM6IFtdLFxuICAgIH0pO1xuICAgIGNvbnN0IHVzZXJTaWduZWRWcmZNc2cyID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoXG4gICAgICBnZXRTaW5nbGVWcmZQYXlsb2FkKFxuICAgICAgICB1c2VyVnJmTXNnMi5wMnBNZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudG8gPT09IE1QQ3YyUGFydGllc0VudW0uQklUR08pLFxuICAgICAgICAnVXNlciBWUkYgcm91bmQgMSBvcGVuaW5nIGZvciBCaXRHbydcbiAgICAgICksXG4gICAgICB1c2VyR3BnS2V5XG4gICAgKTtcbiAgICBjb25zdCBiYWNrdXBTaWduZWRWcmZNc2cyID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UoXG4gICAgICBnZXRTaW5nbGVWcmZQYXlsb2FkKFxuICAgICAgICBiYWNrdXBWcmZNc2cyLnAycE1lc3NhZ2VzLmZpbHRlcigobWVzc2FnZSkgPT4gbWVzc2FnZS50byA9PT0gTVBDdjJQYXJ0aWVzRW51bS5CSVRHTyksXG4gICAgICAgICdCYWNrdXAgVlJGIHJvdW5kIDEgb3BlbmluZyBmb3IgQml0R28nXG4gICAgICApLFxuICAgICAgYmFja3VwR3BnS2V5XG4gICAgKTtcblxuICAgIGNvbnN0IHJvdW5kMlNlbmRlciA9IEtleUdlblNlbmRlckZvckVudGVycHJpc2U8RWRkc2FNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlPih0aGlzLmJpdGdvLCBwYXJhbXMuZW50ZXJwcmlzZSk7XG4gICAgY29uc3Qge1xuICAgICAgc2Vzc2lvbklkOiBzZXNzaW9uSWRSb3VuZDIsXG4gICAgICBjb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgIGJpdGdvTXNnMixcbiAgICAgIGJpdGdvVnJmTXNnVG9Vc2VyLFxuICAgICAgYml0Z29WcmZNc2dUb0JhY2t1cCxcbiAgICB9ID0gYXdhaXQgcm91bmQyU2VuZGVyKE1QQ3YyS2V5R2VuU3RhdGVFbnVtWydNUEN2Mi1SMiddLCB7XG4gICAgICBzZXNzaW9uSWQsXG4gICAgICB1c2VyTXNnMjogdXNlclNpZ25lZE1zZzIsXG4gICAgICBiYWNrdXBNc2cyOiBiYWNrdXBTaWduZWRNc2cyLFxuICAgICAgdXNlclZyZk1zZzI6IHVzZXJTaWduZWRWcmZNc2cyLFxuICAgICAgYmFja3VwVnJmTXNnMjogYmFja3VwU2lnbmVkVnJmTXNnMixcbiAgICB9KTtcbiAgICBhc3NlcnQuZXF1YWwoc2Vzc2lvbklkLCBzZXNzaW9uSWRSb3VuZDIsICdSb3VuZCAxIGFuZCByb3VuZCAyIHNlc3Npb24gSURzIGRvIG5vdCBtYXRjaCcpO1xuICAgIGFzc2VydChiaXRnb1ZyZk1zZ1RvVXNlciwgJ0JpdEdvIFZSRiBtZXNzYWdlIHRvIHVzZXIgbm90IGZvdW5kIGluIHJvdW5kIDIgcmVzcG9uc2UnKTtcbiAgICBhc3NlcnQoYml0Z29WcmZNc2dUb0JhY2t1cCwgJ0JpdEdvIFZSRiBtZXNzYWdlIHRvIGJhY2t1cCBub3QgZm91bmQgaW4gcm91bmQgMiByZXNwb25zZScpO1xuXG4gICAgLy8gVlJGIGZpbmFsaXplcyBsb2NhbGx5IGFmdGVyIHRoZSBzZWNvbmQgZXhpc3RpbmcgTVBDdjIgcm91bmQuIEJpdEdvJ3Mgb3BlbmluZ3MgYXJlIGVuY3J5cHRlZFxuICAgIC8vIHRvIHRoZSByZWNpcGllbnQgcGFydHkncyBHUEcga2V5IGFuZCBzaWduZWQgYnkgQml0R28ncyBrZXkuXG4gICAgY29uc3QgYml0Z29WcmZPcGVuaW5nVG9Vc2VyID0gYXdhaXQgZGVjcnlwdEJpdGdvVnJmT3BlbmluZyhiaXRnb1ZyZk1zZ1RvVXNlciwgdXNlckdwZ0tleSwgYml0Z29LZXlPYmopO1xuICAgIGNvbnN0IGJpdGdvVnJmT3BlbmluZ1RvQmFja3VwID0gYXdhaXQgZGVjcnlwdEJpdGdvVnJmT3BlbmluZyhiaXRnb1ZyZk1zZ1RvQmFja3VwLCBiYWNrdXBHcGdLZXksIGJpdGdvS2V5T2JqKTtcbiAgICBhd2FpdCB1c2VyVnJmU2Vzc2lvbi5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHtcbiAgICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSxcbiAgICAgIHAycE1lc3NhZ2VzOiBbXG4gICAgICAgIC4uLmJhY2t1cFZyZk1zZzIucDJwTWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlKSA9PiBtZXNzYWdlLnRvID09PSBNUEN2MlBhcnRpZXNFbnVtLlVTRVIpLFxuICAgICAgICB7IGZyb206IE1QQ3YyUGFydGllc0VudW0uQklUR08sIHRvOiBNUEN2MlBhcnRpZXNFbnVtLlVTRVIsIHBheWxvYWQ6IGJpdGdvVnJmT3BlbmluZ1RvVXNlciB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBhd2FpdCBiYWNrdXBWcmZTZXNzaW9uLmhhbmRsZUluY29taW5nTWVzc2FnZXMoe1xuICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IFtdLFxuICAgICAgcDJwTWVzc2FnZXM6IFtcbiAgICAgICAgLi4udXNlclZyZk1zZzIucDJwTWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlKSA9PiBtZXNzYWdlLnRvID09PSBNUEN2MlBhcnRpZXNFbnVtLkJBQ0tVUCksXG4gICAgICAgIHsgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTywgdG86IE1QQ3YyUGFydGllc0VudW0uQkFDS1VQLCBwYXlsb2FkOiBiaXRnb1ZyZk9wZW5pbmdUb0JhY2t1cCB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAvLyAjcmVnaW9uIGtleWNoYWluIGNyZWF0aW9uXG4gICAgY29uc3QgYml0Z29SYXdNc2cyQnl0ZXMgPSBhd2FpdCBNUFNDb21tcy52ZXJpZnlNcHNNZXNzYWdlKGJpdGdvTXNnMiwgYml0Z29LZXlPYmopO1xuICAgIGNvbnN0IGJpdGdvRGVzZXJpYWxpemVkTXNnMjogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZSA9IHtcbiAgICAgIGZyb206IE1QQ3YyUGFydGllc0VudW0uQklUR08sXG4gICAgICBwYXlsb2FkOiBuZXcgVWludDhBcnJheShiaXRnb1Jhd01zZzJCeXRlcyksXG4gICAgfTtcbiAgICBjb25zdCByb3VuZDJNZXNzYWdlczogTVBTVHlwZXMuRGVzZXJpYWxpemVkTWVzc2FnZXMgPSBbdXNlck1zZzIsIGJhY2t1cE1zZzIsIGJpdGdvRGVzZXJpYWxpemVkTXNnMl07XG5cbiAgICBjb25zdCB1c2VyRmluYWxNc2dzID0gdXNlckRrZy5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKHJvdW5kMk1lc3NhZ2VzKTtcbiAgICBjb25zdCBiYWNrdXBGaW5hbE1zZ3MgPSBiYWNrdXBEa2cuaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhyb3VuZDJNZXNzYWdlcyk7XG4gICAgYXNzZXJ0KHVzZXJGaW5hbE1zZ3MubGVuZ3RoID09PSAwLCAnV0FTTSByb3VuZCAyIHNob3VsZCBwcm9kdWNlIG5vIG91dHB1dCBtZXNzYWdlcyBmb3IgdXNlcicpO1xuICAgIGFzc2VydChiYWNrdXBGaW5hbE1zZ3MubGVuZ3RoID09PSAwLCAnV0FTTSByb3VuZCAyIHNob3VsZCBwcm9kdWNlIG5vIG91dHB1dCBtZXNzYWdlcyBmb3IgYmFja3VwJyk7XG5cbiAgICBjb25zdCB1c2VyQ29tbW9uS2V5Y2hhaW4gPSB1c2VyRGtnLmdldENvbW1vbktleWNoYWluKCk7XG4gICAgY29uc3QgYmFja3VwQ29tbW9uS2V5Y2hhaW4gPSBiYWNrdXBEa2cuZ2V0Q29tbW9uS2V5Y2hhaW4oKTtcbiAgICBhc3NlcnQuZXF1YWwoXG4gICAgICB1c2VyQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBjb21tb25QdWJsaWNLZXljaGFpbixcbiAgICAgICdVc2VyIGNvbXB1dGVkIGtleWNoYWluIGRvZXMgbm90IG1hdGNoIEJpdEdvIGNvbW1vbiBrZXljaGFpbidcbiAgICApO1xuICAgIGFzc2VydC5lcXVhbChcbiAgICAgIGJhY2t1cENvbW1vbktleWNoYWluLFxuICAgICAgY29tbW9uUHVibGljS2V5Y2hhaW4sXG4gICAgICAnQmFja3VwIGNvbXB1dGVkIGtleWNoYWluIGRvZXMgbm90IG1hdGNoIEJpdEdvIGNvbW1vbiBrZXljaGFpbidcbiAgICApO1xuXG4gICAgY29uc3QgeyBlbnZlbG9wZTogdXNlckVudmVsb3BlLCByZWR1Y2VkRW52ZWxvcGU6IHVzZXJSZWR1Y2VkRW52ZWxvcGUgfSA9IGJ1aWxkU2FmZU1wY0tleUVudmVsb3BlcyhcbiAgICAgIHVzZXJEa2cuZ2V0S2V5U2hhcmUoKSxcbiAgICAgIHVzZXJEa2cuZ2V0UmVkdWNlZEtleVNoYXJlKCksXG4gICAgICB1c2VyVnJmU2Vzc2lvbi5nZXRLZXlTaGFyZSgpXG4gICAgKTtcbiAgICBjb25zdCB7IGVudmVsb3BlOiBiYWNrdXBFbnZlbG9wZSwgcmVkdWNlZEVudmVsb3BlOiBiYWNrdXBSZWR1Y2VkRW52ZWxvcGUgfSA9IGJ1aWxkU2FmZU1wY0tleUVudmVsb3BlcyhcbiAgICAgIGJhY2t1cERrZy5nZXRLZXlTaGFyZSgpLFxuICAgICAgYmFja3VwRGtnLmdldFJlZHVjZWRLZXlTaGFyZSgpLFxuICAgICAgYmFja3VwVnJmU2Vzc2lvbi5nZXRLZXlTaGFyZSgpXG4gICAgKTtcblxuICAgIGNvbnN0IHVzZXJLZXljaGFpblByb21pc2UgPSB0aGlzLmFkZFVzZXJLZXljaGFpbihcbiAgICAgIHVzZXJDb21tb25LZXljaGFpbixcbiAgICAgIHVzZXJFbnZlbG9wZSxcbiAgICAgIHVzZXJSZWR1Y2VkRW52ZWxvcGUsXG4gICAgICBwYXJhbXMucGFzc3BocmFzZSxcbiAgICAgIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgICBwYXJhbXMud2ViYXV0aG5JbmZvLFxuICAgICAgcGFyYW1zLmVuY3J5cHRpb25WZXJzaW9uLFxuICAgICAgcGFyYW1zLmVudGVycHJpc2UsXG4gICAgICBwYXJhbXMuc2FmZUlkXG4gICAgKTtcbiAgICBjb25zdCBiYWNrdXBLZXljaGFpblByb21pc2UgPSB0aGlzLmFkZEJhY2t1cEtleWNoYWluKFxuICAgICAgYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBiYWNrdXBFbnZlbG9wZSxcbiAgICAgIGJhY2t1cFJlZHVjZWRFbnZlbG9wZSxcbiAgICAgIHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgcGFyYW1zLm9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZSxcbiAgICAgIHBhcmFtcy5lbmNyeXB0aW9uVmVyc2lvbixcbiAgICAgIHBhcmFtcy5lbnRlcnByaXNlLFxuICAgICAgcGFyYW1zLnNhZmVJZFxuICAgICk7XG4gICAgY29uc3QgYml0Z29LZXljaGFpblByb21pc2UgPSB0aGlzLmFkZEJpdGdvS2V5Y2hhaW4oY29tbW9uUHVibGljS2V5Y2hhaW4sIHBhcmFtcy5zYWZlSWQpO1xuXG4gICAgY29uc3QgW3VzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW5dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgdXNlcktleWNoYWluUHJvbWlzZSxcbiAgICAgIGJhY2t1cEtleWNoYWluUHJvbWlzZSxcbiAgICAgIGJpdGdvS2V5Y2hhaW5Qcm9taXNlLFxuICAgIF0pO1xuICAgIC8vICNlbmRyZWdpb25cblxuICAgIHJldHVybiB7IHVzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW4gfTtcbiAgfVxuXG4gIGFzeW5jIHNlbmREZXJpdmF0aW9uUm91bmQxQnlTZW5kZXIoXG4gICAgc2VuZGVyRm46IEVkZHNhTVBDdjJEZXJpdmVLZXlTZW5kRm48RWRkc2FNUEN2MkRlcml2ZVJvdW5kMVJlc3BvbnNlPixcbiAgICB1c2VyR3BnUHVibGljS2V5OiBzdHJpbmcsXG4gICAgdXNlck1zZzE6IE1QU1R5cGVzLk1QU1NpZ25lZE1lc3NhZ2UsXG4gICAgcGFyZW50S2V5SWQ6IHN0cmluZyxcbiAgICBkZXJpdmF0aW9uSW5kZXg6IG51bWJlclxuICApOiBQcm9taXNlPEVkZHNhTVBDdjJEZXJpdmVSb3VuZDFSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBkZWNvZGVXaXRoQ29kZWMoXG4gICAgICBFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVxdWVzdCxcbiAgICAgIHsgdXNlckdwZ1B1YmxpY0tleSwgdXNlck1zZzEsIHBhcmVudEtleUlkLCBkZXJpdmF0aW9uSW5kZXggfSxcbiAgICAgICdFZGRzYU1QQ3YyRGVyaXZlUm91bmQxUmVxdWVzdCdcbiAgICApO1xuICAgIGFzc2VydChyZXF1ZXN0LmRlcml2YXRpb25JbmRleCA8PSAweDdmZmZmZmZmLCAnRGVyaXZhdGlvbiBpbmRleCBtdXN0IGZpdCBhIGhhcmRlbmVkIGNoaWxkIHBhdGgnKTtcbiAgICByZXR1cm4gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMVJlc3BvbnNlLFxuICAgICAgYXdhaXQgc2VuZGVyRm4oTVBDdjJLZXlHZW5TdGF0ZUVudW1bJ01QQ3YyRGVyaXZlLVIxJ10sIHJlcXVlc3QpLFxuICAgICAgJ0VkZHNhTVBDdjJEZXJpdmVSb3VuZDFSZXNwb25zZSdcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZERlcml2YXRpb25Sb3VuZDJCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogRWRkc2FNUEN2MkRlcml2ZUtleVNlbmRGbjxFZGRzYU1QQ3YyRGVyaXZlUm91bmQyUmVzcG9uc2U+LFxuICAgIHNlc3Npb25JZDogc3RyaW5nLFxuICAgIHVzZXJNc2cyOiBNUFNUeXBlcy5NUFNTaWduZWRNZXNzYWdlXG4gICk6IFByb21pc2U8RWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGRlY29kZVdpdGhDb2RlYyhcbiAgICAgIEVkZHNhTVBDdjJEZXJpdmVSb3VuZDJSZXF1ZXN0LFxuICAgICAgeyBzZXNzaW9uSWQsIHVzZXJNc2cyIH0sXG4gICAgICAnRWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlcXVlc3QnXG4gICAgKTtcbiAgICByZXR1cm4gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlLFxuICAgICAgYXdhaXQgc2VuZGVyRm4oTVBDdjJLZXlHZW5TdGF0ZUVudW1bJ01QQ3YyRGVyaXZlLVIyJ10sIHJlcXVlc3QpLFxuICAgICAgJ0VkZHNhTVBDdjJEZXJpdmVSb3VuZDJSZXNwb25zZSdcbiAgICApO1xuICB9XG5cbiAgLyoqIERlcml2ZXMgdGhlIHVzZXIgc2lnbmluZyBzaGFyZSB3aXRoIEJpdEdvIGFuZCByZWdpc3RlcnMgYWxsIHRocmVlIHNhZmUgY2hpbGRyZW4uICovXG4gIGFzeW5jIGNyZWF0ZVNhZmVDaGlsZEtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZTogc3RyaW5nO1xuICAgIHNhZmVJZDogc3RyaW5nO1xuICAgIHBhcmVudEtleUlkOiBzdHJpbmc7XG4gICAgZGVyaXZhdGlvbkluZGV4OiBudW1iZXI7XG4gICAgdXNlclJvb3RLZXlJZDogc3RyaW5nO1xuICAgIGJhY2t1cFJvb3RLZXlJZDogc3RyaW5nO1xuICAgIHVzZXJSb290S2V5U2hhcmU6IEJ1ZmZlcjtcbiAgICB1c2VyUm9vdFZyZktleVNoYXJlOiBCdWZmZXI7XG4gICAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICAgIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gICAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIGFzc2VydChOb25FbXB0eVN0cmluZy5pcyhwYXJhbXMuc2FmZUlkKSwgJ1NhZmUgSUQgaXMgcmVxdWlyZWQgZm9yIGNoaWxkIGRlcml2YXRpb24nKTtcbiAgICBhc3NlcnQoTm9uRW1wdHlTdHJpbmcuaXMocGFyYW1zLnVzZXJSb290S2V5SWQpLCAnVXNlciByb290IGtleSBJRCBpcyByZXF1aXJlZCBmb3IgY2hpbGQgZGVyaXZhdGlvbicpO1xuICAgIGFzc2VydChOb25FbXB0eVN0cmluZy5pcyhwYXJhbXMuYmFja3VwUm9vdEtleUlkKSwgJ0JhY2t1cCByb290IGtleSBJRCBpcyByZXF1aXJlZCBmb3IgY2hpbGQgZGVyaXZhdGlvbicpO1xuICAgIGFzc2VydChOb25FbXB0eVN0cmluZy5pcyhwYXJhbXMucGFyZW50S2V5SWQpLCAnQml0R28gcm9vdCBrZXkgSUQgaXMgcmVxdWlyZWQgZm9yIGNoaWxkIGRlcml2YXRpb24nKTtcbiAgICBjb25zdCBwYXRoID0gZGVjb2RlV2l0aENvZGVjKFxuICAgICAgRGVyaXZlZEZyb21QYXJlbnRXaXRoSGFyZGVuZWRQYXRoLFxuICAgICAgYG0vJHtwYXJhbXMuZGVyaXZhdGlvbkluZGV4fSdgLFxuICAgICAgJ2Rlcml2ZWRGcm9tUGFyZW50V2l0aFBhdGgnXG4gICAgKTtcblxuICAgIGNvbnN0IHVzZXJLZXlQYWlyID0gYXdhaXQgZ2VuZXJhdGVHUEdLZXlQYWlyKCdlZDI1NTE5Jyk7XG4gICAgY29uc3QgdXNlckdwZ0tleSA9IGF3YWl0IHBncC5yZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHVzZXJLZXlQYWlyLnByaXZhdGVLZXkgfSk7XG4gICAgY29uc3QgeyBlZGRzYU1wY3YyUHVibGljS2V5IH0gPSBhd2FpdCB0aGlzLmdldEJpdGdvR3BnUHVia2V5QmFzZWRPbkZlYXR1cmVGbGFncyhwYXJhbXMuZW50ZXJwcmlzZSwgdHJ1ZSk7XG4gICAgY29uc3QgYml0Z29QdWJsaWNHcGdLZXkgPSBlZGRzYU1wY3YyUHVibGljS2V5ID8/IHRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5O1xuICAgIGFzc2VydChiaXRnb1B1YmxpY0dwZ0tleSwgJ0ZhaWxlZCB0byBnZXQgQml0R28gRWREU0EgTVBDdjIgR1BHIHB1YmxpYyBrZXknKTtcbiAgICBjb25zdCBiaXRnb1B1YmxpY0dwZ0tleUFybW9yZWQgPSBiaXRnb1B1YmxpY0dwZ0tleS5hcm1vcigpO1xuICAgIGlmIChlbnZSZXF1aXJlc0JpdGdvUHViR3BnS2V5Q29uZmlnKHRoaXMuYml0Z28uZ2V0RW52KCkpKSB7XG4gICAgICBhc3NlcnQoaXNCaXRnb0VkZHNhTXBjdjJQdWJLZXkoYml0Z29QdWJsaWNHcGdLZXlBcm1vcmVkKSwgJ0ludmFsaWQgQml0R28gR1BHIHB1YmxpYyBrZXknKTtcbiAgICB9XG4gICAgY29uc3QgYml0Z29LZXlPYmogPSBhd2FpdCBwZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IGJpdGdvUHVibGljR3BnS2V5QXJtb3JlZCB9KTtcblxuICAgIGNvbnN0IHVzZXJEZXJpdmVTZXNzaW9uID0gbmV3IE1wc0Rlcml2ZS5EZXJpdmUoXG4gICAgICAzLFxuICAgICAgMixcbiAgICAgIE1QQ3YyUGFydGllc0VudW0uVVNFUixcbiAgICAgIHBhcmFtcy51c2VyUm9vdEtleVNoYXJlLFxuICAgICAgcGFyYW1zLnVzZXJSb290VnJmS2V5U2hhcmUsXG4gICAgICBwYXRoXG4gICAgKTtcblxuICAgIGNvbnN0IHVzZXJNc2cxID0gYXdhaXQgdXNlckRlcml2ZVNlc3Npb24uaW5pdERlcml2ZSgpO1xuICAgIGNvbnN0IHNpZ25lZFVzZXJNc2cxID0gYXdhaXQgTVBTQ29tbXMuZGV0YWNoU2lnbk1wc01lc3NhZ2UodXNlck1zZzEucGF5bG9hZCwgdXNlckdwZ0tleSk7XG4gICAgY29uc3QgeyBzZXNzaW9uSWQsIGJpdGdvTXNnMSB9ID0gYXdhaXQgdGhpcy5zZW5kRGVyaXZhdGlvblJvdW5kMUJ5U2VuZGVyKFxuICAgICAgS2V5R2VuU2VuZGVyRm9yU2FmZUNoaWxkPEVkZHNhTVBDdjJEZXJpdmVSb3VuZDFSZXNwb25zZT4odGhpcy5iaXRnbywgcGFyYW1zLmVudGVycHJpc2UsIHBhcmFtcy5zYWZlSWQpLFxuICAgICAgdXNlcktleVBhaXIucHVibGljS2V5LFxuICAgICAgc2lnbmVkVXNlck1zZzEsXG4gICAgICBwYXJhbXMucGFyZW50S2V5SWQsXG4gICAgICBwYXJhbXMuZGVyaXZhdGlvbkluZGV4XG4gICAgKTtcblxuICAgIGNvbnN0IFt1c2VyTXNnMl0gPSB1c2VyRGVyaXZlU2Vzc2lvbi5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKFtcbiAgICAgIHsgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTywgcGF5bG9hZDogYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShiaXRnb01zZzEsIGJpdGdvS2V5T2JqKSB9LFxuICAgIF0pO1xuICAgIGFzc2VydCh1c2VyTXNnMiwgJ1VzZXIgZGVyaXZlIHJvdW5kIDEgbXVzdCBwcm9kdWNlIGEgcm91bmQgMiBtZXNzYWdlJyk7XG4gICAgY29uc3Qgc2lnbmVkVXNlck1zZzIgPSBhd2FpdCBNUFNDb21tcy5kZXRhY2hTaWduTXBzTWVzc2FnZSh1c2VyTXNnMi5wYXlsb2FkLCB1c2VyR3BnS2V5KTtcbiAgICBjb25zdCB7XG4gICAgICBzZXNzaW9uSWQ6IHNlc3Npb25JZFJvdW5kMixcbiAgICAgIGNvbW1vblB1YmxpY0tleWNoYWluLFxuICAgICAgYml0Z29Nc2cyLFxuICAgIH0gPSBhd2FpdCB0aGlzLnNlbmREZXJpdmF0aW9uUm91bmQyQnlTZW5kZXIoXG4gICAgICBLZXlHZW5TZW5kZXJGb3JTYWZlQ2hpbGQ8RWRkc2FNUEN2MkRlcml2ZVJvdW5kMlJlc3BvbnNlPih0aGlzLmJpdGdvLCBwYXJhbXMuZW50ZXJwcmlzZSwgcGFyYW1zLnNhZmVJZCksXG4gICAgICBzZXNzaW9uSWQsXG4gICAgICBzaWduZWRVc2VyTXNnMlxuICAgICk7XG4gICAgYXNzZXJ0LmVxdWFsKHNlc3Npb25JZCwgc2Vzc2lvbklkUm91bmQyLCAnUm91bmQgMSBhbmQgMiBTZXNzaW9uIElEcyBkbyBub3QgbWF0Y2gnKTtcblxuICAgIGNvbnN0IGZpbmFsTWVzc2FnZXMgPSB1c2VyRGVyaXZlU2Vzc2lvbi5oYW5kbGVJbmNvbWluZ01lc3NhZ2VzKFtcbiAgICAgIHsgZnJvbTogTVBDdjJQYXJ0aWVzRW51bS5CSVRHTywgcGF5bG9hZDogYXdhaXQgTVBTQ29tbXMudmVyaWZ5TXBzTWVzc2FnZShiaXRnb01zZzIsIGJpdGdvS2V5T2JqKSB9LFxuICAgIF0pO1xuICAgIGFzc2VydC5lcXVhbChmaW5hbE1lc3NhZ2VzLmxlbmd0aCwgMCwgJ01QUyBkZXJpdmUgcm91bmQgMiBtdXN0IG5vdCBwcm9kdWNlIGFub3RoZXIgbWVzc2FnZScpO1xuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gdXNlckRlcml2ZVNlc3Npb24uZ2V0Q29tbW9uS2V5Y2hhaW4oKTtcbiAgICBhc3NlcnQuZXF1YWwoY29tbW9uS2V5Y2hhaW4sIGNvbW1vblB1YmxpY0tleWNoYWluLCAnVXNlciBhbmQgQml0R28gY29tbW9uIGtleWNoYWlucyBkbyBub3QgbWF0Y2gnKTtcblxuICAgIGNvbnN0IFt1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHRoaXMuYWRkVXNlcktleWNoYWluKFxuICAgICAgICBjb21tb25LZXljaGFpbixcbiAgICAgICAgdXNlckRlcml2ZVNlc3Npb24uZ2V0S2V5U2hhcmUoKSxcbiAgICAgICAgdXNlckRlcml2ZVNlc3Npb24uZ2V0UmVkdWNlZEtleVNoYXJlKCksXG4gICAgICAgIHBhcmFtcy5wYXNzcGhyYXNlLFxuICAgICAgICBwYXJhbXMub3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlLFxuICAgICAgICBwYXJhbXMud2ViYXV0aG5JbmZvLFxuICAgICAgICBwYXJhbXMuZW5jcnlwdGlvblZlcnNpb24sXG4gICAgICAgIHBhcmFtcy5lbnRlcnByaXNlLFxuICAgICAgICBwYXJhbXMuc2FmZUlkLFxuICAgICAgICB7IHBhcmVudEtleUlkOiBwYXJhbXMudXNlclJvb3RLZXlJZCwgaW5kZXg6IHBhcmFtcy5kZXJpdmF0aW9uSW5kZXggfVxuICAgICAgKSxcbiAgICAgIHRoaXMuYWRkQmFja3VwS2V5Y2hhaW4oXG4gICAgICAgIGNvbW1vbktleWNoYWluLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcGFyYW1zLnBhc3NwaHJhc2UsXG4gICAgICAgIHBhcmFtcy5vcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gICAgICAgIHBhcmFtcy5lbmNyeXB0aW9uVmVyc2lvbixcbiAgICAgICAgcGFyYW1zLmVudGVycHJpc2UsXG4gICAgICAgIHBhcmFtcy5zYWZlSWQsXG4gICAgICAgIHsgcGFyZW50S2V5SWQ6IHBhcmFtcy5iYWNrdXBSb290S2V5SWQsIGluZGV4OiBwYXJhbXMuZGVyaXZhdGlvbkluZGV4IH1cbiAgICAgICksXG4gICAgICB0aGlzLmFkZEJpdGdvS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW4sIHBhcmFtcy5zYWZlSWQsIHtcbiAgICAgICAgcGFyZW50S2V5SWQ6IHBhcmFtcy5wYXJlbnRLZXlJZCxcbiAgICAgICAgaW5kZXg6IHBhcmFtcy5kZXJpdmF0aW9uSW5kZXgsXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICByZXR1cm4geyB1c2VyS2V5Y2hhaW4sIGJhY2t1cEtleWNoYWluLCBiaXRnb0tleWNoYWluIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,4 +5,9 @@ export * as EddsaUtilsTypes from './types';
|
|
|
5
5
|
export default EddsaUtils;
|
|
6
6
|
export { ITssUtils, IEddsaUtils, EddsaUnsignedTransaction } from './types';
|
|
7
7
|
export { PrebuildTransactionWithIntentOptions, SignatureShareRecord, SignatureShareType, TxRequest, } from '../baseTypes';
|
|
8
|
+
export * from './eddsaMPCv2';
|
|
9
|
+
export * from './eddsaVrfMPCv2';
|
|
10
|
+
export * from './eddsaMPCv2KeyGenSender';
|
|
11
|
+
export * from './typesEddsaMPCv2';
|
|
12
|
+
export * from './SMC/utils';
|
|
8
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,sCAAsC;AACtC,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,eAAe,MAAM,SAAS,CAAC;AAE3C,eAAe,UAAU,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,sCAAsC;AACtC,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,eAAe,MAAM,SAAS,CAAC;AAE3C,eAAe,UAAU,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EACL,oCAAoC,EACpC,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,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,12 +15,25 @@ 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
|
-
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
37
|
};
|
|
21
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
39
|
exports.SignatureShareType = exports.EddsaUtilsTypes = exports.TssUtilsTypes = void 0;
|
|
@@ -27,4 +44,9 @@ exports.EddsaUtilsTypes = __importStar(require("./types"));
|
|
|
27
44
|
exports.default = eddsa_1.EddsaUtils;
|
|
28
45
|
var baseTypes_1 = require("../baseTypes");
|
|
29
46
|
Object.defineProperty(exports, "SignatureShareType", { enumerable: true, get: function () { return baseTypes_1.SignatureShareType; } });
|
|
30
|
-
|
|
47
|
+
__exportStar(require("./eddsaMPCv2"), exports);
|
|
48
|
+
__exportStar(require("./eddsaVrfMPCv2"), exports);
|
|
49
|
+
__exportStar(require("./eddsaMPCv2KeyGenSender"), exports);
|
|
50
|
+
__exportStar(require("./typesEddsaMPCv2"), exports);
|
|
51
|
+
__exportStar(require("./SMC/utils"), exports);
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFxQztBQUNyQyxzQ0FBc0M7QUFDdEMseURBQXlDO0FBQ3pDLDJEQUEyQztBQUUzQyxrQkFBZSxrQkFBVSxDQUFDO0FBSTFCLDBDQUtzQjtBQUZwQiwrR0FBQSxrQkFBa0IsT0FBQTtBQUlwQiwrQ0FBNkI7QUFDN0Isa0RBQWdDO0FBQ2hDLDJEQUF5QztBQUN6QyxvREFBa0M7QUFDbEMsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRkc2FVdGlscyB9IGZyb20gJy4vZWRkc2EnO1xuLyoqIEBkZXByZWNhdGVkIHVzZSBFZGRzYVV0aWxzVHlwZXMgKi9cbmV4cG9ydCAqIGFzIFRzc1V0aWxzVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBhcyBFZGRzYVV0aWxzVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBkZWZhdWx0IEVkZHNhVXRpbHM7XG5cbi8vIGV4cG9ydGluZyB0aGlzIHR5cGVzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuZXhwb3J0IHsgSVRzc1V0aWxzLCBJRWRkc2FVdGlscywgRWRkc2FVbnNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQge1xuICBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG4gIFR4UmVxdWVzdCxcbn0gZnJvbSAnLi4vYmFzZVR5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9lZGRzYU1QQ3YyJztcbmV4cG9ydCAqIGZyb20gJy4vZWRkc2FWcmZNUEN2Mic7XG5leHBvcnQgKiBmcm9tICcuL2VkZHNhTVBDdjJLZXlHZW5TZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlc0VkZHNhTVBDdjInO1xuZXhwb3J0ICogZnJvbSAnLi9TTUMvdXRpbHMnO1xuIl19
|
|
@@ -2,18 +2,26 @@ import { EDDSA } from '../../../../account-lib/mpc/tss';
|
|
|
2
2
|
import BaseTSSUtils from '../baseTSSUtils';
|
|
3
3
|
import { CreateKeychainParamsBase, UnsignedTransactionTss } from '../baseTypes';
|
|
4
4
|
import { SerializedKeyPair } from 'openpgp';
|
|
5
|
-
export
|
|
6
|
-
export
|
|
5
|
+
export type KeyShare = EDDSA.KeyShare;
|
|
6
|
+
export type YShare = EDDSA.YShare;
|
|
7
7
|
/** @deprected use UnsignedTransactionTss from baseTypes */
|
|
8
|
-
export
|
|
9
|
-
export
|
|
8
|
+
export type EddsaUnsignedTransaction = UnsignedTransactionTss;
|
|
9
|
+
export type IEddsaUtils = BaseTSSUtils<KeyShare>;
|
|
10
10
|
/** @deprecated Use IEddsaUtils */
|
|
11
|
-
export
|
|
12
|
-
export
|
|
11
|
+
export type ITssUtils = IEddsaUtils;
|
|
12
|
+
export type CreateEddsaKeychainParams = CreateKeychainParamsBase & {
|
|
13
13
|
userKeyShare: EDDSA.KeyShare;
|
|
14
14
|
backupGpgKey: SerializedKeyPair<string>;
|
|
15
15
|
backupKeyShare: EDDSA.KeyShare;
|
|
16
16
|
};
|
|
17
|
-
export
|
|
17
|
+
export interface EddsaMPCv2RecoveryKeyShares {
|
|
18
|
+
userKeyShare: Buffer;
|
|
19
|
+
backupKeyShare: Buffer;
|
|
20
|
+
commonKeyChain: string;
|
|
21
|
+
/** Serialized VRF keyshares from safe-root envelopes, when present. */
|
|
22
|
+
userVrfKeyShare?: Buffer;
|
|
23
|
+
backupVrfKeyShare?: Buffer;
|
|
24
|
+
}
|
|
25
|
+
export type CreateEddsaBitGoKeychainParams = Omit<CreateEddsaKeychainParams, 'bitgoKeychain'>;
|
|
18
26
|
export { PrebuildTransactionWithIntentOptions, TxRequestVersion, TxRequestState, TransactionState, SignatureShareRecord, SignatureShareType, } from '../baseTypes';
|
|
19
27
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACtC,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAClC,2DAA2D;AAC3D,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACjD,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AAEpC,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,GAAG;IACjE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC7B,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;AAG9F,OAAO,EACL,oCAAoC,EACpC,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
@@ -4,4 +4,4 @@ exports.SignatureShareType = void 0;
|
|
|
4
4
|
// For backward compatibility
|
|
5
5
|
var baseTypes_1 = require("../baseTypes");
|
|
6
6
|
Object.defineProperty(exports, "SignatureShareType", { enumerable: true, get: function () { return baseTypes_1.SignatureShareType; } });
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VkZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStCQSw2QkFBNkI7QUFDN0IsMENBT3NCO0FBRHBCLCtHQUFBLGtCQUFrQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUREU0EgfSBmcm9tICcuLi8uLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCBCYXNlVFNTVXRpbHMgZnJvbSAnLi4vYmFzZVRTU1V0aWxzJztcbmltcG9ydCB7IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgVW5zaWduZWRUcmFuc2FjdGlvblRzcyB9IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuXG5leHBvcnQgdHlwZSBLZXlTaGFyZSA9IEVERFNBLktleVNoYXJlO1xuZXhwb3J0IHR5cGUgWVNoYXJlID0gRUREU0EuWVNoYXJlO1xuLyoqIEBkZXByZWN0ZWQgdXNlIFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3MgZnJvbSBiYXNlVHlwZXMgKi9cbmV4cG9ydCB0eXBlIEVkZHNhVW5zaWduZWRUcmFuc2FjdGlvbiA9IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7XG5cbmV4cG9ydCB0eXBlIElFZGRzYVV0aWxzID0gQmFzZVRTU1V0aWxzPEtleVNoYXJlPjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgSUVkZHNhVXRpbHMgKi9cbmV4cG9ydCB0eXBlIElUc3NVdGlscyA9IElFZGRzYVV0aWxzO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVFZGRzYUtleWNoYWluUGFyYW1zID0gQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlICYge1xuICB1c2VyS2V5U2hhcmU6IEVERFNBLktleVNoYXJlO1xuICBiYWNrdXBHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJhY2t1cEtleVNoYXJlOiBFRERTQS5LZXlTaGFyZTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRkc2FNUEN2MlJlY292ZXJ5S2V5U2hhcmVzIHtcbiAgdXNlcktleVNoYXJlOiBCdWZmZXI7XG4gIGJhY2t1cEtleVNoYXJlOiBCdWZmZXI7XG4gIGNvbW1vbktleUNoYWluOiBzdHJpbmc7XG4gIC8qKiBTZXJpYWxpemVkIFZSRiBrZXlzaGFyZXMgZnJvbSBzYWZlLXJvb3QgZW52ZWxvcGVzLCB3aGVuIHByZXNlbnQuICovXG4gIHVzZXJWcmZLZXlTaGFyZT86IEJ1ZmZlcjtcbiAgYmFja3VwVnJmS2V5U2hhcmU/OiBCdWZmZXI7XG59XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUVkZHNhQml0R29LZXljaGFpblBhcmFtcyA9IE9taXQ8Q3JlYXRlRWRkc2FLZXljaGFpblBhcmFtcywgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7XG4gIFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgVHhSZXF1ZXN0VmVyc2lvbixcbiAgVHhSZXF1ZXN0U3RhdGUsXG4gIFRyYW5zYWN0aW9uU3RhdGUsXG4gIFNpZ25hdHVyZVNoYXJlUmVjb3JkLFxuICBTaWduYXR1cmVTaGFyZVR5cGUsXG59IGZyb20gJy4uL2Jhc2VUeXBlcyc7XG4iXX0=
|