@bitgo-beta/sdk-core 8.2.1-beta.98 → 8.2.1-beta.981
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/CHANGELOG.md +2785 -0
- 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 +41 -29
- package/dist/src/account-lib/baseCoin/enum.d.ts +17 -3
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +32 -7
- 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 +11 -35
- package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/iface.js +4 -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 +76 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessage.js +120 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts +66 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/baseMessageBuilder.js +96 -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 +34 -0
- package/dist/src/account-lib/baseCoin/messages/iface.d.ts +156 -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 +5 -0
- package/dist/src/account-lib/baseCoin/messages/index.d.ts.map +1 -0
- package/dist/src/account-lib/baseCoin/messages/index.js +21 -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.js +23 -9
- 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 +38 -9
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +497 -349
- 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 -1
- package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/eddsa/types.js +1 -1
- package/dist/src/account-lib/mpc/tss/index.js +23 -9
- package/dist/src/account-lib/mpc/util.d.ts +7 -1
- package/dist/src/account-lib/mpc/util.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/util.js +19 -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/account-lib/util/ed25519KeyDeriver.d.ts +2 -1
- package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +1 -1
- package/dist/src/account-lib/util/ed25519KeyDeriver.js +5 -3
- package/dist/src/api/bip32path.js +2 -3
- package/dist/src/api/index.js +6 -2
- package/dist/src/api/types.d.ts +8 -0
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/api/types.js +1 -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 +139 -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/bitgo/address-book/index.js +19 -0
- 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 +90 -10
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +142 -16
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +111 -19
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +7 -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 +6 -2
- 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 +17 -3
- package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
- package/dist/src/bitgo/coinFactory.js +26 -3
- package/dist/src/bitgo/config.d.ts +94 -20
- package/dist/src/bitgo/config.d.ts.map +1 -1
- package/dist/src/bitgo/config.js +26 -15
- 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 +16 -14
- package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/enterprise.js +64 -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 +6 -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 +60 -5
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +96 -32
- package/dist/src/bitgo/errors.d.ts +6 -0
- package/dist/src/bitgo/errors.d.ts.map +1 -1
- package/dist/src/bitgo/errors.js +14 -2
- package/dist/src/bitgo/index.d.ts +1 -1
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +26 -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.js +6 -7
- package/dist/src/bitgo/keychain/decryptKeychain.d.ts +13 -0
- package/dist/src/bitgo/keychain/decryptKeychain.d.ts.map +1 -0
- package/dist/src/bitgo/keychain/decryptKeychain.js +35 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts +63 -7
- 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 +13 -3
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +128 -37
- package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts +3 -3
- package/dist/src/bitgo/keychain/ovcJsonCodec.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/ovcJsonCodec.js +23 -9
- package/dist/src/bitgo/legacyBitcoin.d.ts +0 -1
- package/dist/src/bitgo/legacyBitcoin.d.ts.map +1 -1
- package/dist/src/bitgo/legacyBitcoin.js +27 -13
- package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts +7 -0
- package/dist/src/bitgo/lightning/lightningWalletUtil.d.ts.map +1 -0
- package/dist/src/bitgo/lightning/lightningWalletUtil.js +25 -0
- package/dist/src/bitgo/market/iMarkets.d.ts +2 -2
- package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -1
- package/dist/src/bitgo/market/index.js +6 -2
- package/dist/src/bitgo/market/markets.js +23 -9
- package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +1 -0
- 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 +221 -107
- package/dist/src/bitgo/pendingApproval/pendingApprovals.js +23 -9
- package/dist/src/bitgo/recovery/index.js +6 -2
- package/dist/src/bitgo/recovery/initiate.d.ts +8 -2
- package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
- package/dist/src/bitgo/recovery/initiate.js +7 -8
- package/dist/src/bitgo/staking/goStakingInterfaces.d.ts +129 -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 +143 -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 +120 -4
- 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 +13 -2
- package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/stakingWallet.js +45 -4
- package/dist/src/bitgo/trading/iTradingAccount.d.ts +2 -32
- 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 +101 -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 +11 -35
- package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -1
- package/dist/src/bitgo/trading/tradingAccount.js +9 -96
- package/dist/src/bitgo/tss/bitgoPubKeys.d.ts +27 -0
- package/dist/src/bitgo/tss/bitgoPubKeys.d.ts.map +1 -0
- package/dist/src/bitgo/tss/bitgoPubKeys.js +61 -0
- package/dist/src/bitgo/tss/common.d.ts +37 -5
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +103 -17
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +6 -4
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +78 -66
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +15 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +162 -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 +11 -8
- package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/eddsa/eddsa.js +38 -41
- 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/types.d.ts +3 -3
- package/dist/src/bitgo/tss/types.d.ts.map +1 -1
- package/dist/src/bitgo/tss/types.js +2 -2
- package/dist/src/bitgo/types.d.ts +3 -3
- package/dist/src/bitgo/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +11 -0
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -1
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +66 -10
- package/dist/src/bitgo/utils/codecProps.js +24 -11
- 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 +3 -2
- package/dist/src/bitgo/utils/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/index.js +26 -11
- package/dist/src/bitgo/utils/messageTypes.d.ts +34 -0
- package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
- package/dist/src/bitgo/utils/messageTypes.js +12 -0
- package/dist/src/bitgo/utils/mpcUtils.d.ts +2 -3
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/mpcUtils.js +34 -12
- package/dist/src/bitgo/utils/notEmpty.d.ts +2 -0
- package/dist/src/bitgo/utils/notEmpty.d.ts.map +1 -0
- package/dist/src/bitgo/utils/notEmpty.js +7 -0
- package/dist/src/bitgo/utils/opengpgUtils.d.ts +11 -9
- package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/opengpgUtils.js +74 -73
- package/dist/src/bitgo/utils/postWithCodec.d.ts.map +1 -1
- package/dist/src/bitgo/utils/postWithCodec.js +4 -38
- package/dist/src/bitgo/utils/promise-utils.d.ts +1 -1
- package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/promise-utils.js +2 -3
- package/dist/src/bitgo/utils/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/baseTSSUtils.d.ts +38 -14
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +141 -45
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +202 -34
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +22 -20
- 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 +20 -52
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +145 -280
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +199 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +950 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts +8 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2KeyGenSender.js +13 -0
- package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +4 -0
- package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/index.js +10 -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 +107 -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/eddsa.d.ts +5 -3
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +75 -58
- package/dist/src/bitgo/utils/tss/eddsa/index.js +23 -9
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +7 -7
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/index.js +23 -9
- 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 +47 -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/wallet/BuildParams.d.ts +52 -8
- package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/BuildParams.js +65 -19
- package/dist/src/bitgo/wallet/iWallet.d.ts +203 -19
- 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 +91 -16
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +43 -3
- package/dist/src/bitgo/wallet/index.js +6 -2
- package/dist/src/bitgo/wallet/wallet.d.ts +191 -25
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +937 -303
- package/dist/src/bitgo/wallet/wallets.d.ts +96 -9
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +816 -193
- package/dist/src/bitgo/webhook/index.js +6 -2
- package/dist/src/bitgo/webhook/webhooks.js +23 -9
- package/dist/src/coins/fiataed.d.ts +32 -0
- package/dist/src/coins/fiataed.d.ts.map +1 -0
- package/dist/src/coins/fiataed.js +61 -0
- package/dist/src/coins/fiateur.d.ts +3 -2
- package/dist/src/coins/fiateur.d.ts.map +1 -1
- package/dist/src/coins/fiateur.js +5 -1
- package/dist/src/coins/fiatgbp.d.ts +3 -2
- package/dist/src/coins/fiatgbp.d.ts.map +1 -1
- package/dist/src/coins/fiatgbp.js +5 -1
- package/dist/src/coins/fiatsgd.d.ts +32 -0
- package/dist/src/coins/fiatsgd.d.ts.map +1 -0
- package/dist/src/coins/fiatsgd.js +61 -0
- package/dist/src/coins/fiatusd.d.ts +3 -2
- package/dist/src/coins/fiatusd.d.ts.map +1 -1
- package/dist/src/coins/fiatusd.js +5 -1
- package/dist/src/coins/index.d.ts +4 -0
- package/dist/src/coins/index.d.ts.map +1 -1
- package/dist/src/coins/index.js +10 -2
- package/dist/src/coins/ofc.d.ts +3 -2
- package/dist/src/coins/ofc.d.ts.map +1 -1
- package/dist/src/coins/ofc.js +6 -2
- package/dist/src/coins/ofcToken.js +2 -2
- 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/coins/tfiataed.d.ts +11 -0
- package/dist/src/coins/tfiataed.d.ts.map +1 -0
- package/dist/src/coins/tfiataed.js +17 -0
- package/dist/src/coins/tfiatsgd.d.ts +11 -0
- package/dist/src/coins/tfiatsgd.d.ts.map +1 -0
- package/dist/src/coins/tfiatsgd.js +17 -0
- package/dist/src/common.js +27 -13
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +26 -11
- package/dist/src/units.js +5 -6
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts +2 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.d.ts.map +1 -0
- package/dist/test/unit/account-lib/baseCoin/messages/baseMessage.js +204 -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 +130 -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 +86 -0
- package/dist/test/unit/account-lib/baseCoin/messages/fixtures.d.ts +36 -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 +70 -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 +233 -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/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/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 +45 -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 +76 -0
- package/dist/test/unit/bitgo/utils/notEmpty.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/notEmpty.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/notEmpty.js +15 -0
- package/dist/test/unit/bitgo/utils/postWithCodec.js +32 -38
- package/dist/test/unit/bitgo/utils/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 +105 -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 +68 -0
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +37 -17
- package/dist/test/unit/units.js +63 -63
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +24 -21
- 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/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/bitgo/wallet/SendTransactionRequest.d.ts +0 -71
- package/dist/src/bitgo/wallet/SendTransactionRequest.d.ts.map +0 -1
- package/dist/src/bitgo/wallet/SendTransactionRequest.js +0 -41
- package/dist/src/openssl/index.d.ts +0 -5
- package/dist/src/openssl/index.d.ts.map +0 -1
- package/dist/src/openssl/index.js +0 -9
- package/dist/test/unit/openssl.d.ts +0 -2
- package/dist/test/unit/openssl.d.ts.map +0 -1
- package/dist/test/unit/openssl.js +0 -39
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MPCv2SMCUtils = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const public_types_1 = require("@bitgo/public-types");
|
|
9
|
+
const ecdsaMPCv2_1 = require("../ecdsaMPCv2");
|
|
10
|
+
const __1 = require("../../../..");
|
|
11
|
+
const ecdsaMPCv2KeyGenSender_1 = require("../ecdsaMPCv2KeyGenSender");
|
|
12
|
+
class MPCv2SMCUtils {
|
|
13
|
+
constructor(bitgo, baseCoin) {
|
|
14
|
+
this.bitgo = bitgo;
|
|
15
|
+
this.baseCoin = baseCoin;
|
|
16
|
+
this.MPCv2Utils = new ecdsaMPCv2_1.EcdsaMPCv2Utils(bitgo, baseCoin);
|
|
17
|
+
}
|
|
18
|
+
async keyGenRound1(enterprise, payload) {
|
|
19
|
+
return this.keyGenRound1BySender((0, ecdsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, enterprise), payload);
|
|
20
|
+
}
|
|
21
|
+
async keyGenRound2(enterprise, payload) {
|
|
22
|
+
return this.keyGenRound2BySender((0, ecdsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, enterprise), payload);
|
|
23
|
+
}
|
|
24
|
+
async keyGenRound3(enterprise, payload) {
|
|
25
|
+
return this.keyGenRound3BySender((0, ecdsaMPCv2KeyGenSender_1.KeyGenSenderForEnterprise)(this.bitgo, enterprise), payload);
|
|
26
|
+
}
|
|
27
|
+
async keyGenRound1BySender(senderFn, payload) {
|
|
28
|
+
(0, assert_1.default)(payload.state === public_types_1.KeyCreationMPCv2StateEnum.WaitingForBitgoRound1Data, `Invalid state for round 1, expected: ${public_types_1.KeyCreationMPCv2StateEnum.WaitingForBitgoRound1Data}, got: ${payload.state}`);
|
|
29
|
+
(0, __1.decodeOrElse)(public_types_1.OVC2ToBitgoRound1Payload.name, public_types_1.OVC2ToBitgoRound1Payload, payload, (errors) => {
|
|
30
|
+
throw new Error(`error(s) parsing payload: ${errors}`);
|
|
31
|
+
});
|
|
32
|
+
const ovc1 = payload.ovc[public_types_1.OVCIndexEnum.ONE];
|
|
33
|
+
const ovc2 = payload.ovc[public_types_1.OVCIndexEnum.TWO];
|
|
34
|
+
const userGpgPublicKey = ovc1.gpgPubKey;
|
|
35
|
+
const backupGpgPublicKey = ovc2.gpgPubKey;
|
|
36
|
+
const messages = { p2pMessages: [], broadcastMessages: [ovc1.ovcMsg1, ovc2.ovcMsg1] };
|
|
37
|
+
const result = await this.MPCv2Utils.sendKeyGenerationRound1BySender(senderFn, userGpgPublicKey, backupGpgPublicKey, messages);
|
|
38
|
+
const response = {
|
|
39
|
+
state: public_types_1.KeyCreationMPCv2StateEnum.WaitingForOVC1Round2Data,
|
|
40
|
+
tssVersion: payload.tssVersion,
|
|
41
|
+
walletType: payload.walletType,
|
|
42
|
+
coin: payload.coin,
|
|
43
|
+
ovc: payload.ovc,
|
|
44
|
+
platform: {
|
|
45
|
+
walletGpgPubKeySigs: result.walletGpgPubKeySigs,
|
|
46
|
+
sessionId: result.sessionId,
|
|
47
|
+
bitgoMsg1: this.MPCv2Utils.formatBitgoBroadcastMessage(result.bitgoMsg1),
|
|
48
|
+
ovc: {
|
|
49
|
+
[public_types_1.OVCIndexEnum.ONE]: { bitgoToOvcMsg2: this.MPCv2Utils.formatP2PMessage(result.bitgoToUserMsg2) },
|
|
50
|
+
[public_types_1.OVCIndexEnum.TWO]: { bitgoToOvcMsg2: this.MPCv2Utils.formatP2PMessage(result.bitgoToBackupMsg2) },
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
return (0, __1.decodeOrElse)(public_types_1.BitgoToOVC1Round1Response.name, public_types_1.BitgoToOVC1Round1Response, response, (errors) => {
|
|
55
|
+
throw new Error(`error(s) parsing response: ${errors}`);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
async keyGenRound2BySender(senderFn, payload) {
|
|
59
|
+
(0, assert_1.default)(payload.state === public_types_1.KeyCreationMPCv2StateEnum.WaitingForBitgoRound2Data, `Invalid state for round 2, expected: ${public_types_1.KeyCreationMPCv2StateEnum.WaitingForBitgoRound2Data}, got: ${payload.state}`);
|
|
60
|
+
(0, __1.decodeOrElse)(public_types_1.OVC2ToBitgoRound2Payload.name, public_types_1.OVC2ToBitgoRound2Payload, payload, (errors) => {
|
|
61
|
+
throw new Error(`error(s) parsing payload: ${errors}`);
|
|
62
|
+
});
|
|
63
|
+
const ovc1 = payload.ovc[public_types_1.OVCIndexEnum.ONE];
|
|
64
|
+
const ovc2 = payload.ovc[public_types_1.OVCIndexEnum.TWO];
|
|
65
|
+
const sessionId = payload.platform.sessionId;
|
|
66
|
+
const messages = { p2pMessages: [ovc1.ovcToBitgoMsg2, ovc2.ovcToBitgoMsg2], broadcastMessages: [] };
|
|
67
|
+
const result = await this.MPCv2Utils.sendKeyGenerationRound2BySender(senderFn, sessionId, messages);
|
|
68
|
+
const response = {
|
|
69
|
+
state: public_types_1.KeyCreationMPCv2StateEnum.WaitingForOVC1Round3aData,
|
|
70
|
+
tssVersion: payload.tssVersion,
|
|
71
|
+
walletType: payload.walletType,
|
|
72
|
+
coin: payload.coin,
|
|
73
|
+
ovc: payload.ovc,
|
|
74
|
+
platform: {
|
|
75
|
+
...payload.platform,
|
|
76
|
+
sessionId: result.sessionId,
|
|
77
|
+
bitgoCommitment2: result.bitgoCommitment2,
|
|
78
|
+
ovc: {
|
|
79
|
+
[public_types_1.OVCIndexEnum.ONE]: {
|
|
80
|
+
...payload.platform.ovc[public_types_1.OVCIndexEnum.ONE],
|
|
81
|
+
bitgoToOvcMsg3: this.MPCv2Utils.formatP2PMessage(result.bitgoToUserMsg3),
|
|
82
|
+
},
|
|
83
|
+
[public_types_1.OVCIndexEnum.TWO]: {
|
|
84
|
+
...payload.platform.ovc[public_types_1.OVCIndexEnum.TWO],
|
|
85
|
+
bitgoToOvcMsg3: this.MPCv2Utils.formatP2PMessage(result.bitgoToBackupMsg3),
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
return (0, __1.decodeOrElse)(public_types_1.BitgoToOVC1Round2Response.name, public_types_1.BitgoToOVC1Round2Response, response, (errors) => {
|
|
91
|
+
throw new Error(`error(s) parsing response: ${errors}`);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
async keyGenRound3BySender(senderFn, payload) {
|
|
95
|
+
(0, assert_1.default)(payload.state === public_types_1.KeyCreationMPCv2StateEnum.WaitingForBitgoRound3Data, `Invalid state for round 3, expected: ${public_types_1.KeyCreationMPCv2StateEnum.WaitingForBitgoRound3Data}, got: ${payload.state}`);
|
|
96
|
+
(0, __1.decodeOrElse)(public_types_1.OVC1ToBitgoRound3Payload.name, public_types_1.OVC1ToBitgoRound3Payload, payload, (errors) => {
|
|
97
|
+
throw new Error(`error(s) parsing payload: ${errors}`);
|
|
98
|
+
});
|
|
99
|
+
const ovc1 = payload.ovc[public_types_1.OVCIndexEnum.ONE];
|
|
100
|
+
const ovc2 = payload.ovc[public_types_1.OVCIndexEnum.TWO];
|
|
101
|
+
const sessionId = payload.platform.sessionId;
|
|
102
|
+
const messages = {
|
|
103
|
+
p2pMessages: [ovc1.ovcToBitgoMsg3, ovc2.ovcToBitgoMsg3],
|
|
104
|
+
broadcastMessages: [ovc1.ovcMsg4, ovc2.ovcMsg4],
|
|
105
|
+
};
|
|
106
|
+
const result = await this.MPCv2Utils.sendKeyGenerationRound3BySender(senderFn, sessionId, messages);
|
|
107
|
+
const keychains = this.baseCoin.keychains();
|
|
108
|
+
const bitgoKeychain = await keychains.add({
|
|
109
|
+
source: 'bitgo',
|
|
110
|
+
keyType: 'tss',
|
|
111
|
+
commonKeychain: result.commonKeychain,
|
|
112
|
+
isMPCv2: true,
|
|
113
|
+
});
|
|
114
|
+
const response = {
|
|
115
|
+
state: public_types_1.KeyCreationMPCv2StateEnum.WaitingForOVC1GenerateKey,
|
|
116
|
+
bitGoKeyId: bitgoKeychain.id,
|
|
117
|
+
tssVersion: payload.tssVersion,
|
|
118
|
+
walletType: payload.walletType,
|
|
119
|
+
coin: payload.coin,
|
|
120
|
+
ovc: payload.ovc,
|
|
121
|
+
platform: {
|
|
122
|
+
...payload.platform,
|
|
123
|
+
commonKeychain: result.commonKeychain,
|
|
124
|
+
bitgoMsg4: this.MPCv2Utils.formatBitgoBroadcastMessage(result.bitgoMsg4),
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
return (0, __1.decodeOrElse)(public_types_1.BitgoToOVC1Round3Response.name, public_types_1.BitgoToOVC1Round3Response, response, (errors) => {
|
|
128
|
+
throw new Error(`error(s) parsing response: ${errors}`);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
async uploadClientKeys(bitgoKeyId, userCommonKeychain, backupCommonKeychain) {
|
|
132
|
+
(0, assert_1.default)(userCommonKeychain === backupCommonKeychain, 'Common keychain mismatch between the user and backup keychains');
|
|
133
|
+
const keychains = this.baseCoin.keychains();
|
|
134
|
+
const bitgoKeychain = await keychains.get({ id: bitgoKeyId });
|
|
135
|
+
(0, assert_1.default)(bitgoKeychain, 'Keychain not found');
|
|
136
|
+
(0, assert_1.default)(bitgoKeychain.source === 'bitgo', 'The keychain is not a BitGo keychain');
|
|
137
|
+
(0, assert_1.default)(bitgoKeychain.type === 'tss', 'BitGo keychain is not a TSS keychain');
|
|
138
|
+
(0, assert_1.default)(bitgoKeychain.commonKeychain, 'BitGo keychain does not have a common keychain');
|
|
139
|
+
(0, assert_1.default)(bitgoKeychain.commonKeychain === userCommonKeychain, 'Common keychain mismatch between the OVCs and BitGo');
|
|
140
|
+
const userKeychainPromise = keychains.add({
|
|
141
|
+
source: 'user',
|
|
142
|
+
keyType: 'tss',
|
|
143
|
+
commonKeychain: userCommonKeychain,
|
|
144
|
+
isMPCv2: true,
|
|
145
|
+
});
|
|
146
|
+
const backupKeychainPromise = keychains.add({
|
|
147
|
+
source: 'backup',
|
|
148
|
+
keyType: 'tss',
|
|
149
|
+
commonKeychain: backupCommonKeychain,
|
|
150
|
+
isMPCv2: true,
|
|
151
|
+
});
|
|
152
|
+
const [userKeychain, backupKeychain] = await Promise.all([userKeychainPromise, backupKeychainPromise]);
|
|
153
|
+
return { userKeychain, backupKeychain, bitgoKeychain };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.MPCv2SMCUtils = MPCv2SMCUtils;
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VjZHNhL1NNQy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsc0RBWTZCO0FBRzdCLDhDQUFnRDtBQUNoRCxtQ0FBcUQ7QUFDckQsc0VBQThGO0FBRTlGLE1BQWEsYUFBYTtJQUd4QixZQUFvQixLQUFnQixFQUFVLFFBQW1CO1FBQTdDLFVBQUssR0FBTCxLQUFLLENBQVc7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSw0QkFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFrQixFQUFFLE9BQWlDO1FBQzdFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUEsa0RBQXlCLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFrQixFQUFFLE9BQWlDO1FBQzdFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUEsa0RBQXlCLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFrQixFQUFFLE9BQWlDO1FBQzdFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUEsa0RBQXlCLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUMvQixRQUEyRCxFQUMzRCxPQUFpQztRQUVqQyxJ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LG9CQUFvQjtZQUNwQyxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQS9MRCxzQ0ErTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBCaXRnb1RvT1ZDMVJvdW5kMVJlc3BvbnNlLFxuICBCaXRnb1RvT1ZDMVJvdW5kMlJlc3BvbnNlLFxuICBCaXRnb1RvT1ZDMVJvdW5kM1Jlc3BvbnNlLFxuICBLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLFxuICBNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlLFxuICBNUEN2MktleUdlblJvdW5kMlJlc3BvbnNlLFxuICBNUEN2MktleUdlblJvdW5kM1Jlc3BvbnNlLFxuICBPVkMxVG9CaXRnb1JvdW5kM1BheWxvYWQsXG4gIE9WQzJUb0JpdGdvUm91bmQxUGF5bG9hZCxcbiAgT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkLFxuICBPVkNJbmRleEVudW0sXG59IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgSUJhc2VDb2luIH0gZnJvbSAnLi4vLi4vLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IEVjZHNhTVBDdjJVdGlscyB9IGZyb20gJy4uL2VjZHNhTVBDdjInO1xuaW1wb3J0IHsgZGVjb2RlT3JFbHNlLCBLZXljaGFpbiB9IGZyb20gJy4uLy4uLy4uLy4uJztcbmltcG9ydCB7IEVjZHNhTVBDdjJLZXlHZW5TZW5kRm4sIEtleUdlblNlbmRlckZvckVudGVycHJpc2UgfSBmcm9tICcuLi9lY2RzYU1QQ3YyS2V5R2VuU2VuZGVyJztcblxuZXhwb3J0IGNsYXNzIE1QQ3YyU01DVXRpbHMge1xuICBwcml2YXRlIE1QQ3YyVXRpbHM6IEVjZHNhTVBDdjJVdGlscztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJpdGdvOiBCaXRHb0Jhc2UsIHByaXZhdGUgYmFzZUNvaW46IElCYXNlQ29pbikge1xuICAgIHRoaXMuTVBDdjJVdGlscyA9IG5ldyBFY2RzYU1QQ3YyVXRpbHMoYml0Z28sIGJhc2VDb2luKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDEoZW50ZXJwcmlzZTogc3RyaW5nLCBwYXlsb2FkOiBPVkMyVG9CaXRnb1JvdW5kMVBheWxvYWQpOiBQcm9taXNlPEJpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlHZW5Sb3VuZDFCeVNlbmRlcihLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlKHRoaXMuYml0Z28sIGVudGVycHJpc2UpLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDIoZW50ZXJwcmlzZTogc3RyaW5nLCBwYXlsb2FkOiBPVkMyVG9CaXRnb1JvdW5kMlBheWxvYWQpOiBQcm9taXNlPEJpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlHZW5Sb3VuZDJCeVNlbmRlcihLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlKHRoaXMuYml0Z28sIGVudGVycHJpc2UpLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDMoZW50ZXJwcmlzZTogc3RyaW5nLCBwYXlsb2FkOiBPVkMxVG9CaXRnb1JvdW5kM1BheWxvYWQpOiBQcm9taXNlPEJpdGdvVG9PVkMxUm91bmQzUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlHZW5Sb3VuZDNCeVNlbmRlcihLZXlHZW5TZW5kZXJGb3JFbnRlcnByaXNlKHRoaXMuYml0Z28sIGVudGVycHJpc2UpLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBrZXlHZW5Sb3VuZDFCeVNlbmRlcihcbiAgICBzZW5kZXJGbjogRWNkc2FNUEN2MktleUdlblNlbmRGbjxNUEN2MktleUdlblJvdW5kMVJlc3BvbnNlPixcbiAgICBwYXlsb2FkOiBPVkMyVG9CaXRnb1JvdW5kMVBheWxvYWRcbiAgKTogUHJvbWlzZTxCaXRnb1RvT1ZDMVJvdW5kMVJlc3BvbnNlPiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcGF5bG9hZC5zdGF0ZSA9PT0gS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yQml0Z29Sb3VuZDFEYXRhLFxuICAgICAgYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDEsIGV4cGVjdGVkOiAke0tleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YX0sIGdvdDogJHtwYXlsb2FkLnN0YXRlfWBcbiAgICApO1xuICAgIGRlY29kZU9yRWxzZShPVkMyVG9CaXRnb1JvdW5kMVBheWxvYWQubmFtZSwgT1ZDMlRvQml0Z29Sb3VuZDFQYXlsb2FkLCBwYXlsb2FkLCAoZXJyb3JzKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGVycm9yKHMpIHBhcnNpbmcgcGF5bG9hZDogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvdmMxID0gcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLk9ORV07XG4gICAgY29uc3Qgb3ZjMiA9IHBheWxvYWQub3ZjW09WQ0luZGV4RW51bS5UV09dO1xuICAgIGNvbnN0IHVzZXJHcGdQdWJsaWNLZXkgPSBvdmMxLmdwZ1B1YktleTtcbiAgICBjb25zdCBiYWNrdXBHcGdQdWJsaWNLZXkgPSBvdmMyLmdwZ1B1YktleTtcbiAgICBjb25zdCBtZXNzYWdlcyA9IHsgcDJwTWVzc2FnZXM6IFtdLCBicm9hZGNhc3RNZXNzYWdlczogW292YzEub3ZjTXNnMSwgb3ZjMi5vdmNNc2cxXSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuTVBDdjJVdGlscy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMUJ5U2VuZGVyKFxuICAgICAgc2VuZGVyRm4sXG4gICAgICB1c2VyR3BnUHVibGljS2V5LFxuICAgICAgYmFja3VwR3BnUHVibGljS2V5LFxuICAgICAgbWVzc2FnZXNcbiAgICApO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSB7XG4gICAgICBzdGF0ZTogS2V5Q3JlYXRpb25NUEN2MlN0YXRlRW51bS5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEsXG4gICAgICB0c3NWZXJzaW9uOiBwYXlsb2FkLnRzc1ZlcnNpb24sXG4gICAgICB3YWxsZXRUeXBlOiBwYXlsb2FkLndhbGxldFR5cGUsXG4gICAgICBjb2luOiBwYXlsb2FkLmNvaW4sXG4gICAgICBvdmM6IHBheWxvYWQub3ZjLFxuICAgICAgcGxhdGZvcm06IHtcbiAgICAgICAgd2FsbGV0R3BnUHViS2V5U2lnczogcmVzdWx0LndhbGxldEdwZ1B1YktleVNpZ3MsXG4gICAgICAgIHNlc3Npb25JZDogcmVzdWx0LnNlc3Npb25JZCxcbiAgICAgICAgYml0Z29Nc2cxOiB0aGlzLk1QQ3YyVXRpbHMuZm9ybWF0Qml0Z29Ccm9hZGNhc3RNZXNzYWdlKHJlc3VsdC5iaXRnb01zZzEpLFxuICAgICAgICBvdmM6IHtcbiAgICAgICAgICBbT1ZDSW5kZXhFbnVtLk9ORV06IHsgYml0Z29Ub092Y01zZzI6IHRoaXMuTVBDdjJVdGlscy5mb3JtYXRQMlBNZXNzYWdlKHJlc3VsdC5iaXRnb1RvVXNlck1zZzIpIH0sXG4gICAgICAgICAgW09WQ0luZGV4RW51bS5UV09dOiB7IGJpdGdvVG9PdmNNc2cyOiB0aGlzLk1QQ3YyVXRpbHMuZm9ybWF0UDJQTWVzc2FnZShyZXN1bHQuYml0Z29Ub0JhY2t1cE1zZzIpIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKEJpdGdvVG9PVkMxUm91bmQxUmVzcG9uc2UubmFtZSwgQml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZSwgcmVzcG9uc2UsIChlcnJvcnMpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXJyb3IocykgcGFyc2luZyByZXNwb25zZTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMga2V5R2VuUm91bmQyQnlTZW5kZXIoXG4gICAgc2VuZGVyRm46IEVjZHNhTVBDdjJLZXlHZW5TZW5kRm48TVBDdjJLZXlHZW5Sb3VuZDJSZXNwb25zZT4sXG4gICAgcGF5bG9hZDogT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkXG4gICk6IFByb21pc2U8Qml0Z29Ub09WQzFSb3VuZDJSZXNwb25zZT4ge1xuICAgIGFzc2VydChcbiAgICAgIHBheWxvYWQuc3RhdGUgPT09IEtleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQyRGF0YSxcbiAgICAgIGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAyLCBleHBlY3RlZDogJHtLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kMkRhdGF9LCBnb3Q6ICR7cGF5bG9hZC5zdGF0ZX1gXG4gICAgKTtcbiAgICBkZWNvZGVPckVsc2UoT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkLm5hbWUsIE9WQzJUb0JpdGdvUm91bmQyUGF5bG9hZCwgcGF5bG9hZCwgKGVycm9ycykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHBheWxvYWQ6ICR7ZXJyb3JzfWApO1xuICAgIH0pO1xuICAgIGNvbnN0IG92YzEgPSBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uT05FXTtcbiAgICBjb25zdCBvdmMyID0gcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLlRXT107XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcGF5bG9hZC5wbGF0Zm9ybS5zZXNzaW9uSWQ7XG4gICAgY29uc3QgbWVzc2FnZXMgPSB7IHAycE1lc3NhZ2VzOiBbb3ZjMS5vdmNUb0JpdGdvTXNnMiwgb3ZjMi5vdmNUb0JpdGdvTXNnMl0sIGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuTVBDdjJVdGlscy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMkJ5U2VuZGVyKHNlbmRlckZuLCBzZXNzaW9uSWQsIG1lc3NhZ2VzKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgc3RhdGU6IEtleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0Zvck9WQzFSb3VuZDNhRGF0YSxcbiAgICAgIHRzc1ZlcnNpb246IHBheWxvYWQudHNzVmVyc2lvbixcbiAgICAgIHdhbGxldFR5cGU6IHBheWxvYWQud2FsbGV0VHlwZSxcbiAgICAgIGNvaW46IHBheWxvYWQuY29pbixcbiAgICAgIG92YzogcGF5bG9hZC5vdmMsXG4gICAgICBwbGF0Zm9ybToge1xuICAgICAgICAuLi5wYXlsb2FkLnBsYXRmb3JtLFxuICAgICAgICBzZXNzaW9uSWQ6IHJlc3VsdC5zZXNzaW9uSWQsXG4gICAgICAgIGJpdGdvQ29tbWl0bWVudDI6IHJlc3VsdC5iaXRnb0NvbW1pdG1lbnQyLFxuICAgICAgICBvdmM6IHtcbiAgICAgICAgICBbT1ZDSW5kZXhFbnVtLk9ORV06IHtcbiAgICAgICAgICAgIC4uLnBheWxvYWQucGxhdGZvcm0ub3ZjW09WQ0luZGV4RW51bS5PTkVdLFxuICAgICAgICAgICAgYml0Z29Ub092Y01zZzM6IHRoaXMuTVBDdjJVdGlscy5mb3JtYXRQMlBNZXNzYWdlKHJlc3VsdC5iaXRnb1RvVXNlck1zZzMpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgW09WQ0luZGV4RW51bS5UV09dOiB7XG4gICAgICAgICAgICAuLi5wYXlsb2FkLnBsYXRmb3JtLm92Y1tPVkNJbmRleEVudW0uVFdPXSxcbiAgICAgICAgICAgIGJpdGdvVG9PdmNNc2czOiB0aGlzLk1QQ3YyVXRpbHMuZm9ybWF0UDJQTWVzc2FnZShyZXN1bHQuYml0Z29Ub0JhY2t1cE1zZzMpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gZGVjb2RlT3JFbHNlKEJpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2UubmFtZSwgQml0Z29Ub09WQzFSb3VuZDJSZXNwb25zZSwgcmVzcG9uc2UsIChlcnJvcnMpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXJyb3IocykgcGFyc2luZyByZXNwb25zZTogJHtlcnJvcnN9YCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMga2V5R2VuUm91bmQzQnlTZW5kZXIoXG4gICAgc2VuZGVyRm46IEVjZHNhTVBDdjJLZXlHZW5TZW5kRm48TVBDdjJLZXlHZW5Sb3VuZDNSZXNwb25zZT4sXG4gICAgcGF5bG9hZDogT1ZDMVRvQml0Z29Sb3VuZDNQYXlsb2FkXG4gICk6IFByb21pc2U8Qml0Z29Ub09WQzFSb3VuZDNSZXNwb25zZT4ge1xuICAgIGFzc2VydChcbiAgICAgIHBheWxvYWQuc3RhdGUgPT09IEtleUNyZWF0aW9uTVBDdjJTdGF0ZUVudW0uV2FpdGluZ0ZvckJpdGdvUm91bmQzRGF0YSxcbiAgICAgIGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAzLCBleHBlY3RlZDogJHtLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JCaXRnb1JvdW5kM0RhdGF9LCBnb3Q6ICR7cGF5bG9hZC5zdGF0ZX1gXG4gICAgKTtcbiAgICBkZWNvZGVPckVsc2UoT1ZDMVRvQml0Z29Sb3VuZDNQYXlsb2FkLm5hbWUsIE9WQzFUb0JpdGdvUm91bmQzUGF5bG9hZCwgcGF5bG9hZCwgKGVycm9ycykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHBheWxvYWQ6ICR7ZXJyb3JzfWApO1xuICAgIH0pO1xuICAgIGNvbnN0IG92YzEgPSBwYXlsb2FkLm92Y1tPVkNJbmRleEVudW0uT05FXTtcbiAgICBjb25zdCBvdmMyID0gcGF5bG9hZC5vdmNbT1ZDSW5kZXhFbnVtLlRXT107XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcGF5bG9hZC5wbGF0Zm9ybS5zZXNzaW9uSWQ7XG4gICAgY29uc3QgbWVzc2FnZXMgPSB7XG4gICAgICBwMnBNZXNzYWdlczogW292YzEub3ZjVG9CaXRnb01zZzMsIG92YzIub3ZjVG9CaXRnb01zZzNdLFxuICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IFtvdmMxLm92Y01zZzQsIG92YzIub3ZjTXNnNF0sXG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLk1QQ3YyVXRpbHMuc2VuZEtleUdlbmVyYXRpb25Sb3VuZDNCeVNlbmRlcihzZW5kZXJGbiwgc2Vzc2lvbklkLCBtZXNzYWdlcyk7XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpO1xuICAgIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCBrZXljaGFpbnMuYWRkKHtcbiAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IHJlc3VsdC5jb21tb25LZXljaGFpbixcbiAgICAgIGlzTVBDdjI6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IHtcbiAgICAgIHN0YXRlOiBLZXlDcmVhdGlvbk1QQ3YyU3RhdGVFbnVtLldhaXRpbmdGb3JPVkMxR2VuZXJhdGVLZXksXG4gICAgICBiaXRHb0tleUlkOiBiaXRnb0tleWNoYWluLmlkLFxuICAgICAgdHNzVmVyc2lvbjogcGF5bG9hZC50c3NWZXJzaW9uLFxuICAgICAgd2FsbGV0VHlwZTogcGF5bG9hZC53YWxsZXRUeXBlLFxuICAgICAgY29pbjogcGF5bG9hZC5jb2luLFxuICAgICAgb3ZjOiBwYXlsb2FkLm92YyxcbiAgICAgIHBsYXRmb3JtOiB7XG4gICAgICAgIC4uLnBheWxvYWQucGxhdGZvcm0sXG4gICAgICAgIGNvbW1vbktleWNoYWluOiByZXN1bHQuY29tbW9uS2V5Y2hhaW4sXG4gICAgICAgIGJpdGdvTXNnNDogdGhpcy5NUEN2MlV0aWxzLmZvcm1hdEJpdGdvQnJvYWRjYXN0TWVzc2FnZShyZXN1bHQuYml0Z29Nc2c0KSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBkZWNvZGVPckVsc2UoQml0Z29Ub09WQzFSb3VuZDNSZXNwb25zZS5uYW1lLCBCaXRnb1RvT1ZDMVJvdW5kM1Jlc3BvbnNlLCByZXNwb25zZSwgKGVycm9ycykgPT4ge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBlcnJvcihzKSBwYXJzaW5nIHJlc3BvbnNlOiAke2Vycm9yc31gKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGxvYWRDbGllbnRLZXlzKFxuICAgIGJpdGdvS2V5SWQ6IHN0cmluZyxcbiAgICB1c2VyQ29tbW9uS2V5Y2hhaW46IHN0cmluZyxcbiAgICBiYWNrdXBDb21tb25LZXljaGFpbjogc3RyaW5nXG4gICk6IFByb21pc2U8eyB1c2VyS2V5Y2hhaW46IEtleWNoYWluOyBiYWNrdXBLZXljaGFpbjogS2V5Y2hhaW47IGJpdGdvS2V5Y2hhaW46IEtleWNoYWluIH0+IHtcbiAgICBhc3NlcnQoXG4gICAgICB1c2VyQ29tbW9uS2V5Y2hhaW4gPT09IGJhY2t1cENvbW1vbktleWNoYWluLFxuICAgICAgJ0NvbW1vbiBrZXljaGFpbiBtaXNtYXRjaCBiZXR3ZWVuIHRoZSB1c2VyIGFuZCBiYWNrdXAga2V5Y2hhaW5zJ1xuICAgICk7XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpO1xuICAgIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCBrZXljaGFpbnMuZ2V0KHsgaWQ6IGJpdGdvS2V5SWQgfSk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4sICdLZXljaGFpbiBub3QgZm91bmQnKTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbi5zb3VyY2UgPT09ICdiaXRnbycsICdUaGUga2V5Y2hhaW4gaXMgbm90IGEgQml0R28ga2V5Y2hhaW4nKTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbi50eXBlID09PSAndHNzJywgJ0JpdEdvIGtleWNoYWluIGlzIG5vdCBhIFRTUyBrZXljaGFpbicpO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluLCAnQml0R28ga2V5Y2hhaW4gZG9lcyBub3QgaGF2ZSBhIGNvbW1vbiBrZXljaGFpbicpO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLmNvbW1vbktleWNoYWluID09PSB1c2VyQ29tbW9uS2V5Y2hhaW4sICdDb21tb24ga2V5Y2hhaW4gbWlzbWF0Y2ggYmV0d2VlbiB0aGUgT1ZDcyBhbmQgQml0R28nKTtcblxuICAgIGNvbnN0IHVzZXJLZXljaGFpblByb21pc2UgPSBrZXljaGFpbnMuYWRkKHtcbiAgICAgIHNvdXJjZTogJ3VzZXInLFxuICAgICAga2V5VHlwZTogJ3RzcycsXG4gICAgICBjb21tb25LZXljaGFpbjogdXNlckNvbW1vbktleWNoYWluLFxuICAgICAgaXNNUEN2MjogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCBiYWNrdXBLZXljaGFpblByb21pc2UgPSBrZXljaGFpbnMuYWRkKHtcbiAgICAgIHNvdXJjZTogJ2JhY2t1cCcsXG4gICAgICBrZXlUeXBlOiAndHNzJyxcbiAgICAgIGNvbW1vbktleWNoYWluOiBiYWNrdXBDb21tb25LZXljaGFpbixcbiAgICAgIGlzTVBDdjI6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBbdXNlcktleWNoYWluLCBiYWNrdXBLZXljaGFpbl0gPSBhd2FpdCBQcm9taXNlLmFsbChbdXNlcktleWNoYWluUHJvbWlzZSwgYmFja3VwS2V5Y2hhaW5Qcm9taXNlXSk7XG4gICAgcmV0dXJuIHsgdXNlcktleWNoYWluLCBiYWNrdXBLZXljaGFpbiwgYml0Z29LZXljaGFpbiB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IBaseCoin } from '../../../baseCoin';
|
|
2
|
+
import baseTSSUtils from '../baseTSSUtils';
|
|
3
|
+
import { KeyShare } from './types';
|
|
4
|
+
import { BackupGpgKey } from '../baseTypes';
|
|
5
|
+
import { BitGoBase } from '../../../bitgoBase';
|
|
6
|
+
import { IWallet } from '../../../wallet';
|
|
7
|
+
/** @inheritdoc */
|
|
8
|
+
export declare class BaseEcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
9
|
+
constructor(bitgo: BitGoBase, baseCoin: IBaseCoin, wallet?: IWallet);
|
|
10
|
+
/**
|
|
11
|
+
* Gets backup pub gpg key string
|
|
12
|
+
*/
|
|
13
|
+
getBackupGpgPubKey(): Promise<BackupGpgKey>;
|
|
14
|
+
/**
|
|
15
|
+
* util function that checks that a commonKeychain is valid and can ultimately resolve to a valid public key
|
|
16
|
+
* @param commonKeychain - a user uploaded commonKeychain string
|
|
17
|
+
* @throws if the commonKeychain is invalid length or invalid format
|
|
18
|
+
*/
|
|
19
|
+
static validateCommonKeychainPublicKey(commonKeychain: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Gets the common public key from commonKeychain.
|
|
22
|
+
*
|
|
23
|
+
* @param {String} commonKeychain common key chain between n parties
|
|
24
|
+
* @returns {string} encoded public key
|
|
25
|
+
*/
|
|
26
|
+
static getPublicKeyFromCommonKeychain(commonKeychain: string): string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,kBAAkB;AAClB,qBAAa,cAAe,SAAQ,YAAY,CAAC,QAAQ,CAAC;gBAG5C,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO;IAKnE;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC;IAIjD;;;;OAIG;IAEH,MAAM,CAAC,+BAA+B,CAAC,cAAc,EAAE,MAAM;IAU7D;;;;;OAKG;IACH,MAAM,CAAC,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;CAOtE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BaseEcdsaUtils = void 0;
|
|
7
|
+
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
8
|
+
const baseTSSUtils_1 = __importDefault(require("../baseTSSUtils"));
|
|
9
|
+
const opengpgUtils_1 = require("../../opengpgUtils");
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
class BaseEcdsaUtils extends baseTSSUtils_1.default {
|
|
12
|
+
// We do not have full support for 3-party verification (w/ external source) of key shares and signature shares. There is no 3rd party key service support with this release.
|
|
13
|
+
constructor(bitgo, baseCoin, wallet) {
|
|
14
|
+
super(bitgo, baseCoin, wallet);
|
|
15
|
+
this.setBitgoGpgPubKey(bitgo);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Gets backup pub gpg key string
|
|
19
|
+
*/
|
|
20
|
+
async getBackupGpgPubKey() {
|
|
21
|
+
return (0, opengpgUtils_1.generateGPGKeyPair)('secp256k1');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* util function that checks that a commonKeychain is valid and can ultimately resolve to a valid public key
|
|
25
|
+
* @param commonKeychain - a user uploaded commonKeychain string
|
|
26
|
+
* @throws if the commonKeychain is invalid length or invalid format
|
|
27
|
+
*/
|
|
28
|
+
static validateCommonKeychainPublicKey(commonKeychain) {
|
|
29
|
+
const pub = BaseEcdsaUtils.getPublicKeyFromCommonKeychain(commonKeychain);
|
|
30
|
+
try {
|
|
31
|
+
const point = secp256k1_1.secp256k1.ProjectivePoint.fromHex(pub);
|
|
32
|
+
return point.toHex(false).slice(2);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
throw new Error('Invalid commonKeychain, error: ' + e.message);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets the common public key from commonKeychain.
|
|
40
|
+
*
|
|
41
|
+
* @param {String} commonKeychain common key chain between n parties
|
|
42
|
+
* @returns {string} encoded public key
|
|
43
|
+
*/
|
|
44
|
+
static getPublicKeyFromCommonKeychain(commonKeychain) {
|
|
45
|
+
if (commonKeychain.length !== 130) {
|
|
46
|
+
throw new Error(`Invalid commonKeychain length, expected 130, got ${commonKeychain.length}`);
|
|
47
|
+
}
|
|
48
|
+
const commonPubHexStr = commonKeychain.slice(0, 66);
|
|
49
|
+
return commonPubHexStr;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.BaseEcdsaUtils = BaseEcdsaUtils;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvZWNkc2EvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBb0Q7QUFHcEQsbUVBQTJDO0FBRzNDLHFEQUF3RDtBQUl4RCxrQkFBa0I7QUFDbEIsTUFBYSxjQUFlLFNBQVEsc0JBQXNCO0lBQ3hELDZLQUE2SztJQUU3SyxZQUFZLEtBQWdCLEVBQUUsUUFBbUIsRUFBRSxNQUFnQjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQjtRQUN0QixPQUFPLElBQUEsaUNBQWtCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxNQUFNLENBQUMsK0JBQStCLENBQUMsY0FBc0I7UUFDM0QsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLDhCQUE4QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLHFCQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxjQUFzQjtRQUMxRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUNELE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQTVDRCx3Q0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZWNwMjU2azEgfSBmcm9tICdAbm9ibGUvY3VydmVzL3NlY3AyNTZrMSc7XG5cbmltcG9ydCB7IElCYXNlQ29pbiB9IGZyb20gJy4uLy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCBiYXNlVFNTVXRpbHMgZnJvbSAnLi4vYmFzZVRTU1V0aWxzJztcbmltcG9ydCB7IEtleVNoYXJlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBCYWNrdXBHcGdLZXkgfSBmcm9tICcuLi9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVHUEdLZXlQYWlyIH0gZnJvbSAnLi4vLi4vb3BlbmdwZ1V0aWxzJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uLy4uLy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vLi4vLi4vd2FsbGV0JztcblxuLyoqIEBpbmhlcml0ZG9jICovXG5leHBvcnQgY2xhc3MgQmFzZUVjZHNhVXRpbHMgZXh0ZW5kcyBiYXNlVFNTVXRpbHM8S2V5U2hhcmU+IHtcbiAgLy8gV2UgZG8gbm90IGhhdmUgZnVsbCBzdXBwb3J0IGZvciAzLXBhcnR5IHZlcmlmaWNhdGlvbiAody8gZXh0ZXJuYWwgc291cmNlKSBvZiBrZXkgc2hhcmVzIGFuZCBzaWduYXR1cmUgc2hhcmVzLiBUaGVyZSBpcyBubyAzcmQgcGFydHkga2V5IHNlcnZpY2Ugc3VwcG9ydCB3aXRoIHRoaXMgcmVsZWFzZS5cblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCB3YWxsZXQ/OiBJV2FsbGV0KSB7XG4gICAgc3VwZXIoYml0Z28sIGJhc2VDb2luLCB3YWxsZXQpO1xuICAgIHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkoYml0Z28pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYmFja3VwIHB1YiBncGcga2V5IHN0cmluZ1xuICAgKi9cbiAgYXN5bmMgZ2V0QmFja3VwR3BnUHViS2V5KCk6IFByb21pc2U8QmFja3VwR3BnS2V5PiB7XG4gICAgcmV0dXJuIGdlbmVyYXRlR1BHS2V5UGFpcignc2VjcDI1NmsxJyk7XG4gIH1cblxuICAvKipcbiAgICogdXRpbCBmdW5jdGlvbiB0aGF0IGNoZWNrcyB0aGF0IGEgY29tbW9uS2V5Y2hhaW4gaXMgdmFsaWQgYW5kIGNhbiB1bHRpbWF0ZWx5IHJlc29sdmUgdG8gYSB2YWxpZCBwdWJsaWMga2V5XG4gICAqIEBwYXJhbSBjb21tb25LZXljaGFpbiAtIGEgdXNlciB1cGxvYWRlZCBjb21tb25LZXljaGFpbiBzdHJpbmdcbiAgICogQHRocm93cyBpZiB0aGUgY29tbW9uS2V5Y2hhaW4gaXMgaW52YWxpZCBsZW5ndGggb3IgaW52YWxpZCBmb3JtYXRcbiAgICovXG5cbiAgc3RhdGljIHZhbGlkYXRlQ29tbW9uS2V5Y2hhaW5QdWJsaWNLZXkoY29tbW9uS2V5Y2hhaW46IHN0cmluZykge1xuICAgIGNvbnN0IHB1YiA9IEJhc2VFY2RzYVV0aWxzLmdldFB1YmxpY0tleUZyb21Db21tb25LZXljaGFpbihjb21tb25LZXljaGFpbik7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBvaW50ID0gc2VjcDI1NmsxLlByb2plY3RpdmVQb2ludC5mcm9tSGV4KHB1Yik7XG4gICAgICByZXR1cm4gcG9pbnQudG9IZXgoZmFsc2UpLnNsaWNlKDIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21tb25LZXljaGFpbiwgZXJyb3I6ICcgKyBlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjb21tb24gcHVibGljIGtleSBmcm9tIGNvbW1vbktleWNoYWluLlxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gY29tbW9uS2V5Y2hhaW4gY29tbW9uIGtleSBjaGFpbiBiZXR3ZWVuIG4gcGFydGllc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBlbmNvZGVkIHB1YmxpYyBrZXlcbiAgICovXG4gIHN0YXRpYyBnZXRQdWJsaWNLZXlGcm9tQ29tbW9uS2V5Y2hhaW4oY29tbW9uS2V5Y2hhaW46IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGNvbW1vbktleWNoYWluLmxlbmd0aCAhPT0gMTMwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29tbW9uS2V5Y2hhaW4gbGVuZ3RoLCBleHBlY3RlZCAxMzAsIGdvdCAke2NvbW1vbktleWNoYWluLmxlbmd0aH1gKTtcbiAgICB9XG4gICAgY29uc3QgY29tbW9uUHViSGV4U3RyID0gY29tbW9uS2V5Y2hhaW4uc2xpY2UoMCwgNjYpO1xuICAgIHJldHVybiBjb21tb25QdWJIZXhTdHI7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,52 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
import { Key, SerializedKeyPair } from 'openpgp';
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
3
2
|
import * as openpgp from 'openpgp';
|
|
3
|
+
import { Key, SerializedKeyPair } from 'openpgp';
|
|
4
4
|
import { EcdsaTypes } from '@bitgo-beta/sdk-lib-mpc';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import baseTSSUtils from '../baseTSSUtils';
|
|
5
|
+
import { Keychain } from '../../../keychain';
|
|
6
|
+
import { KeychainsTriplet } from '../../../baseCoin';
|
|
8
7
|
import { BitGoProofSignatures, CreateEcdsaBitGoKeychainParams, CreateEcdsaKeychainParams, GetBitGoChallengesApi, KeyShare } from './types';
|
|
9
|
-
import {
|
|
8
|
+
import { BackupKeyShare, BitgoHeldBackupKeyShare, CustomKShareGeneratingFunction, CustomMuDeltaShareGeneratingFunction, CustomPaillierModulusGetterFunction, CustomSShareGeneratingFunction, RequestType, TSSParams, TSSParamsForMessage, TSSParamsForMessageWithPrv, TSSParamsWithPrv, TxRequest } from '../baseTypes';
|
|
10
9
|
import { AShare, DShare, EncryptedNShare, SShare } from '../../../tss/ecdsa/types';
|
|
11
10
|
import { BitGoBase } from '../../../bitgoBase';
|
|
12
|
-
import { BackupProvider, IWallet } from '../../../wallet';
|
|
13
11
|
import { TssEcdsaStep1ReturnMessage, TssEcdsaStep2ReturnMessage, TxRequestChallengeResponse } from '../../../tss/types';
|
|
12
|
+
import { BaseEcdsaUtils } from './base';
|
|
13
|
+
import { IRequestTracer } from '../../../../api';
|
|
14
14
|
/** @inheritdoc */
|
|
15
|
-
export declare class EcdsaUtils extends
|
|
16
|
-
private bitgoPublicGpgKey;
|
|
17
|
-
constructor(bitgo: BitGoBase, baseCoin: IBaseCoin, wallet?: IWallet);
|
|
18
|
-
private setBitgoGpgPubKey;
|
|
19
|
-
getBitgoPublicGpgKey(): Promise<openpgp.Key>;
|
|
20
|
-
/**
|
|
21
|
-
* Gets the common public key from commonKeychain.
|
|
22
|
-
*
|
|
23
|
-
* @param {String} commonKeychain common key chain between n parties
|
|
24
|
-
* @returns {string} encoded public key
|
|
25
|
-
*/
|
|
26
|
-
static getPublicKeyFromCommonKeychain(commonKeychain: string): string;
|
|
15
|
+
export declare class EcdsaUtils extends BaseEcdsaUtils {
|
|
27
16
|
finalizeBitgoHeldBackupKeyShare(keyId: string, commonKeychain: string, userKeyShare: KeyShare, bitgoKeychain: Keychain, userGpgKey: SerializedKeyPair<string>, thirdPartyBackupPublicGpgKey: Key): Promise<BitgoHeldBackupKeyShare>;
|
|
28
17
|
/** @inheritdoc */
|
|
29
18
|
createKeychains(params: {
|
|
30
19
|
passphrase: string;
|
|
31
20
|
enterprise?: string | undefined;
|
|
32
21
|
originalPasscodeEncryptionCode?: string | undefined;
|
|
33
|
-
backupProvider?: BackupProvider;
|
|
34
22
|
}): Promise<KeychainsTriplet>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*/
|
|
39
|
-
createBackupKeyShares(isThirdPartyBackup: boolean | undefined, userGpgPubKey: SerializedKeyPair<string>, enterprise: string | undefined): Promise<BackupKeyShare>;
|
|
40
|
-
/**
|
|
41
|
-
* Gets backup pub gpg key string
|
|
42
|
-
* if a third party provided then get from trust
|
|
43
|
-
* @param isThirdPartyBackup
|
|
44
|
-
*/
|
|
45
|
-
getBackupGpgPubKey(isThirdPartyBackup?: boolean): Promise<BackupGpgKey>;
|
|
46
|
-
createUserKeychain({ userGpgKey, backupGpgKey, bitgoPublicGpgKey, userKeyShare, backupKeyShare, bitgoKeychain, passphrase, originalPasscodeEncryptionCode, isThirdPartyBackup, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
47
|
-
createBackupKeychain({ userGpgKey, userKeyShare, backupGpgKey, backupKeyShare, bitgoKeychain, bitgoPublicGpgKey, passphrase, backupProvider, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
23
|
+
createBackupKeyShares(): Promise<BackupKeyShare>;
|
|
24
|
+
createUserKeychain({ userGpgKey, backupGpgKey, bitgoPublicGpgKey, userKeyShare, backupKeyShare, bitgoKeychain, passphrase, originalPasscodeEncryptionCode, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
25
|
+
createBackupKeychain({ userGpgKey, userKeyShare, backupGpgKey, backupKeyShare, bitgoKeychain, bitgoPublicGpgKey, passphrase, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
48
26
|
/** @inheritdoc */
|
|
49
|
-
createBitgoKeychain({ userGpgKey, backupGpgKey, userKeyShare, backupKeyShare, enterprise, bitgoPublicGpgKey,
|
|
27
|
+
createBitgoKeychain({ userGpgKey, backupGpgKey, userKeyShare, backupKeyShare, enterprise, bitgoPublicGpgKey, }: CreateEcdsaBitGoKeychainParams): Promise<Keychain>;
|
|
50
28
|
/**
|
|
51
29
|
* This builds the relevant backup encryptedNShare based on whether the
|
|
52
30
|
* backup key is user or third party generated
|
|
@@ -56,12 +34,7 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
56
34
|
* @param backupGpgKey backup gpg key
|
|
57
35
|
* @param isThirdPartyBackup whether the backup is generated by third party
|
|
58
36
|
*/
|
|
59
|
-
getBackupEncryptedNShare(backupShare: BackupKeyShare, recipientIndex: number, recipientGpgPublicArmor: string, backupGpgKey: SerializedKeyPair<string
|
|
60
|
-
/**
|
|
61
|
-
* This uses the backup key from a third party (bitgo in this case)
|
|
62
|
-
* to create the user keychain via WP.
|
|
63
|
-
*/
|
|
64
|
-
createUserKeychainFromThirdPartyBackup(userGpgKey: openpgp.SerializedKeyPair<string>, bitgoPublicGpgKey: Key, thirdPartyBackupPublicGpgKey: Key, userKeyShare: KeyShare, thirdPartybackupKeyShares: ApiKeyShare[], bitgoKeychain: Keychain, passphrase: string, originalPasscodeEncryptionCode?: string): Promise<Keychain>;
|
|
37
|
+
getBackupEncryptedNShare(backupShare: BackupKeyShare, recipientIndex: number, recipientGpgPublicArmor: string, backupGpgKey: SerializedKeyPair<string>): Promise<EncryptedNShare>;
|
|
65
38
|
/** @inheritdoc */
|
|
66
39
|
createParticipantKeychain(userGpgKey: openpgp.SerializedKeyPair<string>, userLocalBackupGpgKey: openpgp.SerializedKeyPair<string>, bitgoPublicGpgKey: Key, recipientIndex: number, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string, originalPasscodeEncryptionCode?: string): Promise<Keychain>;
|
|
67
40
|
private createTssEcdsaStep1SigningMaterial;
|
|
@@ -110,7 +83,7 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
110
83
|
* @param {string} params.reqId - request id
|
|
111
84
|
* @returns {Promise<TxRequest>} fully signed TxRequest object
|
|
112
85
|
*/
|
|
113
|
-
signTxRequest(params:
|
|
86
|
+
signTxRequest(params: TSSParamsWithPrv): Promise<TxRequest>;
|
|
114
87
|
/**
|
|
115
88
|
* Signs the message associated to the transaction request.
|
|
116
89
|
* @param {string | TxRequest} params.txRequest - transaction request object or id
|
|
@@ -118,7 +91,7 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
118
91
|
* @param {string} params.reqId - request id
|
|
119
92
|
* @returns {Promise<TxRequest>} fully signed TxRequest object
|
|
120
93
|
*/
|
|
121
|
-
signTxRequestForMessage(params:
|
|
94
|
+
signTxRequestForMessage(params: TSSParamsForMessageWithPrv): Promise<TxRequest>;
|
|
122
95
|
/**
|
|
123
96
|
* Get the challenge values for enterprise and BitGo in ECDSA signing
|
|
124
97
|
* Only returns the challenges if they are verified by the user's enterprise admin's ecdh key
|
|
@@ -126,8 +99,9 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
126
99
|
* @param {RequestType} requestType - (0 for tx, 1 for message)
|
|
127
100
|
* @param {string} walletPaillierModulus - paillier pubkey $n$
|
|
128
101
|
* @param {number} index - index of the requestType
|
|
102
|
+
* @param {IRequestTracer} reqId - request tracer request id
|
|
129
103
|
*/
|
|
130
|
-
getEcdsaSigningChallenges(txRequestId: string, requestType: RequestType, walletPaillierModulus: string, index?: number): Promise<{
|
|
104
|
+
getEcdsaSigningChallenges(txRequestId: string, requestType: RequestType, walletPaillierModulus: string, index?: number, reqId?: IRequestTracer): Promise<{
|
|
131
105
|
enterpriseChallenge: EcdsaTypes.SerializedEcdsaChallenges;
|
|
132
106
|
bitgoChallenge: TxRequestChallengeResponse;
|
|
133
107
|
}>;
|
|
@@ -193,23 +167,17 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
193
167
|
* @param bitgoNitroChallengeProofSignature - signature on bitgo's nitro HSM challenge after verification
|
|
194
168
|
* @param challenge - optionally use the challenge for enterprise challenge
|
|
195
169
|
*/
|
|
196
|
-
static initiateChallengesForEnterprise(bitgo: BitGoBase, entId: string, userPassword: string, bitgoInstChallengeProofSignature: Buffer, bitgoNitroChallengeProofSignature: Buffer, challenge?: EcdsaTypes.DeserializedNtildeWithProofs): Promise<void>;
|
|
170
|
+
static initiateChallengesForEnterprise(bitgo: BitGoBase, entId: string, userPassword: string, bitgoInstChallengeProofSignature: Buffer, bitgoNitroChallengeProofSignature: Buffer, openSSLBytes: Uint8Array, challenge?: EcdsaTypes.DeserializedNtildeWithProofs): Promise<void>;
|
|
197
171
|
/**
|
|
198
172
|
* Uploads the signed challenges and their proofs on the enterprise.
|
|
199
173
|
* This initiates ecdsa signing for the enterprise users.
|
|
200
174
|
* @param bitgo
|
|
201
175
|
* @param entId - enterprise to enable ecdsa signing on
|
|
202
|
-
* @param
|
|
176
|
+
* @param entChallenge - client side generated ent challenge with ZK proofs
|
|
203
177
|
* @param entChallengeSignature - signature on enterprise challenge
|
|
204
178
|
* @param bitgoIntChallengeSignature - signature on BitGo's institutional HSM challenge
|
|
205
179
|
* @param bitgoNitroChallengeSignature - signature on BitGo's nitro HSM challenge
|
|
206
180
|
*/
|
|
207
|
-
static uploadChallengesToEnterprise(bitgo: BitGoBase, entId: string,
|
|
208
|
-
/**
|
|
209
|
-
* util function that checks that a commonKeychain is valid and can ultimately resolve to a valid public key
|
|
210
|
-
* @param commonKeychain - a user uploaded commonKeychain string
|
|
211
|
-
* @throws if the commonKeychain is invalid length or invalid format
|
|
212
|
-
*/
|
|
213
|
-
static validateCommonKeychainPublicKey(commonKeychain: string): string;
|
|
181
|
+
static uploadChallengesToEnterprise(bitgo: BitGoBase, entId: string, entChallenge: EcdsaTypes.SerializedNtilde | EcdsaTypes.SerializedNtildeWithProofs, entChallengeSignature: string, bitgoIntChallengeSignature: string, bitgoNitroChallengeSignature: string): Promise<void>;
|
|
214
182
|
}
|
|
215
183
|
//# sourceMappingURL=ecdsa.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAuC,UAAU,EAAoC,MAAM,yBAAyB,CAAC;AAI5H,OAAO,EAAsB,QAAQ,EAAW,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EAEzB,qBAAqB,EACrB,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,8BAA8B,EAC9B,oCAAoC,EACpC,mCAAmC,EACnC,8BAA8B,EAC9B,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAiB,MAAM,EAAkB,MAAM,0BAA0B,CAAC;AAElH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAEL,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,kBAAkB;AAClB,qBAAa,UAAW,SAAQ,cAAc;IACtC,+BAA+B,CACnC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,QAAQ,EACtB,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,iBAAiB,CAAC,MAAM,CAAC,EACrC,4BAA4B,EAAE,GAAG,GAChC,OAAO,CAAC,uBAAuB,CAAC;IA0CnC,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,8BAA8B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACrD,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoDvB,qBAAqB,IAAI,OAAO,CAAC,cAAc,CAAC;IAUtD,kBAAkB,CAAC,EACjB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,8BAA8B,GAC/B,EAAE,yBAAyB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkB1C,oBAAoB,CAAC,EACzB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,GACX,EAAE,yBAAyB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAehD,kBAAkB;IACZ,mBAAmB,CAAC,EACxB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,EAAE,8BAA8B,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2CrD;;;;;;;;OAQG;IACG,wBAAwB,CAC5B,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,MAAM,EACtB,uBAAuB,EAAE,MAAM,EAC/B,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,GACtC,OAAO,CAAC,eAAe,CAAC;IAW3B,kBAAkB;IACZ,yBAAyB,CAC7B,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC7C,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACxD,iBAAiB,EAAE,GAAG,EACtB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,QAAQ,EACtB,cAAc,EAAE,QAAQ,EACxB,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,MAAM,EAClB,8BAA8B,CAAC,EAAE,MAAM,GACtC,OAAO,CAAC,QAAQ,CAAC;YAsGN,kCAAkC;YA4ElC,kCAAkC;IAiChD,+BAA+B,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,mBAAmB,EAAE,MAAM,CAAA;KAAE;IAMnF,mBAAmB,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS,GAAG,mBAAmB,CAAC;QAC3C,UAAU,EAAE;YACV,mBAAmB,EAAE,UAAU,CAAC,yBAAyB,CAAC;YAC1D,cAAc,EAAE,0BAA0B,CAAC;SAC5C,CAAC;QACF,WAAW,EAAE,WAAW,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA0BjC,yBAAyB,CAAC,MAAM,EAAE;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACtD,cAAc,EAAE,0BAA0B,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAUjC,mBAAmB,CAAC,MAAM,EAAE;QAChC,SAAS,EAAE,SAAS,GAAG,mBAAmB,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,WAAW,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCb,+BAA+B,CACnC,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,WAAW,EAAE,WAAW,EACxB,mCAAmC,EAAE,mCAAmC,EACxE,6BAA6B,EAAE,8BAA8B,EAC7D,mCAAmC,EAAE,oCAAoC,EACzE,6BAA6B,EAAE,8BAA8B,GAC5D,OAAO,CAAC,SAAS,CAAC;IAwFrB;;;;;;OAMG;YACW,eAAe;IA+I7B;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKjE;;;;;;OAMG;IACG,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC;IAOrF;;;;;;;;OAQG;IACG,yBAAyB,CAC7B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,MAAM,EAC7B,KAAK,SAAI,EACT,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC;QACT,mBAAmB,EAAE,UAAU,CAAC,yBAAyB,CAAC;QAC1D,cAAc,EAAE,0BAA0B,CAAC;KAC5C,CAAC;IA0EF;;;;;;;OAOG;IACG,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,QAAQ,EACvB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,CAAC,GAAG,CAAC,GACnB,OAAO,CAAC,IAAI,CAAC;IA0ChB;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAK9G;;;OAGG;IACH,MAAM,CAAC,6BAA6B,CAAC,SAAS,EAAE,UAAU,CAAC,gBAAgB,GAAG,MAAM;IAIpF;;;OAGG;WACU,qBAAqB,CAAC,eAAe,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB5F;;;OAGG;WACU,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB1G;;;OAGG;WACU,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBjF;;;;;OAKG;WACU,+BAA+B,CAC1C,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAWhC;;;;;;OAMG;WACU,mBAAmB,CAC9B,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,yBAAyB,CAAC,EAAE,qBAAqB,GAChD,OAAO,CAAC,oBAAoB,CAAC;IAyBhC;;;;;;;;;;OAUG;WACU,+BAA+B,CAC1C,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,gCAAgC,EAAE,MAAM,EACxC,iCAAiC,EAAE,MAAM,EACzC,YAAY,EAAE,UAAU,EACxB,SAAS,CAAC,EAAE,UAAU,CAAC,4BAA4B,GAClD,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;;;;;;;OASG;WACU,4BAA4B,CACvC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC,0BAA0B,EACjF,qBAAqB,EAAE,MAAM,EAC7B,0BAA0B,EAAE,MAAM,EAClC,4BAA4B,EAAE,MAAM,GACnC,OAAO,CAAC,IAAI,CAAC;CA6BjB"}
|