@bitgo-beta/sdk-core 8.2.1-beta.13 → 8.2.1-beta.1300
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 +41 -29
- package/dist/src/account-lib/baseCoin/enum.d.ts +34 -2
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +62 -5
- 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.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 +68 -13
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +794 -225
- 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 +114 -78
- 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 +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/{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 +112 -11
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +163 -16
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +168 -25
- 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 +158 -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 +76 -5
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +224 -29
- package/dist/src/bitgo/errors.d.ts +151 -0
- package/dist/src/bitgo/errors.d.ts.map +1 -1
- package/dist/src/bitgo/errors.js +127 -2
- 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 +3 -1
- package/dist/src/bitgo/index.d.ts.map +1 -1
- package/dist/src/bitgo/index.js +29 -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 +65 -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 +15 -4
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +158 -59
- 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 +3 -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 +224 -98
- 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 +15 -2
- package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -1
- package/dist/src/bitgo/recovery/initiate.js +14 -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 +157 -7
- 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 +26 -7
- package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -1
- package/dist/src/bitgo/staking/stakingWallet.js +148 -7
- 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 +50 -7
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +124 -23
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +17 -12
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +111 -96
- 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 +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/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 +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 +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.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/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 +38 -0
- package/dist/src/bitgo/utils/messageTypes.d.ts.map +1 -0
- package/dist/src/bitgo/utils/messageTypes.js +15 -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 +52 -13
- 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 +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/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 +23 -0
- package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/addressVerification.js +51 -0
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +105 -25
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +242 -42
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +371 -31
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +36 -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 +56 -49
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +332 -317
- 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 +38 -11
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +170 -65
- 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.d.ts +1 -0
- package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/index.js +24 -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 +134 -0
- package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/BuildParams.js +151 -0
- package/dist/src/bitgo/wallet/iWallet.d.ts +301 -21
- 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 +109 -16
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +50 -3
- package/dist/src/bitgo/wallet/index.js +6 -2
- package/dist/src/bitgo/wallet/wallet.d.ts +226 -24
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +1239 -342
- package/dist/src/bitgo/wallet/wallets.d.ts +103 -9
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +934 -195
- 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/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 +6 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +28 -11
- 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 +235 -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/errors.d.ts +2 -0
- package/dist/test/unit/bitgo/errors.d.ts.map +1 -0
- package/dist/test/unit/bitgo/errors.js +136 -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 +64 -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/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.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/SendTransactionRequest.js +58 -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 +135 -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/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/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 -8279
- package/package.json +29 -22
- 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/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/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 @@
|
|
|
1
|
+
{"version":3,"file":"baseMessageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/account-lib/baseCoin/messages/baseMessageBuilderFactory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
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
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
7
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
+
const should_1 = __importDefault(require("should"));
|
|
9
|
+
const src_1 = require("../../../../../src");
|
|
10
|
+
const fixtures_1 = require("./fixtures");
|
|
11
|
+
describe('Base Message Builder Factory', () => {
|
|
12
|
+
let factory;
|
|
13
|
+
let mockCoinConfig;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
mockCoinConfig = sinon_1.default.createStubInstance(statics_1.BaseCoin);
|
|
16
|
+
factory = new fixtures_1.TestMessageBuilderFactory(mockCoinConfig);
|
|
17
|
+
});
|
|
18
|
+
describe('getMessageBuilder', () => {
|
|
19
|
+
it('should create a message builder for EIP191 type', () => {
|
|
20
|
+
const builder = factory.getMessageBuilder(src_1.MessageStandardType.EIP191);
|
|
21
|
+
should_1.default.exist(builder);
|
|
22
|
+
should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
|
|
23
|
+
});
|
|
24
|
+
it('should create a message builder for UNKNOWN type', () => {
|
|
25
|
+
const builder = factory.getMessageBuilder(src_1.MessageStandardType.UNKNOWN);
|
|
26
|
+
should_1.default.exist(builder);
|
|
27
|
+
should_1.default.equal(builder.getType(), src_1.MessageStandardType.UNKNOWN);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe('fromBroadcastFormat', () => {
|
|
31
|
+
it('should create a builder from a broadcast message', () => {
|
|
32
|
+
const broadcastMessage = {
|
|
33
|
+
type: src_1.MessageStandardType.EIP191,
|
|
34
|
+
payload: 'hello world',
|
|
35
|
+
serializedSignatures: [
|
|
36
|
+
{
|
|
37
|
+
publicKey: 'pub1',
|
|
38
|
+
signature: 'sig1',
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
signers: ['addr1'],
|
|
42
|
+
metadata: { version: '1.0' },
|
|
43
|
+
};
|
|
44
|
+
const builder = factory.fromBroadcastFormat(broadcastMessage);
|
|
45
|
+
should_1.default.exist(builder);
|
|
46
|
+
// Since the TestMessageBuilder always returns the same type that was passed to constructor
|
|
47
|
+
should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
describe('fromBroadcastString', () => {
|
|
51
|
+
it('should parse a broadcast message string and create the appropriate builder', () => {
|
|
52
|
+
const broadcastMessage = {
|
|
53
|
+
type: src_1.MessageStandardType.EIP191,
|
|
54
|
+
payload: 'test message',
|
|
55
|
+
serializedSignatures: [
|
|
56
|
+
{
|
|
57
|
+
publicKey: 'pub1',
|
|
58
|
+
signature: 'sig1',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
publicKey: 'pub2',
|
|
62
|
+
signature: 'sig2',
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
signers: ['addr1', 'addr2'],
|
|
66
|
+
metadata: { chainId: 1 },
|
|
67
|
+
};
|
|
68
|
+
const broadcastString = JSON.stringify(broadcastMessage);
|
|
69
|
+
const broadcastHex = Buffer.from(broadcastString).toString('hex');
|
|
70
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
71
|
+
should_1.default.exist(builder);
|
|
72
|
+
// Since the TestMessageBuilder always returns the same type that was passed to constructor
|
|
73
|
+
should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
|
|
74
|
+
});
|
|
75
|
+
it('should handle broadcast messages with different types', () => {
|
|
76
|
+
const broadcastMessage = {
|
|
77
|
+
type: src_1.MessageStandardType.UNKNOWN,
|
|
78
|
+
payload: 'unknown message',
|
|
79
|
+
serializedSignatures: [
|
|
80
|
+
{
|
|
81
|
+
publicKey: 'pub1',
|
|
82
|
+
signature: 'sig1',
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
signers: ['addr1'],
|
|
86
|
+
};
|
|
87
|
+
const broadcastString = JSON.stringify(broadcastMessage);
|
|
88
|
+
const broadcastHex = Buffer.from(broadcastString).toString('hex');
|
|
89
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
90
|
+
should_1.default.exist(builder);
|
|
91
|
+
should_1.default.equal(builder.getType(), src_1.MessageStandardType.UNKNOWN);
|
|
92
|
+
});
|
|
93
|
+
it('should handle broadcast messages without optional fields', () => {
|
|
94
|
+
const broadcastMessage = {
|
|
95
|
+
type: src_1.MessageStandardType.EIP191,
|
|
96
|
+
payload: 'minimal message',
|
|
97
|
+
signatures: [],
|
|
98
|
+
signers: [],
|
|
99
|
+
};
|
|
100
|
+
const broadcastString = JSON.stringify(broadcastMessage);
|
|
101
|
+
const broadcastHex = Buffer.from(broadcastString).toString('hex');
|
|
102
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
103
|
+
should_1.default.exist(builder);
|
|
104
|
+
should_1.default.equal(builder.getType(), src_1.MessageStandardType.EIP191);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU1lc3NhZ2VCdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9hY2NvdW50LWxpYi9iYXNlQ29pbi9tZXNzYWdlcy9iYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQStDO0FBQy9DLGtEQUEwQjtBQUMxQixvREFBNEI7QUFDNUIsNENBQStFO0FBQy9FLHlDQUF1RDtBQUV2RCxRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQzVDLElBQUksT0FBa0MsQ0FBQztJQUN2QyxJQUFJLGNBQW9ELENBQUM7SUFFekQsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLGNBQWMsR0FBRyxlQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQVEsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxJQUFJLG9DQUF5QixDQUFDLGNBQXFDLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLGlEQUFpRCxFQUFFLEdBQUcsRUFBRTtZQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMseUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMseUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkUsZ0JBQU0sQ0FB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LENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTFELGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSx5QkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwREFBMEQsRUFBRSxHQUFHLEVBQUU7WUFDbEUsTUFBTSxnQkFBZ0IsR0FBRztnQkFDdkIsSUFBSSxFQUFFLHlCQUFtQixDQUFDLE1BQU07Z0JBQ2hDLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLE9BQU8sRUFBRSxFQUFFO2FBQ1osQ0FBQztZQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFMUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLHlCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgQnJvYWRjYXN0YWJsZU1lc3NhZ2UsIE1lc3NhZ2VTdGFuZGFyZFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgVGVzdE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vZml4dHVyZXMnO1xuXG5kZXNjcmliZSgnQmFzZSBNZXNzYWdlIEJ1aWxkZXIgRmFjdG9yeScsICgpID0+IHtcbiAgbGV0IGZhY3Rvcnk6IFRlc3RNZXNzYWdlQnVpbGRlckZhY3Rvcnk7XG4gIGxldCBtb2NrQ29pbkNvbmZpZzogc2lub24uU2lub25TdHViYmVkSW5zdGFuY2U8QmFzZUNvaW4+O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tDb2luQ29uZmlnID0gc2lub24uY3JlYXRlU3R1Ykluc3RhbmNlKEJhc2VDb2luKTtcbiAgICBmYWN0b3J5ID0gbmV3IFRlc3RNZXNzYWdlQnVpbGRlckZhY3RvcnkobW9ja0NvaW5Db25maWcgYXMgdW5rbm93biBhcyBCYXNlQ29pbik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRNZXNzYWdlQnVpbGRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIG1lc3NhZ2UgYnVpbGRlciBmb3IgRUlQMTkxIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgICBzaG91bGQuZXhpc3QoYnVpbGRlcik7XG4gICAgICBzaG91bGQuZXF1YWwoYnVpbGRlci5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgbWVzc2FnZSBidWlsZGVyIGZvciBVTktOT1dOIHR5cGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdEZvcm1hdCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGJ1aWxkZXIgZnJvbSBhIGJyb2FkY2FzdCBtZXNzYWdlJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnJvYWRjYXN0TWVzc2FnZTogQnJvYWRjYXN0YWJsZU1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiAnaGVsbG8gd29ybGQnLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHB1YmxpY0tleTogJ3B1YjEnLFxuICAgICAgICAgICAgc2lnbmF0dXJlOiAnc2lnMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2lnbmVyczogWydhZGRyMSddLFxuICAgICAgICBtZXRhZGF0YTogeyB2ZXJzaW9uOiAnMS4wJyB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIC8vIFNpbmNlIHRoZSBUZXN0TWVzc2FnZUJ1aWxkZXIgYWx3YXlzIHJldHVybnMgdGhlIHNhbWUgdHlwZSB0aGF0IHdhcyBwYXNzZWQgdG8gY29uc3RydWN0b3JcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdFN0cmluZycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGEgYnJvYWRjYXN0IG1lc3NhZ2Ugc3RyaW5nIGFuZCBjcmVhdGUgdGhlIGFwcHJvcHJpYXRlIGJ1aWxkZXInLCAoKSA9PiB7XG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICAgIHBheWxvYWQ6ICd0ZXN0IG1lc3NhZ2UnLFxuICAgICAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHB1YmxpY0tleTogJ3B1YjEnLFxuICAgICAgICAgICAgc2lnbmF0dXJlOiAnc2lnMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdwdWIyJyxcbiAgICAgICAgICAgIHNpZ25hdHVyZTogJ3NpZzInLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHNpZ25lcnM6IFsnYWRkcjEnLCAnYWRkcjInXSxcbiAgICAgICAgbWV0YWRhdGE6IHsgY2hhaW5JZDogMSB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPSBCdWZmZXIuZnJvbShicm9hZGNhc3RTdHJpbmcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmZyb21Ccm9hZGNhc3RTdHJpbmcoYnJvYWRjYXN0SGV4KTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgLy8gU2luY2UgdGhlIFRlc3RNZXNzYWdlQnVpbGRlciBhbHdheXMgcmV0dXJucyB0aGUgc2FtZSB0eXBlIHRoYXQgd2FzIHBhc3NlZCB0byBjb25zdHJ1Y3RvclxuICAgICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBicm9hZGNhc3QgbWVzc2FnZXMgd2l0aCBkaWZmZXJlbnQgdHlwZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOLFxuICAgICAgICBwYXlsb2FkOiAndW5rbm93biBtZXNzYWdlJyxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdwdWIxJyxcbiAgICAgICAgICAgIHNpZ25hdHVyZTogJ3NpZzEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHNpZ25lcnM6IFsnYWRkcjEnXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGJyb2FkY2FzdFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGJyb2FkY2FzdE1lc3NhZ2UpO1xuICAgICAgY29uc3QgYnJvYWRjYXN0SGV4ID0gQnVmZmVyLmZyb20oYnJvYWRjYXN0U3RyaW5nKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0U3RyaW5nKGJyb2FkY2FzdEhleCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChidWlsZGVyKTtcbiAgICAgIHNob3VsZC5lcXVhbChidWlsZGVyLmdldFR5cGUoKSwgTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJyb2FkY2FzdCBtZXNzYWdlcyB3aXRob3V0IG9wdGlvbmFsIGZpZWxkcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGJyb2FkY2FzdE1lc3NhZ2UgPSB7XG4gICAgICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxLFxuICAgICAgICBwYXlsb2FkOiAnbWluaW1hbCBtZXNzYWdlJyxcbiAgICAgICAgc2lnbmF0dXJlczogW10sXG4gICAgICAgIHNpZ25lcnM6IFtdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnJvYWRjYXN0U3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoYnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPSBCdWZmZXIuZnJvbShicm9hZGNhc3RTdHJpbmcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmZyb21Ccm9hZGNhc3RTdHJpbmcoYnJvYWRjYXN0SGV4KTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJ1aWxkZXIuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BaseMessage, BaseMessageBuilder, BaseMessageBuilderFactory, IMessage, IMessageBuilder, MessageOptions, MessageStandardType } from '../../../../../src';
|
|
2
|
+
import { BaseCoin } from '@bitgo-beta/statics';
|
|
3
|
+
export declare class TestMessageBuilderFactory extends BaseMessageBuilderFactory {
|
|
4
|
+
constructor(coinConfig: Readonly<BaseCoin>);
|
|
5
|
+
getMessageBuilder(type: MessageStandardType): IMessageBuilder;
|
|
6
|
+
}
|
|
7
|
+
export declare class TestMessageBuilder extends BaseMessageBuilder {
|
|
8
|
+
constructor(coinConfig: Readonly<BaseCoin>, type?: MessageStandardType);
|
|
9
|
+
buildMessage(options: MessageOptions): Promise<IMessage>;
|
|
10
|
+
fromBroadcastFormat(broadcastMessage: any): Promise<IMessage>;
|
|
11
|
+
}
|
|
12
|
+
export declare class TestMessage extends BaseMessage {
|
|
13
|
+
constructor(options: MessageOptions);
|
|
14
|
+
getSignablePayload(): Promise<string | Buffer>;
|
|
15
|
+
}
|
|
16
|
+
export declare const messageSamples: {
|
|
17
|
+
eip191: {
|
|
18
|
+
payload: string;
|
|
19
|
+
type: MessageStandardType;
|
|
20
|
+
metadata: {
|
|
21
|
+
chainId: number;
|
|
22
|
+
};
|
|
23
|
+
signers: string[];
|
|
24
|
+
signatures: {
|
|
25
|
+
publicKey: {
|
|
26
|
+
pub: string;
|
|
27
|
+
};
|
|
28
|
+
signature: Buffer<ArrayBuffer>;
|
|
29
|
+
}[];
|
|
30
|
+
};
|
|
31
|
+
unknown: {
|
|
32
|
+
payload: string;
|
|
33
|
+
type: MessageStandardType;
|
|
34
|
+
metadata: {
|
|
35
|
+
version: string;
|
|
36
|
+
};
|
|
37
|
+
signers: string[];
|
|
38
|
+
signatures: {
|
|
39
|
+
publicKey: {
|
|
40
|
+
pub: string;
|
|
41
|
+
};
|
|
42
|
+
signature: Buffer<ArrayBuffer>;
|
|
43
|
+
}[];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../../../test/unit/account-lib/baseCoin/messages/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,qBAAa,yBAA0B,SAAQ,yBAAyB;gBAC1D,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAI1C,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;CAG9D;AAED,qBAAa,kBAAmB,SAAQ,kBAAkB;gBAC5C,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAE,mBAAiD;IAI7F,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIxD,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAUpE;AAED,qBAAa,WAAY,SAAQ,WAAW;gBAC9B,OAAO,EAAE,cAAc;IAI7B,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;CAIrD;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.messageSamples = exports.TestMessage = exports.TestMessageBuilder = exports.TestMessageBuilderFactory = void 0;
|
|
4
|
+
const src_1 = require("../../../../../src");
|
|
5
|
+
class TestMessageBuilderFactory extends src_1.BaseMessageBuilderFactory {
|
|
6
|
+
constructor(coinConfig) {
|
|
7
|
+
super(coinConfig);
|
|
8
|
+
}
|
|
9
|
+
getMessageBuilder(type) {
|
|
10
|
+
return new TestMessageBuilder(this.coinConfig, type);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.TestMessageBuilderFactory = TestMessageBuilderFactory;
|
|
14
|
+
class TestMessageBuilder extends src_1.BaseMessageBuilder {
|
|
15
|
+
constructor(coinConfig, type = src_1.MessageStandardType.UNKNOWN) {
|
|
16
|
+
super(coinConfig, type);
|
|
17
|
+
}
|
|
18
|
+
async buildMessage(options) {
|
|
19
|
+
return new TestMessage(options);
|
|
20
|
+
}
|
|
21
|
+
async fromBroadcastFormat(broadcastMessage) {
|
|
22
|
+
this.setType(broadcastMessage.type);
|
|
23
|
+
this.setPayload(broadcastMessage.payload);
|
|
24
|
+
this.setSignatures(broadcastMessage.signatures || []);
|
|
25
|
+
this.setSigners(broadcastMessage.signers || []);
|
|
26
|
+
if (broadcastMessage.metadata) {
|
|
27
|
+
this.setMetadata(broadcastMessage.metadata);
|
|
28
|
+
}
|
|
29
|
+
return this.build();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.TestMessageBuilder = TestMessageBuilder;
|
|
33
|
+
class TestMessage extends src_1.BaseMessage {
|
|
34
|
+
constructor(options) {
|
|
35
|
+
super(options);
|
|
36
|
+
}
|
|
37
|
+
async getSignablePayload() {
|
|
38
|
+
this.signablePayload = Buffer.from(this.payload);
|
|
39
|
+
return this.signablePayload;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.TestMessage = TestMessage;
|
|
43
|
+
exports.messageSamples = {
|
|
44
|
+
eip191: {
|
|
45
|
+
payload: 'Hello BitGo!',
|
|
46
|
+
type: src_1.MessageStandardType.EIP191,
|
|
47
|
+
metadata: { chainId: 1 },
|
|
48
|
+
signers: ['0x1234567890abcdef1234567890abcdef12345678'],
|
|
49
|
+
signatures: [
|
|
50
|
+
{
|
|
51
|
+
publicKey: { pub: '0x1234567890abcdef1234567890abcdef12345678' },
|
|
52
|
+
signature: Buffer.from('abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', 'hex'),
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
unknown: {
|
|
57
|
+
payload: 'Unknown message type',
|
|
58
|
+
type: src_1.MessageStandardType.UNKNOWN,
|
|
59
|
+
metadata: { version: '1.0' },
|
|
60
|
+
signers: ['12345'],
|
|
61
|
+
signatures: [
|
|
62
|
+
{
|
|
63
|
+
publicKey: { pub: '12345' },
|
|
64
|
+
signature: Buffer.from('67890'),
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvYmFzZUNvaW4vbWVzc2FnZXMvZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBUTRCO0FBRzVCLE1BQWEseUJBQTBCLFNBQVEsK0JBQXlCO0lBQ3RFLFlBQVksVUFBOEI7UUFDeEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUF5QjtRQUN6QyxPQUFPLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFSRCw4REFRQztBQUVELE1BQWEsa0JBQW1CLFNBQVEsd0JBQWtCO0lBQ3hELFlBQVksVUFBOEIsRUFBRSxPQUE0Qix5QkFBbUIsQ0FBQyxPQUFPO1FBQ2pHLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBdUI7UUFDeEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQixDQUFDLGdCQUFxQjtRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFuQkQsZ0RBbUJDO0FBRUQsTUFBYSxXQUFZLFNBQVEsaUJBQVc7SUFDMUMsWUFBWSxPQUF1QjtRQUNqQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBVEQsa0NBU0M7QUFFWSxRQUFBLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUUsY0FBYztRQUN2QixJQUFJLEVBQUUseUJBQW1CLENBQUMsTUFBTTtRQUNoQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sRUFBRSxDQUFDLDRDQUE0QyxDQUFDO1FBQ3ZELFVBQVUsRUFBRTtZQUNWO2dCQUNFLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSw0Q0FBNEMsRUFBRTtnQkFDaEUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxDQUFDO2FBQ2xHO1NBQ0Y7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IsSUFBSSxFQUFFLHlCQUFtQixDQUFDLE9BQU87UUFDakMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUM1QixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDbEIsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRTtnQkFDM0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ2hDO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTWVzc2FnZSxcbiAgQmFzZU1lc3NhZ2VCdWlsZGVyLFxuICBCYXNlTWVzc2FnZUJ1aWxkZXJGYWN0b3J5LFxuICBJTWVzc2FnZSxcbiAgSU1lc3NhZ2VCdWlsZGVyLFxuICBNZXNzYWdlT3B0aW9ucyxcbiAgTWVzc2FnZVN0YW5kYXJkVHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBjbGFzcyBUZXN0TWVzc2FnZUJ1aWxkZXJGYWN0b3J5IGV4dGVuZHMgQmFzZU1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PEJhc2VDb2luPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0TWVzc2FnZUJ1aWxkZXIodHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZSk6IElNZXNzYWdlQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUZXN0TWVzc2FnZUJ1aWxkZXIodGhpcy5jb2luQ29uZmlnLCB0eXBlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVzdE1lc3NhZ2VCdWlsZGVyIGV4dGVuZHMgQmFzZU1lc3NhZ2VCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8QmFzZUNvaW4+LCB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlID0gTWVzc2FnZVN0YW5kYXJkVHlwZS5VTktOT1dOKSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZywgdHlwZSk7XG4gIH1cblxuICBhc3luYyBidWlsZE1lc3NhZ2Uob3B0aW9uczogTWVzc2FnZU9wdGlvbnMpOiBQcm9taXNlPElNZXNzYWdlPiB7XG4gICAgcmV0dXJuIG5ldyBUZXN0TWVzc2FnZShvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIGZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZTogYW55KTogUHJvbWlzZTxJTWVzc2FnZT4ge1xuICAgIHRoaXMuc2V0VHlwZShicm9hZGNhc3RNZXNzYWdlLnR5cGUpO1xuICAgIHRoaXMuc2V0UGF5bG9hZChicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQpO1xuICAgIHRoaXMuc2V0U2lnbmF0dXJlcyhicm9hZGNhc3RNZXNzYWdlLnNpZ25hdHVyZXMgfHwgW10pO1xuICAgIHRoaXMuc2V0U2lnbmVycyhicm9hZGNhc3RNZXNzYWdlLnNpZ25lcnMgfHwgW10pO1xuICAgIGlmIChicm9hZGNhc3RNZXNzYWdlLm1ldGFkYXRhKSB7XG4gICAgICB0aGlzLnNldE1ldGFkYXRhKGJyb2FkY2FzdE1lc3NhZ2UubWV0YWRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5idWlsZCgpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXN0TWVzc2FnZSBleHRlbmRzIEJhc2VNZXNzYWdlIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogTWVzc2FnZU9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIGdldFNpZ25hYmxlUGF5bG9hZCgpOiBQcm9taXNlPHN0cmluZyB8IEJ1ZmZlcj4ge1xuICAgIHRoaXMuc2lnbmFibGVQYXlsb2FkID0gQnVmZmVyLmZyb20odGhpcy5wYXlsb2FkKTtcbiAgICByZXR1cm4gdGhpcy5zaWduYWJsZVBheWxvYWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1lc3NhZ2VTYW1wbGVzID0ge1xuICBlaXAxOTE6IHtcbiAgICBwYXlsb2FkOiAnSGVsbG8gQml0R28hJyxcbiAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICBtZXRhZGF0YTogeyBjaGFpbklkOiAxIH0sXG4gICAgc2lnbmVyczogWycweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnXSxcbiAgICBzaWduYXR1cmVzOiBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICcweDEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgnIH0sXG4gICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ2FiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAnLCAnaGV4JyksXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHVua25vd246IHtcbiAgICBwYXlsb2FkOiAnVW5rbm93biBtZXNzYWdlIHR5cGUnLFxuICAgIHR5cGU6IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTixcbiAgICBtZXRhZGF0YTogeyB2ZXJzaW9uOiAnMS4wJyB9LFxuICAgIHNpZ25lcnM6IFsnMTIzNDUnXSxcbiAgICBzaWduYXR1cmVzOiBbXG4gICAgICB7XG4gICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICcxMjM0NScgfSxcbiAgICAgICAgc2lnbmF0dXJlOiBCdWZmZXIuZnJvbSgnNjc4OTAnKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../../test/unit/account-lib/mpc/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,235 @@
|
|
|
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
|
+
const paillierBigint = __importStar(require("paillier-bigint"));
|
|
40
|
+
require("should");
|
|
41
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
42
|
+
const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
|
|
43
|
+
const tss_1 = require("../../../../../../src/account-lib/mpc/tss");
|
|
44
|
+
const fixtures_1 = require("./fixtures");
|
|
45
|
+
const sdk_opensslbytes_1 = require("@bitgo-beta/sdk-opensslbytes");
|
|
46
|
+
const openSSLBytes = (0, sdk_opensslbytes_1.loadWebAssembly)().buffer;
|
|
47
|
+
describe('ecdsa tss', function () {
|
|
48
|
+
const ecdsa = new tss_1.Ecdsa();
|
|
49
|
+
let signCombine1, signCombine2;
|
|
50
|
+
before('generate key and sign phase 1 to 4', async function () {
|
|
51
|
+
// In some execution environments (e.g. CI), generateNtilde below may take longer at times.
|
|
52
|
+
this.timeout('40s');
|
|
53
|
+
const paillierKeyStub = sinon_1.default.stub(paillierBigint, 'generateRandomKeys');
|
|
54
|
+
paillierKeyStub.onCall(0).returns(Promise.resolve(fixtures_1.paillierKeyPairs[0]));
|
|
55
|
+
paillierKeyStub.onCall(1).returns(Promise.resolve(fixtures_1.paillierKeyPairs[1]));
|
|
56
|
+
paillierKeyStub.onCall(2).returns(Promise.resolve(fixtures_1.paillierKeyPairs[2]));
|
|
57
|
+
const [keyShare1, keyShare2, keyShare3] = await Promise.all([
|
|
58
|
+
ecdsa.keyShare(1, 2, 3),
|
|
59
|
+
ecdsa.keyShare(2, 2, 3),
|
|
60
|
+
ecdsa.keyShare(3, 2, 3),
|
|
61
|
+
]);
|
|
62
|
+
const [keyCombined1, keyCombined2, keyCombined3] = [
|
|
63
|
+
ecdsa.keyCombine(keyShare1.pShare, [keyShare2.nShares[1], keyShare3.nShares[1]]),
|
|
64
|
+
ecdsa.keyCombine(keyShare2.pShare, [keyShare1.nShares[2], keyShare3.nShares[2]]),
|
|
65
|
+
ecdsa.keyCombine(keyShare3.pShare, [keyShare1.nShares[3], keyShare2.nShares[3]]),
|
|
66
|
+
];
|
|
67
|
+
keyCombined1.xShare.y.should.equal(keyCombined2.xShare.y);
|
|
68
|
+
keyCombined1.xShare.y.should.equal(keyCombined3.xShare.y);
|
|
69
|
+
// Collect all VSS from nShares and verify Schnorr proofs against X_i.
|
|
70
|
+
// Note that this is something WP needs to do after keyCombine/keyDerive.
|
|
71
|
+
const Y = (0, sdk_lib_mpc_1.hexToBigInt)(keyCombined1.xShare.y);
|
|
72
|
+
const VSSs = [
|
|
73
|
+
[(0, sdk_lib_mpc_1.hexToBigInt)(keyShare1.nShares[2].v)],
|
|
74
|
+
[(0, sdk_lib_mpc_1.hexToBigInt)(keyShare2.nShares[3].v)],
|
|
75
|
+
[(0, sdk_lib_mpc_1.hexToBigInt)(keyShare3.nShares[1].v)],
|
|
76
|
+
];
|
|
77
|
+
ecdsa.verifySchnorrProofX(Y, VSSs, 1, keyCombined1.xShare.schnorrProofX).should.be.true();
|
|
78
|
+
ecdsa.verifySchnorrProofX(Y, VSSs, 2, keyCombined2.xShare.schnorrProofX).should.be.true();
|
|
79
|
+
ecdsa.verifySchnorrProofX(Y, VSSs, 3, keyCombined3.xShare.schnorrProofX).should.be.true();
|
|
80
|
+
// Verify Schnorr proofs against X_i for keyDerive and subsequent keyCombine.
|
|
81
|
+
const path = 'm/0/1/2';
|
|
82
|
+
const keyDerive1 = ecdsa.keyDerive(keyShare1.pShare, [keyShare2.nShares[1], keyShare3.nShares[1]], path);
|
|
83
|
+
// Note the VSSs used here are different from the ones used above.
|
|
84
|
+
const derivedY = (0, sdk_lib_mpc_1.hexToBigInt)(keyDerive1.xShare.y);
|
|
85
|
+
const derivedVSSs = [
|
|
86
|
+
[(0, sdk_lib_mpc_1.hexToBigInt)(keyDerive1.nShares[2].v)],
|
|
87
|
+
[(0, sdk_lib_mpc_1.hexToBigInt)(keyShare2.nShares[3].v)],
|
|
88
|
+
[(0, sdk_lib_mpc_1.hexToBigInt)(keyShare3.nShares[1].v)],
|
|
89
|
+
];
|
|
90
|
+
ecdsa.verifySchnorrProofX(derivedY, derivedVSSs, 1, keyDerive1.xShare.schnorrProofX).should.be.true();
|
|
91
|
+
const keyCombined2FromKeyDerive1 = ecdsa.keyCombine(keyShare2.pShare, [
|
|
92
|
+
keyDerive1.nShares[2],
|
|
93
|
+
keyShare3.nShares[2],
|
|
94
|
+
]);
|
|
95
|
+
ecdsa
|
|
96
|
+
.verifySchnorrProofX(derivedY, derivedVSSs, 2, keyCombined2FromKeyDerive1.xShare.schnorrProofX)
|
|
97
|
+
.should.be.true();
|
|
98
|
+
const [ntilde1, ntilde2] = await Promise.all([
|
|
99
|
+
sdk_lib_mpc_1.EcdsaRangeProof.generateNtilde(openSSLBytes, 512),
|
|
100
|
+
sdk_lib_mpc_1.EcdsaRangeProof.generateNtilde(openSSLBytes, 512),
|
|
101
|
+
]);
|
|
102
|
+
const [serializeNtilde1, serializeNtilde2] = [
|
|
103
|
+
sdk_lib_mpc_1.EcdsaTypes.serializeNtildeWithProofs(ntilde1),
|
|
104
|
+
sdk_lib_mpc_1.EcdsaTypes.serializeNtildeWithProofs(ntilde2),
|
|
105
|
+
];
|
|
106
|
+
const [index1, index2] = [keyCombined1.xShare.i, keyCombined2.xShare.i];
|
|
107
|
+
const [paillierN1to2, paillierN2to1] = [keyCombined1.yShares[index2].n, keyCombined2.yShares[index1].n];
|
|
108
|
+
const [paillierChallenger1to2, paillierChallenger2to1] = await Promise.all([
|
|
109
|
+
sdk_lib_mpc_1.EcdsaPaillierProof.generateP((0, sdk_lib_mpc_1.hexToBigInt)(paillierN1to2)),
|
|
110
|
+
sdk_lib_mpc_1.EcdsaPaillierProof.generateP((0, sdk_lib_mpc_1.hexToBigInt)(paillierN2to1)),
|
|
111
|
+
]);
|
|
112
|
+
const [xShare1, xShare2] = [
|
|
113
|
+
ecdsa.appendChallenge(keyCombined1.xShare, serializeNtilde1, sdk_lib_mpc_1.EcdsaTypes.serializePaillierChallenge({ p: paillierChallenger1to2 })),
|
|
114
|
+
ecdsa.appendChallenge(keyCombined2.xShare, serializeNtilde2, sdk_lib_mpc_1.EcdsaTypes.serializePaillierChallenge({ p: paillierChallenger2to1 })),
|
|
115
|
+
];
|
|
116
|
+
const yShare2 = ecdsa.appendChallenge(keyCombined1.yShares[index2], serializeNtilde2, sdk_lib_mpc_1.EcdsaTypes.serializePaillierChallenge({ p: paillierChallenger2to1 }));
|
|
117
|
+
const signShares = await ecdsa.signShare(xShare1, yShare2);
|
|
118
|
+
const signConvertS21 = await ecdsa.signConvertStep1({
|
|
119
|
+
xShare: xShare2,
|
|
120
|
+
yShare: keyCombined2.yShares[index1],
|
|
121
|
+
kShare: signShares.kShare,
|
|
122
|
+
});
|
|
123
|
+
const signConvertS12 = await ecdsa.signConvertStep2({
|
|
124
|
+
aShare: signConvertS21.aShare,
|
|
125
|
+
wShare: signShares.wShare,
|
|
126
|
+
});
|
|
127
|
+
const signConvertS21_2 = await ecdsa.signConvertStep3({
|
|
128
|
+
muShare: signConvertS12.muShare,
|
|
129
|
+
bShare: signConvertS21.bShare,
|
|
130
|
+
});
|
|
131
|
+
[signCombine1, signCombine2] = [
|
|
132
|
+
ecdsa.signCombine({
|
|
133
|
+
gShare: signConvertS12.gShare,
|
|
134
|
+
signIndex: {
|
|
135
|
+
i: signConvertS12.muShare.i,
|
|
136
|
+
j: signConvertS12.muShare.j,
|
|
137
|
+
},
|
|
138
|
+
}),
|
|
139
|
+
ecdsa.signCombine({
|
|
140
|
+
gShare: signConvertS21_2.gShare,
|
|
141
|
+
signIndex: {
|
|
142
|
+
i: signConvertS21_2.signIndex.i,
|
|
143
|
+
j: signConvertS21_2.signIndex.j,
|
|
144
|
+
},
|
|
145
|
+
}),
|
|
146
|
+
];
|
|
147
|
+
});
|
|
148
|
+
it('sign phase 5 should succeed', async function () {
|
|
149
|
+
// TODO(HSM-129): There is a bug signing unhashed message (although this deviates from DSA spec) if the message is a little long.
|
|
150
|
+
// Some discrepancy between Ecdsa.sign and secp256k1.recoverPublicKey on handling the message input.
|
|
151
|
+
const message = Buffer.from('GG18 PHASE 5');
|
|
152
|
+
// Starting phase 5
|
|
153
|
+
// In addition to returning s_i, Ecdsa.sign() now also calculates data needed for steps 5A and 5B:
|
|
154
|
+
// - sample random l_i and rho_i (5A)
|
|
155
|
+
// - computes V_i and A_i (5B)]
|
|
156
|
+
// - computes commitment and decommitment of (V_i, A_i) (5A, 5B)
|
|
157
|
+
// - generates proofs of knowledge of s_i, l_i, rho_i w.r.t. V_i, A_i (5B)
|
|
158
|
+
const [sign1, sign2] = [
|
|
159
|
+
ecdsa.generateVAProofs(message, ecdsa.sign(message, signCombine1.oShare, signCombine2.dShare)),
|
|
160
|
+
ecdsa.generateVAProofs(message, ecdsa.sign(message, signCombine2.oShare, signCombine1.dShare)),
|
|
161
|
+
];
|
|
162
|
+
sign1.R.should.equal(sign2.R);
|
|
163
|
+
sign1.y.should.equal(sign2.y);
|
|
164
|
+
sign1.m.toString('hex').should.equal(sign2.m.toString('hex'));
|
|
165
|
+
// Step 5A: Calculations done by Ecdsa.sign() above, and broadcast commitment of (V_i, A_i) to other parties.
|
|
166
|
+
// The following values will be sent via communication channel at the end of 5A.
|
|
167
|
+
// const commitmentVA1 = sign1.comDecomVA.commitment;
|
|
168
|
+
// const commitmentVA2 = sign2.comDecomVA.commitment;
|
|
169
|
+
// Step 5B: After having received all commitments of (V_i, A_i) from other parties,
|
|
170
|
+
// each party will broadcast decommitment of (V_i, A_i) and ZK proofs returned by Ecdsa.sign() above
|
|
171
|
+
// to other parties. Then Ecdsa.verifyVAShares() below will:
|
|
172
|
+
// - verify commitments of (V_i, A_i) received from other parties (5B)
|
|
173
|
+
// - verify ZK proofs of (V_i, A_i) received from other parties (5B)
|
|
174
|
+
// - calculate V out of G, y, r, m, and all V_i, calculate A as sum of all A_i (5B)
|
|
175
|
+
// - calculate U_i and T_i and commitment and decommitment of (U_i, T_i) (5C)
|
|
176
|
+
const [publicVAShares_1, publicVAShares_2] = [sign1, sign2];
|
|
177
|
+
const [UT1, UT2] = [
|
|
178
|
+
ecdsa.verifyVAShares(sign1, [publicVAShares_2]),
|
|
179
|
+
ecdsa.verifyVAShares(sign2, [publicVAShares_1]),
|
|
180
|
+
];
|
|
181
|
+
// Step 5C: Calculations of U_i, T_i done by Ecdsa.verifyVAShares above,
|
|
182
|
+
// and broadcast commitment of (U_i, T_i) to other parties.
|
|
183
|
+
// The following values will be sent via communication channel at the end of 5C.
|
|
184
|
+
// const commitmentUT1 = UT1.comDecomUT.commitment;
|
|
185
|
+
// const commitmentUT2 = UT2.comDecomUT.commitment;
|
|
186
|
+
// Step 5D: After having received all commitments of (U_i, T_i) from other parties,
|
|
187
|
+
// each party will broadcast decommitment of (U_i, T_i) returned by Ecdsa.verifyVAShares() above
|
|
188
|
+
// to other parties. Then Ecdsa.verifyUTShares() below will:
|
|
189
|
+
// - verify commitments of (U_i, T_i) received from other parties (5D)
|
|
190
|
+
// - calculate U as sum of all U_i, calculate T as sum of all T_i (5D)
|
|
191
|
+
// - if U equals T, then return own SShare which is being returned by Ecdsa.sign() right now (5E)
|
|
192
|
+
const [publicUTShares_1, publicUTShares_2] = [UT1, UT2];
|
|
193
|
+
const [signature1, signature2] = [
|
|
194
|
+
ecdsa.verifyUTShares(UT1, [publicUTShares_2]),
|
|
195
|
+
ecdsa.verifyUTShares(UT2, [publicUTShares_1]),
|
|
196
|
+
];
|
|
197
|
+
// Step 5E: Broadcast s_i returned by Ecdsa.verifyUTShares() above to other parties.
|
|
198
|
+
// Verify the sum of s_i should be a valid signature.
|
|
199
|
+
const signature = ecdsa.constructSignature([signature1, signature2]);
|
|
200
|
+
ecdsa.verify(message, signature).should.be.true();
|
|
201
|
+
});
|
|
202
|
+
it('sign phase 5 fail - malicious player cheats with bad s share', async function () {
|
|
203
|
+
const message = Buffer.from('GG18 PHASE 5');
|
|
204
|
+
const [sign1, sign2] = [
|
|
205
|
+
ecdsa.generateVAProofs(message, ecdsa.sign(message, signCombine1.oShare, signCombine2.dShare)),
|
|
206
|
+
ecdsa.generateVAProofs(message, ecdsa.sign(message, signCombine2.oShare, signCombine1.dShare)),
|
|
207
|
+
];
|
|
208
|
+
sign1.R.should.equal(sign2.R);
|
|
209
|
+
sign1.y.should.equal(sign2.y);
|
|
210
|
+
sign1.m.toString('hex').should.equal(sign2.m.toString('hex'));
|
|
211
|
+
// Change the s share of sign1, and recalcualte its V along with the commitment/proof by following protocol.
|
|
212
|
+
const bad_s = (0, sdk_lib_mpc_1.hexToBigInt)(sign1.s) + BigInt(1);
|
|
213
|
+
const bad_V = tss_1.Ecdsa.curve.pointAdd(tss_1.Ecdsa.curve.pointMultiply((0, sdk_lib_mpc_1.hexToBigInt)(sign1.R), bad_s), tss_1.Ecdsa.curve.basePointMult(sign1.l));
|
|
214
|
+
const comDecom_V_A = sdk_lib_mpc_1.HashCommitment.createCommitment(Buffer.concat([
|
|
215
|
+
(0, sdk_lib_mpc_1.bigIntToBufferBE)(bad_V, tss_1.Ecdsa.curve.pointBytes),
|
|
216
|
+
(0, sdk_lib_mpc_1.bigIntToBufferBE)(sign1.A, tss_1.Ecdsa.curve.pointBytes),
|
|
217
|
+
]));
|
|
218
|
+
const zkVProof = sdk_lib_mpc_1.EcdsaZkVProof.createZkVProof(bad_V, bad_s, sign1.l, (0, sdk_lib_mpc_1.hexToBigInt)(sign1.R), tss_1.Ecdsa.curve, sign1.proofContext);
|
|
219
|
+
sign1.s = (0, sdk_lib_mpc_1.bigIntToBufferBE)(bad_s, 32).toString('hex');
|
|
220
|
+
sign1.V = bad_V;
|
|
221
|
+
sign1.comDecomVA = comDecom_V_A;
|
|
222
|
+
sign1.zkVProofV = zkVProof;
|
|
223
|
+
// 5B will pass.
|
|
224
|
+
const [publicVAShares_1, publicVAShares_2] = [sign1, sign2];
|
|
225
|
+
const [UT1, UT2] = [
|
|
226
|
+
ecdsa.verifyVAShares(sign1, [publicVAShares_2]),
|
|
227
|
+
ecdsa.verifyVAShares(sign2, [publicVAShares_1]),
|
|
228
|
+
];
|
|
229
|
+
// But verification at beginning of 5E will fail.
|
|
230
|
+
const [publicUTShares_1, publicUTShares_2] = [UT1, UT2];
|
|
231
|
+
(() => ecdsa.verifyUTShares(UT1, [publicUTShares_2])).should.throw('Sum of all U_i does not match sum of all T_i');
|
|
232
|
+
(() => ecdsa.verifyUTShares(UT2, [publicUTShares_1])).should.throw('Sum of all U_i does not match sum of all T_i');
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9lY2RzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUFrRDtBQUNsRCxrQkFBZ0I7QUFDaEIsa0RBQTBCO0FBQzFCLHlEQVFpQztBQUNqQyxtRUFBa0U7QUFNbEUseUNBQThDO0FBQzlDLG1FQUErRDtBQUUvRCxNQUFNLFlBQVksR0FBRyxJQUFBLGtDQUFlLEdBQUUsQ0FBQyxNQUFNLENBQUM7QUFFOUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtJQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQUssRUFBRSxDQUFDO0lBRTFCLElBQUksWUFBMkIsRUFBRSxZQUEyQixDQUFDO0lBRTdELE1BQU0sQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLO1FBQ2hELDJGQUEyRjtRQUMzRixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sZUFBZSxHQUFHLGVBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFekUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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LEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNoRCxDQUFDO1FBRUYsaURBQWlEO1FBQ2pELE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBb0IsRUFBRSxHQUFvQixDQUFDLENBQUM7UUFDMUYsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUNuSCxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3JILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYWlsbGllckJpZ2ludCBmcm9tICdwYWlsbGllci1iaWdpbnQnO1xuaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7XG4gIEVjZHNhUGFpbGxpZXJQcm9vZixcbiAgRWNkc2FSYW5nZVByb29mLFxuICBFY2RzYVR5cGVzLFxuICBFY2RzYVprVlByb29mLFxuICBIYXNoQ29tbWl0bWVudCxcbiAgaGV4VG9CaWdJbnQsXG4gIGJpZ0ludFRvQnVmZmVyQkUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEVjZHNhIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHtcbiAgUHVibGljVVRTaGFyZSxcbiAgUHVibGljVkFTaGFyZVdpdGhQcm9vZnMsXG4gIFNpZ25Db21iaW5lUlQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdHNzL2VjZHNhL3R5cGVzJztcbmltcG9ydCB7IHBhaWxsaWVyS2V5UGFpcnMgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IGxvYWRXZWJBc3NlbWJseSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1vcGVuc3NsYnl0ZXMnO1xuXG5jb25zdCBvcGVuU1NMQnl0ZXMgPSBsb2FkV2ViQXNzZW1ibHkoKS5idWZmZXI7XG5cbmRlc2NyaWJlKCdlY2RzYSB0c3MnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGVjZHNhID0gbmV3IEVjZHNhKCk7XG5cbiAgbGV0IHNpZ25Db21iaW5lMTogU2lnbkNvbWJpbmVSVCwgc2lnbkNvbWJpbmUyOiBTaWduQ29tYmluZVJUO1xuXG4gIGJlZm9yZSgnZ2VuZXJhdGUga2V5IGFuZCBzaWduIHBoYXNlIDEgdG8gNCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAvLyBJbiBzb21lIGV4ZWN1dGlvbiBlbnZpcm9ubWVudHMgKGUuZy4gQ0kpLCBnZW5lcmF0ZU50aWxkZSBiZWxvdyBtYXkgdGFrZSBsb25nZXIgYXQgdGltZXMuXG4gICAgdGhpcy50aW1lb3V0KCc0MHMnKTtcbiAgICBjb25zdCBwYWlsbGllcktleVN0dWIgPSBzaW5vbi5zdHViKHBhaWxsaWVyQmlnaW50LCAnZ2VuZXJhdGVSYW5kb21LZXlzJyk7XG5cbiAgICBwYWlsbGllcktleVN0dWIub25DYWxsKDApLnJldHVybnMoUHJvbWlzZS5yZXNvbHZlKHBhaWxsaWVyS2V5UGFpcnNbMF0pKTtcbiAgICBwYWlsbGllcktleVN0dWIub25DYWxsKDEpLnJldHVybnMoUHJvbWlzZS5yZXNvbHZlKHBhaWxsaWVyS2V5UGFpcnNbMV0pKTtcbiAgICBwYWlsbGllcktleVN0dWIub25DYWxsKDIpLnJldHVybnMoUHJvbWlzZS5yZXNvbHZlKHBhaWxsaWVyS2V5UGFpcnNbMl0pKTtcblxuICAgIGNvbnN0IFtrZXlTaGFyZTEsIGtleVNoYXJlMiwga2V5U2hhcmUzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGVjZHNhLmtleVNoYXJlKDEsIDIsIDMpLFxuICAgICAgZWNkc2Eua2V5U2hhcmUoMiwgMiwgMyksXG4gICAgICBlY2RzYS5rZXlTaGFyZSgzLCAyLCAzKSxcbiAgICBdKTtcblxuICAgIGNvbnN0IFtrZXlDb21iaW5lZDEsIGtleUNvbWJpbmVkMiwga2V5Q29tYmluZWQzXSA9IFtcbiAgICAgIGVjZHNhLmtleUNvbWJpbmUoa2V5U2hhcmUxLnBTaGFyZSwgW2tleVNoYXJlMi5uU2hhcmVzWzFdLCBrZXlTaGFyZTMublNoYXJlc1sxXV0pLFxuICAgICAgZWNkc2Eua2V5Q29tYmluZShrZXlTaGFyZTIucFNoYXJlLCBba2V5U2hhcmUxLm5TaGFyZXNbMl0sIGtleVNoYXJlMy5uU2hhcmVzWzJdXSksXG4gICAgICBlY2RzYS5rZXlDb21iaW5lKGtleVNoYXJlMy5wU2hhcmUsIFtrZXlTaGFyZTEublNoYXJlc1szXSwga2V5U2hhcmUyLm5TaGFyZXNbM11dKSxcbiAgICBdO1xuXG4gICAga2V5Q29tYmluZWQxLnhTaGFyZS55LnNob3VsZC5lcXVhbChrZXlDb21iaW5lZDIueFNoYXJlLnkpO1xuICAgIGtleUNvbWJpbmVkMS54U2hhcmUueS5zaG91bGQuZXF1YWwoa2V5Q29tYmluZWQzLnhTaGFyZS55KTtcblxuICAgIC8vIENvbGxlY3QgYWxsIFZTUyBmcm9tIG5TaGFyZXMgYW5kIHZlcmlmeSBTY2hub3JyIHByb29mcyBhZ2FpbnN0IFhfaS5cbiAgICAvLyBOb3RlIHRoYXQgdGhpcyBpcyBzb21ldGhpbmcgV1AgbmVlZHMgdG8gZG8gYWZ0ZXIga2V5Q29tYmluZS9rZXlEZXJpdmUuXG4gICAgY29uc3QgWSA9IGhleFRvQmlnSW50KGtleUNvbWJpbmVkMS54U2hhcmUueSk7XG5cbiAgICBjb25zdCBWU1NzID0gW1xuICAgICAgW2hleFRvQmlnSW50KGtleVNoYXJlMS5uU2hhcmVzWzJdLnYhKV0sXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5U2hhcmUyLm5TaGFyZXNbM10udiEpXSxcbiAgICAgIFtoZXhUb0JpZ0ludChrZXlTaGFyZTMublNoYXJlc1sxXS52ISldLFxuICAgIF07XG5cbiAgICBlY2RzYS52ZXJpZnlTY2hub3JyUHJvb2ZYKFksIFZTU3MsIDEsIGtleUNvbWJpbmVkMS54U2hhcmUuc2Nobm9yclByb29mWCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICBlY2RzYS52ZXJpZnlTY2hub3JyUHJvb2ZYKFksIFZTU3MsIDIsIGtleUNvbWJpbmVkMi54U2hhcmUuc2Nobm9yclByb29mWCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICBlY2RzYS52ZXJpZnlTY2hub3JyUHJvb2ZYKFksIFZTU3MsIDMsIGtleUNvbWJpbmVkMy54U2hhcmUuc2Nobm9yclByb29mWCkuc2hvdWxkLmJlLnRydWUoKTtcblxuICAgIC8vIFZlcmlmeSBTY2hub3JyIHByb29mcyBhZ2FpbnN0IFhfaSBmb3Iga2V5RGVyaXZlIGFuZCBzdWJzZXF1ZW50IGtleUNvbWJpbmUuXG4gICAgY29uc3QgcGF0aCA9ICdtLzAvMS8yJztcbiAgICBjb25zdCBrZXlEZXJpdmUxID0gZWNkc2Eua2V5RGVyaXZlKGtleVNoYXJlMS5wU2hhcmUsIFtrZXlTaGFyZTIublNoYXJlc1sxXSwga2V5U2hhcmUzLm5TaGFyZXNbMV1dLCBwYXRoKTtcblxuICAgIC8vIE5vdGUgdGhlIFZTU3MgdXNlZCBoZXJlIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgb25lcyB1c2VkIGFib3ZlLlxuICAgIGNvbnN0IGRlcml2ZWRZID0gaGV4VG9CaWdJbnQoa2V5RGVyaXZlMS54U2hhcmUueSk7XG4gICAgY29uc3QgZGVyaXZlZFZTU3MgPSBbXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5RGVyaXZlMS5uU2hhcmVzWzJdLnYhKV0sXG4gICAgICBbaGV4VG9CaWdJbnQoa2V5U2hhcmUyLm5TaGFyZXNbM10udiEpXSxcbiAgICAgIFtoZXhUb0JpZ0ludChrZXlTaGFyZTMublNoYXJlc1sxXS52ISldLFxuICAgIF07XG4gICAgZWNkc2EudmVyaWZ5U2Nobm9yclByb29mWChkZXJpdmVkWSwgZGVyaXZlZFZTU3MsIDEsIGtleURlcml2ZTEueFNoYXJlLnNjaG5vcnJQcm9vZlgpLnNob3VsZC5iZS50cnVlKCk7XG5cbiAgICBjb25zdCBrZXlDb21iaW5lZDJGcm9tS2V5RGVyaXZlMSA9IGVjZHNhLmtleUNvbWJpbmUoa2V5U2hhcmUyLnBTaGFyZSwgW1xuICAgICAga2V5RGVyaXZlMS5uU2hhcmVzWzJdLFxuICAgICAga2V5U2hhcmUzLm5TaGFyZXNbMl0sXG4gICAgXSk7XG4gICAgZWNkc2FcbiAgICAgIC52ZXJpZnlTY2hub3JyUHJvb2ZYKGRlcml2ZWRZLCBkZXJpdmVkVlNTcywgMiwga2V5Q29tYmluZWQyRnJvbUtleURlcml2ZTEueFNoYXJlLnNjaG5vcnJQcm9vZlgpXG4gICAgICAuc2hvdWxkLmJlLnRydWUoKTtcblxuICAgIGNvbnN0IFtudGlsZGUxLCBudGlsZGUyXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIEVjZHNhUmFuZ2VQcm9vZi5nZW5lcmF0ZU50aWxkZShvcGVuU1NMQnl0ZXMsIDUxMiksXG4gICAgICBFY2RzYVJhbmdlUHJvb2YuZ2VuZXJhdGVOdGlsZGUob3BlblNTTEJ5dGVzLCA1MTIpLFxuICAgIF0pO1xuXG4gICAgY29uc3QgW3NlcmlhbGl6ZU50aWxkZTEsIHNlcmlhbGl6ZU50aWxkZTJdID0gW1xuICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKG50aWxkZTEpLFxuICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKG50aWxkZTIpLFxuICAgIF07XG5cbiAgICBjb25zdCBbaW5kZXgxLCBpbmRleDJdID0gW2tleUNvbWJpbmVkMS54U2hhcmUuaSwga2V5Q29tYmluZWQyLnhTaGFyZS5pXTtcblxuICAgIGNvbnN0IFtwYWlsbGllck4xdG8yLCBwYWlsbGllck4ydG8xXSA9IFtrZXlDb21iaW5lZDEueVNoYXJlc1tpbmRleDJdLm4sIGtleUNvbWJpbmVkMi55U2hhcmVzW2luZGV4MV0ubl07XG5cbiAgICBjb25zdCBbcGFpbGxpZXJDaGFsbGVuZ2VyMXRvMiwgcGFpbGxpZXJDaGFsbGVuZ2VyMnRvMV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBFY2RzYVBhaWxsaWVyUHJvb2YuZ2VuZXJhdGVQKGhleFRvQmlnSW50KHBhaWxsaWVyTjF0bzIpKSxcbiAgICAgIEVjZHNhUGFpbGxpZXJQcm9vZi5nZW5lcmF0ZVAoaGV4VG9CaWdJbnQocGFpbGxpZXJOMnRvMSkpLFxuICAgIF0pO1xuXG4gICAgY29uc3QgW3hTaGFyZTEsIHhTaGFyZTJdID0gW1xuICAgICAgZWNkc2EuYXBwZW5kQ2hhbGxlbmdlKFxuICAgICAgICBrZXlDb21iaW5lZDEueFNoYXJlLFxuICAgICAgICBzZXJpYWxpemVOdGlsZGUxLFxuICAgICAgICBFY2RzYVR5cGVzLnNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKHsgcDogcGFpbGxpZXJDaGFsbGVuZ2VyMXRvMiB9KVxuICAgICAgKSxcbiAgICAgIGVjZHNhLmFwcGVuZENoYWxsZW5nZShcbiAgICAgICAga2V5Q29tYmluZWQyLnhTaGFyZSxcbiAgICAgICAgc2VyaWFsaXplTnRpbGRlMixcbiAgICAgICAgRWNkc2FUeXBlcy5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZSh7IHA6IHBhaWxsaWVyQ2hhbGxlbmdlcjJ0bzEgfSlcbiAgICAgICksXG4gICAgXTtcblxuICAgIGNvbnN0IHlTaGFyZTIgPSBlY2RzYS5hcHBlbmRDaGFsbGVuZ2UoXG4gICAgICBrZXlDb21iaW5lZDEueVNoYXJlc1tpbmRleDJdLFxuICAgICAgc2VyaWFsaXplTnRpbGRlMixcbiAgICAgIEVjZHNhVHlwZXMuc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoeyBwOiBwYWlsbGllckNoYWxsZW5nZXIydG8xIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHNpZ25TaGFyZXMgPSBhd2FpdCBlY2RzYS5zaWduU2hhcmUoeFNoYXJlMSwgeVNoYXJlMik7XG5cbiAgICBjb25zdCBzaWduQ29udmVydFMyMSA9IGF3YWl0IGVjZHNhLnNpZ25Db252ZXJ0U3RlcDEoe1xuICAgICAgeFNoYXJlOiB4U2hhcmUyLFxuICAgICAgeVNoYXJlOiBrZXlDb21iaW5lZDIueVNoYXJlc1tpbmRleDFdLFxuICAgICAga1NoYXJlOiBzaWduU2hhcmVzLmtTaGFyZSxcbiAgICB9KTtcbiAgICBjb25zdCBzaWduQ29udmVydFMxMiA9IGF3YWl0IGVjZHNhLnNpZ25Db252ZXJ0U3RlcDIoe1xuICAgICAgYVNoYXJlOiBzaWduQ29udmVydFMyMS5hU2hhcmUsXG4gICAgICB3U2hhcmU6IHNpZ25TaGFyZXMud1NoYXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHNpZ25Db252ZXJ0UzIxXzIgPSBhd2FpdCBlY2RzYS5zaWduQ29udmVydFN0ZXAzKHtcbiAgICAgIG11U2hhcmU6IHNpZ25Db252ZXJ0UzEyLm11U2hhcmUsXG4gICAgICBiU2hhcmU6IHNpZ25Db252ZXJ0UzIxLmJTaGFyZSxcbiAgICB9KTtcblxuICAgIFtzaWduQ29tYmluZTEsIHNpZ25Db21iaW5lMl0gPSBbXG4gICAgICBlY2RzYS5zaWduQ29tYmluZSh7XG4gICAgICAgIGdTaGFyZTogc2lnbkNvbnZlcnRTMTIuZ1NoYXJlLFxuICAgICAgICBzaWduSW5kZXg6IHtcbiAgICAgICAgICBpOiBzaWduQ29udmVydFMxMi5tdVNoYXJlLmksXG4gICAgICAgICAgajogc2lnbkNvbnZlcnRTMTIubXVTaGFyZS5qLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBlY2RzYS5zaWduQ29tYmluZSh7XG4gICAgICAgIGdTaGFyZTogc2lnbkNvbnZlcnRTMjFfMi5nU2hhcmUsXG4gICAgICAgIHNpZ25JbmRleDoge1xuICAgICAgICAgIGk6IHNpZ25Db252ZXJ0UzIxXzIuc2lnbkluZGV4LmksXG4gICAgICAgICAgajogc2lnbkNvbnZlcnRTMjFfMi5zaWduSW5kZXguaixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIF07XG4gIH0pO1xuXG4gIGl0KCdzaWduIHBoYXNlIDUgc2hvdWxkIHN1Y2NlZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVE9ETyhIU00tMTI5KTogVGhlcmUgaXMgYSBidWcgc2lnbmluZyB1bmhhc2hlZCBtZXNzYWdlIChhbHRob3VnaCB0aGlzIGRldmlhdGVzIGZyb20gRFNBIHNwZWMpIGlmIHRoZSBtZXNzYWdlIGlzIGEgbGl0dGxlIGxvbmcuXG4gICAgLy8gICAgICAgU29tZSBkaXNjcmVwYW5jeSBiZXR3ZWVuIEVjZHNhLnNpZ24gYW5kIHNlY3AyNTZrMS5yZWNvdmVyUHVibGljS2V5IG9uIGhhbmRsaW5nIHRoZSBtZXNzYWdlIGlucHV0LlxuICAgIGNvbnN0IG1lc3NhZ2UgPSBCdWZmZXIuZnJvbSgnR0cxOCBQSEFTRSA1Jyk7XG5cbiAgICAvLyBTdGFydGluZyBwaGFzZSA1XG4gICAgLy8gSW4gYWRkaXRpb24gdG8gcmV0dXJuaW5nIHNfaSwgRWNkc2Euc2lnbigpIG5vdyBhbHNvIGNhbGN1bGF0ZXMgZGF0YSBuZWVkZWQgZm9yIHN0ZXBzIDVBIGFuZCA1QjpcbiAgICAvLyAgIC0gc2FtcGxlIHJhbmRvbSBsX2kgYW5kIHJob19pICg1QSlcbiAgICAvLyAgIC0gY29tcHV0ZXMgVl9pIGFuZCBBX2kgKDVCKV1cbiAgICAvLyAgIC0gY29tcHV0ZXMgY29tbWl0bWVudCBhbmQgZGVjb21taXRtZW50IG9mIChWX2ksIEFfaSkgKDVBLCA1QilcbiAgICAvLyAgIC0gZ2VuZXJhdGVzIHByb29mcyBvZiBrbm93bGVkZ2Ugb2Ygc19pLCBsX2ksIHJob19pIHcuci50LiBWX2ksIEFfaSAoNUIpXG4gICAgY29uc3QgW3NpZ24xLCBzaWduMl0gPSBbXG4gICAgICBlY2RzYS5nZW5lcmF0ZVZBUHJvb2ZzKG1lc3NhZ2UsIGVjZHNhLnNpZ24obWVzc2FnZSwgc2lnbkNvbWJpbmUxLm9TaGFyZSwgc2lnbkNvbWJpbmUyLmRTaGFyZSkpLFxuICAgICAgZWNkc2EuZ2VuZXJhdGVWQVByb29mcyhtZXNzYWdlLCBlY2RzYS5zaWduKG1lc3NhZ2UsIHNpZ25Db21iaW5lMi5vU2hhcmUsIHNpZ25Db21iaW5lMS5kU2hhcmUpKSxcbiAgICBdO1xuXG4gICAgc2lnbjEuUi5zaG91bGQuZXF1YWwoc2lnbjIuUik7XG4gICAgc2lnbjEueS5zaG91bGQuZXF1YWwoc2lnbjIueSk7XG4gICAgc2lnbjEubS50b1N0cmluZygnaGV4Jykuc2hvdWxkLmVxdWFsKHNpZ24yLm0udG9TdHJpbmcoJ2hleCcpKTtcblxuICAgIC8vIFN0ZXAgNUE6IENhbGN1bGF0aW9ucyBkb25lIGJ5IEVjZHNhLnNpZ24oKSBhYm92ZSwgYW5kIGJyb2FkY2FzdCBjb21taXRtZW50IG9mIChWX2ksIEFfaSkgdG8gb3RoZXIgcGFydGllcy5cbiAgICAvLyAgICAgICAgICBUaGUgZm9sbG93aW5nIHZhbHVlcyB3aWxsIGJlIHNlbnQgdmlhIGNvbW11bmljYXRpb24gY2hhbm5lbCBhdCB0aGUgZW5kIG9mIDVBLlxuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRWQTEgPSBzaWduMS5jb21EZWNvbVZBLmNvbW1pdG1lbnQ7XG4gICAgLy8gY29uc3QgY29tbWl0bWVudFZBMiA9IHNpZ24yLmNvbURlY29tVkEuY29tbWl0bWVudDtcblxuICAgIC8vIFN0ZXAgNUI6IEFmdGVyIGhhdmluZyByZWNlaXZlZCBhbGwgY29tbWl0bWVudHMgb2YgKFZfaSwgQV9pKSBmcm9tIG90aGVyIHBhcnRpZXMsXG4gICAgLy8gICAgICAgICAgZWFjaCBwYXJ0eSB3aWxsIGJyb2FkY2FzdCBkZWNvbW1pdG1lbnQgb2YgKFZfaSwgQV9pKSBhbmQgWksgcHJvb2ZzIHJldHVybmVkIGJ5IEVjZHNhLnNpZ24oKSBhYm92ZVxuICAgIC8vICAgICAgICAgIHRvIG90aGVyIHBhcnRpZXMuICBUaGVuIEVjZHNhLnZlcmlmeVZBU2hhcmVzKCkgYmVsb3cgd2lsbDpcbiAgICAvLyAgIC0gdmVyaWZ5IGNvbW1pdG1lbnRzIG9mIChWX2ksIEFfaSkgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0aWVzICg1QilcbiAgICAvLyAgIC0gdmVyaWZ5IFpLIHByb29mcyBvZiAoVl9pLCBBX2kpIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydGllcyAoNUIpXG4gICAgLy8gICAtIGNhbGN1bGF0ZSBWIG91dCBvZiBHLCB5LCByLCBtLCBhbmQgYWxsIFZfaSwgY2FsY3VsYXRlIEEgYXMgc3VtIG9mIGFsbCBBX2kgKDVCKVxuICAgIC8vICAgLSBjYWxjdWxhdGUgVV9pIGFuZCBUX2kgYW5kIGNvbW1pdG1lbnQgYW5kIGRlY29tbWl0bWVudCBvZiAoVV9pLCBUX2kpICg1QylcbiAgICBjb25zdCBbcHVibGljVkFTaGFyZXNfMSwgcHVibGljVkFTaGFyZXNfMl0gPSBbc2lnbjEgYXMgUHVibGljVkFTaGFyZVdpdGhQcm9vZnMsIHNpZ24yIGFzIFB1YmxpY1ZBU2hhcmVXaXRoUHJvb2ZzXTtcbiAgICBjb25zdCBbVVQxLCBVVDJdID0gW1xuICAgICAgZWNkc2EudmVyaWZ5VkFTaGFyZXMoc2lnbjEsIFtwdWJsaWNWQVNoYXJlc18yXSksXG4gICAgICBlY2RzYS52ZXJpZnlWQVNoYXJlcyhzaWduMiwgW3B1YmxpY1ZBU2hhcmVzXzFdKSxcbiAgICBdO1xuXG4gICAgLy8gU3RlcCA1QzogQ2FsY3VsYXRpb25zIG9mIFVfaSwgVF9pIGRvbmUgYnkgRWNkc2EudmVyaWZ5VkFTaGFyZXMgYWJvdmUsXG4gICAgLy8gICAgICAgICAgYW5kIGJyb2FkY2FzdCBjb21taXRtZW50IG9mIChVX2ksIFRfaSkgdG8gb3RoZXIgcGFydGllcy5cbiAgICAvLyAgICAgICAgICBUaGUgZm9sbG93aW5nIHZhbHVlcyB3aWxsIGJlIHNlbnQgdmlhIGNvbW11bmljYXRpb24gY2hhbm5lbCBhdCB0aGUgZW5kIG9mIDVDLlxuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRVVDEgPSBVVDEuY29tRGVjb21VVC5jb21taXRtZW50O1xuICAgIC8vIGNvbnN0IGNvbW1pdG1lbnRVVDIgPSBVVDIuY29tRGVjb21VVC5jb21taXRtZW50O1xuXG4gICAgLy8gU3RlcCA1RDogQWZ0ZXIgaGF2aW5nIHJlY2VpdmVkIGFsbCBjb21taXRtZW50cyBvZiAoVV9pLCBUX2kpIGZyb20gb3RoZXIgcGFydGllcyxcbiAgICAvLyAgICAgICAgICBlYWNoIHBhcnR5IHdpbGwgYnJvYWRjYXN0IGRlY29tbWl0bWVudCBvZiAoVV9pLCBUX2kpIHJldHVybmVkIGJ5IEVjZHNhLnZlcmlmeVZBU2hhcmVzKCkgYWJvdmVcbiAgICAvLyAgICAgICAgICB0byBvdGhlciBwYXJ0aWVzLiAgVGhlbiBFY2RzYS52ZXJpZnlVVFNoYXJlcygpIGJlbG93IHdpbGw6XG4gICAgLy8gIC0gdmVyaWZ5IGNvbW1pdG1lbnRzIG9mIChVX2ksIFRfaSkgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0aWVzICg1RClcbiAgICAvLyAgLSBjYWxjdWxhdGUgVSBhcyBzdW0gb2YgYWxsIFVfaSwgY2FsY3VsYXRlIFQgYXMgc3VtIG9mIGFsbCBUX2kgKDVEKVxuICAgIC8vICAtIGlmIFUgZXF1YWxzIFQsIHRoZW4gcmV0dXJuIG93biBTU2hhcmUgd2hpY2ggaXMgYmVpbmcgcmV0dXJuZWQgYnkgRWNkc2Euc2lnbigpIHJpZ2h0IG5vdyAoNUUpXG4gICAgY29uc3QgW3B1YmxpY1VUU2hhcmVzXzEsIHB1YmxpY1VUU2hhcmVzXzJdID0gW1VUMSBhcyBQdWJsaWNVVFNoYXJlLCBVVDIgYXMgUHVibGljVVRTaGFyZV07XG4gICAgY29uc3QgW3NpZ25hdHVyZTEsIHNpZ25hdHVyZTJdID0gW1xuICAgICAgZWNkc2EudmVyaWZ5VVRTaGFyZXMoVVQxLCBbcHVibGljVVRTaGFyZXNfMl0pLFxuICAgICAgZWNkc2EudmVyaWZ5VVRTaGFyZXMoVVQyLCBbcHVibGljVVRTaGFyZXNfMV0pLFxuICAgIF07XG5cbiAgICAvLyBTdGVwIDVFOiBCcm9hZGNhc3Qgc19pIHJldHVybmVkIGJ5IEVjZHNhLnZlcmlmeVVUU2hhcmVzKCkgYWJvdmUgdG8gb3RoZXIgcGFydGllcy5cbiAgICAvLyAgICAgICAgICBWZXJpZnkgdGhlIHN1bSBvZiBzX2kgc2hvdWxkIGJlIGEgdmFsaWQgc2lnbmF0dXJlLlxuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGVjZHNhLmNvbnN0cnVjdFNpZ25hdHVyZShbc2lnbmF0dXJlMSwgc2lnbmF0dXJlMl0pO1xuICAgIGVjZHNhLnZlcmlmeShtZXNzYWdlLCBzaWduYXR1cmUpLnNob3VsZC5iZS50cnVlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaWduIHBoYXNlIDUgZmFpbCAtIG1hbGljaW91cyBwbGF5ZXIgY2hlYXRzIHdpdGggYmFkIHMgc2hhcmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IEJ1ZmZlci5mcm9tKCdHRzE4IFBIQVNFIDUnKTtcblxuICAgIGNvbnN0IFtzaWduMSwgc2lnbjJdID0gW1xuICAgICAgZWNkc2EuZ2VuZXJhdGVWQVByb29mcyhtZXNzYWdlLCBlY2RzYS5zaWduKG1lc3NhZ2UsIHNpZ25Db21iaW5lMS5vU2hhcmUsIHNpZ25Db21iaW5lMi5kU2hhcmUpKSxcbiAgICAgIGVjZHNhLmdlbmVyYXRlVkFQcm9vZnMobWVzc2FnZSwgZWNkc2Euc2lnbihtZXNzYWdlLCBzaWduQ29tYmluZTIub1NoYXJlLCBzaWduQ29tYmluZTEuZFNoYXJlKSksXG4gICAgXTtcblxuICAgIHNpZ24xLlIuc2hvdWxkLmVxdWFsKHNpZ24yLlIpO1xuICAgIHNpZ24xLnkuc2hvdWxkLmVxdWFsKHNpZ24yLnkpO1xuICAgIHNpZ24xLm0udG9TdHJpbmcoJ2hleCcpLnNob3VsZC5lcXVhbChzaWduMi5tLnRvU3RyaW5nKCdoZXgnKSk7XG5cbiAgICAvLyBDaGFuZ2UgdGhlIHMgc2hhcmUgb2Ygc2lnbjEsIGFuZCByZWNhbGN1YWx0ZSBpdHMgViBhbG9uZyB3aXRoIHRoZSBjb21taXRtZW50L3Byb29mIGJ5IGZvbGxvd2luZyBwcm90b2NvbC5cbiAgICBjb25zdCBiYWRfcyA9IGhleFRvQmlnSW50KHNpZ24xLnMpICsgQmlnSW50KDEpO1xuXG4gICAgY29uc3QgYmFkX1YgPSBFY2RzYS5jdXJ2ZS5wb2ludEFkZChcbiAgICAgIEVjZHNhLmN1cnZlLnBvaW50TXVsdGlwbHkoaGV4VG9CaWdJbnQoc2lnbjEuUiksIGJhZF9zKSxcbiAgICAgIEVjZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoc2lnbjEubClcbiAgICApO1xuXG4gICAgY29uc3QgY29tRGVjb21fVl9BID0gSGFzaENvbW1pdG1lbnQuY3JlYXRlQ29tbWl0bWVudChcbiAgICAgIEJ1ZmZlci5jb25jYXQoW1xuICAgICAgICBiaWdJbnRUb0J1ZmZlckJFKGJhZF9WLCBFY2RzYS5jdXJ2ZS5wb2ludEJ5dGVzKSxcbiAgICAgICAgYmlnSW50VG9CdWZmZXJCRShzaWduMS5BLCBFY2RzYS5jdXJ2ZS5wb2ludEJ5dGVzKSxcbiAgICAgIF0pXG4gICAgKTtcbiAgICBjb25zdCB6a1ZQcm9vZiA9IEVjZHNhWmtWUHJvb2YuY3JlYXRlWmtWUHJvb2YoXG4gICAgICBiYWRfVixcbiAgICAgIGJhZF9zLFxuICAgICAgc2lnbjEubCxcbiAgICAgIGhleFRvQmlnSW50KHNpZ24xLlIpLFxuICAgICAgRWNkc2EuY3VydmUsXG4gICAgICBzaWduMS5wcm9vZkNvbnRleHRcbiAgICApO1xuXG4gICAgc2lnbjEucyA9IGJpZ0ludFRvQnVmZmVyQkUoYmFkX3MsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgc2lnbjEuViA9IGJhZF9WO1xuICAgIHNpZ24xLmNvbURlY29tVkEgPSBjb21EZWNvbV9WX0E7XG4gICAgc2lnbjEuemtWUHJvb2ZWID0gemtWUHJvb2Y7XG5cbiAgICAvLyA1QiB3aWxsIHBhc3MuXG4gICAgY29uc3QgW3B1YmxpY1ZBU2hhcmVzXzEsIHB1YmxpY1ZBU2hhcmVzXzJdID0gW3NpZ24xIGFzIFB1YmxpY1ZBU2hhcmVXaXRoUHJvb2ZzLCBzaWduMiBhcyBQdWJsaWNWQVNoYXJlV2l0aFByb29mc107XG4gICAgY29uc3QgW1VUMSwgVVQyXSA9IFtcbiAgICAgIGVjZHNhLnZlcmlmeVZBU2hhcmVzKHNpZ24xLCBbcHVibGljVkFTaGFyZXNfMl0pLFxuICAgICAgZWNkc2EudmVyaWZ5VkFTaGFyZXMoc2lnbjIsIFtwdWJsaWNWQVNoYXJlc18xXSksXG4gICAgXTtcblxuICAgIC8vIEJ1dCB2ZXJpZmljYXRpb24gYXQgYmVnaW5uaW5nIG9mIDVFIHdpbGwgZmFpbC5cbiAgICBjb25zdCBbcHVibGljVVRTaGFyZXNfMSwgcHVibGljVVRTaGFyZXNfMl0gPSBbVVQxIGFzIFB1YmxpY1VUU2hhcmUsIFVUMiBhcyBQdWJsaWNVVFNoYXJlXTtcbiAgICAoKCkgPT4gZWNkc2EudmVyaWZ5VVRTaGFyZXMoVVQxLCBbcHVibGljVVRTaGFyZXNfMl0pKS5zaG91bGQudGhyb3coJ1N1bSBvZiBhbGwgVV9pIGRvZXMgbm90IG1hdGNoIHN1bSBvZiBhbGwgVF9pJyk7XG4gICAgKCgpID0+IGVjZHNhLnZlcmlmeVVUU2hhcmVzKFVUMiwgW3B1YmxpY1VUU2hhcmVzXzFdKSkuc2hvdWxkLnRocm93KCdTdW0gb2YgYWxsIFVfaSBkb2VzIG5vdCBtYXRjaCBzdW0gb2YgYWxsIFRfaScpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../../../../test/unit/account-lib/mpc/tss/ecdsa/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,iBAAiB,CAAC;AA6BjE,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAqCrC,CAAC"}
|