@bitgo/sdk-core 1.1.0-rc.2 → 1.1.0-rc.22
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 +222 -0
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts +2 -2
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/ed25519KeyPair.js +1 -1
- package/dist/src/account-lib/baseCoin/enum.d.ts +9 -4
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +15 -6
- package/dist/src/account-lib/baseCoin/errors.d.ts +0 -6
- package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/errors.js +2 -11
- package/dist/src/account-lib/baseCoin/iface.d.ts +2 -9
- package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/iface.js +1 -1
- 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 +3 -2
- package/dist/src/account-lib/index.d.ts +1 -0
- package/dist/src/account-lib/index.d.ts.map +1 -1
- package/dist/src/account-lib/index.js +2 -1
- package/dist/src/account-lib/mpc/curves/baseCurve.d.ts +19 -0
- package/dist/src/account-lib/mpc/curves/baseCurve.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/curves/baseCurve.js +6 -0
- package/dist/src/account-lib/mpc/curves/ed25519.d.ts +17 -0
- package/dist/src/account-lib/mpc/curves/ed25519.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/curves/ed25519.js +57 -0
- package/dist/src/account-lib/mpc/curves/index.d.ts +6 -0
- package/dist/src/account-lib/mpc/curves/index.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/curves/index.js +8 -0
- package/dist/src/account-lib/mpc/curves/secp256k1.d.ts +17 -0
- package/dist/src/account-lib/mpc/curves/secp256k1.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/curves/secp256k1.js +70 -0
- package/dist/src/account-lib/mpc/hdTree.d.ts +24 -0
- package/dist/src/account-lib/mpc/hdTree.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/hdTree.js +94 -0
- package/dist/src/account-lib/mpc/index.d.ts +8 -0
- package/dist/src/account-lib/mpc/index.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/index.js +23 -0
- package/dist/src/account-lib/mpc/shamir.d.ts +26 -0
- package/dist/src/account-lib/mpc/shamir.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/shamir.js +86 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +71 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +329 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts +4 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/index.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/index.js +29 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +150 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/types.js +3 -0
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts +29 -0
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/eddsa/eddsa.js +276 -0
- package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts +4 -0
- package/dist/src/account-lib/mpc/tss/eddsa/index.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/eddsa/index.js +30 -0
- package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts +70 -0
- package/dist/src/account-lib/mpc/tss/eddsa/types.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/eddsa/types.js +3 -0
- package/dist/src/account-lib/mpc/tss/index.d.ts +6 -0
- package/dist/src/account-lib/mpc/tss/index.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/tss/index.js +35 -0
- package/dist/src/account-lib/mpc/util.d.ts +15 -0
- package/dist/src/account-lib/mpc/util.d.ts.map +1 -0
- package/dist/src/account-lib/mpc/util.js +52 -0
- package/dist/src/api/bip32path.d.ts +24 -0
- package/dist/src/api/bip32path.d.ts.map +1 -0
- package/dist/src/api/bip32path.js +45 -0
- package/dist/src/api/index.d.ts +3 -0
- package/dist/src/api/index.d.ts.map +1 -0
- package/dist/src/{v2 → api}/index.js +2 -2
- package/dist/src/api/types.d.ts +20 -0
- package/dist/src/api/types.d.ts.map +1 -0
- package/dist/src/api/types.js +3 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +235 -0
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -0
- package/dist/src/bitgo/baseCoin/baseCoin.js +300 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +259 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +3 -0
- package/dist/src/bitgo/baseCoin/index.d.ts +3 -0
- package/dist/src/bitgo/baseCoin/index.d.ts.map +1 -0
- package/dist/src/bitgo/baseCoin/index.js +15 -0
- package/dist/src/bitgo/bip32util.d.ts +17 -0
- package/dist/src/bitgo/bip32util.d.ts.map +1 -0
- package/dist/src/bitgo/bip32util.js +59 -0
- package/dist/src/bitgo/bitcoin.d.ts +16 -0
- package/dist/src/bitgo/bitcoin.d.ts.map +1 -0
- package/dist/src/bitgo/bitcoin.js +52 -0
- package/dist/src/bitgo/bitgoBase.d.ts +22 -0
- package/dist/src/bitgo/bitgoBase.d.ts.map +1 -0
- package/dist/src/bitgo/bitgoBase.js +3 -0
- package/dist/src/bitgo/coinFactory.d.ts +35 -0
- package/dist/src/bitgo/coinFactory.d.ts.map +1 -0
- package/dist/src/bitgo/coinFactory.js +59 -0
- package/dist/src/bitgo/config.d.ts +93 -0
- package/dist/src/bitgo/config.d.ts.map +1 -0
- package/dist/src/bitgo/config.js +72 -0
- package/dist/src/bitgo/ecdh.d.ts +24 -0
- package/dist/src/bitgo/ecdh.d.ts.map +1 -0
- package/dist/src/bitgo/ecdh.js +80 -0
- package/dist/src/bitgo/enterprise/enterprise.d.ts +64 -0
- package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -0
- package/dist/src/bitgo/enterprise/enterprise.js +120 -0
- package/dist/src/bitgo/enterprise/enterprises.d.ts +25 -0
- package/dist/src/bitgo/enterprise/enterprises.d.ts.map +1 -0
- package/dist/src/bitgo/enterprise/enterprises.js +70 -0
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts +15 -0
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -0
- package/dist/src/bitgo/enterprise/iEnterprise.js +3 -0
- package/dist/src/bitgo/enterprise/iEnterprises.d.ts +10 -0
- package/dist/src/bitgo/enterprise/iEnterprises.d.ts.map +1 -0
- package/dist/src/bitgo/enterprise/iEnterprises.js +3 -0
- package/dist/src/bitgo/enterprise/index.d.ts +5 -0
- package/dist/src/bitgo/enterprise/index.d.ts.map +1 -0
- package/dist/src/bitgo/enterprise/index.js +17 -0
- package/dist/src/{v2 → bitgo}/environments.d.ts +0 -0
- package/dist/src/bitgo/environments.d.ts.map +1 -0
- package/dist/src/bitgo/environments.js +142 -0
- package/dist/src/bitgo/errors.d.ts +83 -0
- package/dist/src/bitgo/errors.d.ts.map +1 -0
- package/dist/src/bitgo/errors.js +163 -0
- package/dist/src/bitgo/index.d.ts +27 -0
- package/dist/src/bitgo/index.d.ts.map +1 -0
- package/dist/src/bitgo/index.js +52 -0
- package/dist/src/bitgo/internal/index.d.ts +3 -0
- package/dist/src/bitgo/internal/index.d.ts.map +1 -0
- package/dist/src/bitgo/internal/index.js +15 -0
- package/dist/src/bitgo/internal/internal.d.ts +19 -0
- package/dist/src/bitgo/internal/internal.d.ts.map +1 -0
- package/dist/src/bitgo/internal/internal.js +33 -0
- package/dist/src/bitgo/internal/keycard.d.ts +33 -0
- package/dist/src/bitgo/internal/keycard.d.ts.map +1 -0
- package/dist/src/bitgo/internal/keycard.js +304 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts +118 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -0
- package/dist/src/bitgo/keychain/iKeychains.js +10 -0
- package/dist/src/bitgo/keychain/index.d.ts +3 -0
- package/dist/src/bitgo/keychain/index.d.ts.map +1 -0
- package/dist/src/bitgo/keychain/index.js +15 -0
- package/dist/src/bitgo/keychain/keychains.d.ts +90 -0
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -0
- package/dist/src/bitgo/keychain/keychains.js +280 -0
- package/dist/src/bitgo/market/iMarkets.d.ts +12 -0
- package/dist/src/bitgo/market/iMarkets.d.ts.map +1 -0
- package/dist/src/bitgo/market/iMarkets.js +3 -0
- package/dist/src/bitgo/market/index.d.ts +3 -0
- package/dist/src/bitgo/market/index.d.ts.map +1 -0
- package/dist/src/bitgo/market/index.js +15 -0
- package/dist/src/bitgo/market/markets.d.ts +29 -0
- package/dist/src/bitgo/market/markets.d.ts.map +1 -0
- package/dist/src/bitgo/market/markets.js +70 -0
- package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts +73 -0
- package/dist/src/bitgo/pendingApproval/iPendingApproval.d.ts.map +1 -0
- package/dist/src/bitgo/pendingApproval/iPendingApproval.js +28 -0
- package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts +16 -0
- package/dist/src/bitgo/pendingApproval/iPendingApprovals.d.ts.map +1 -0
- package/dist/src/bitgo/pendingApproval/iPendingApprovals.js +3 -0
- package/dist/src/bitgo/pendingApproval/index.d.ts +5 -0
- package/dist/src/bitgo/pendingApproval/index.d.ts.map +1 -0
- package/dist/src/bitgo/pendingApproval/index.js +17 -0
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts +99 -0
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -0
- package/dist/src/bitgo/pendingApproval/pendingApproval.js +319 -0
- package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts +19 -0
- package/dist/src/bitgo/pendingApproval/pendingApprovals.d.ts.map +1 -0
- package/dist/src/bitgo/pendingApproval/pendingApprovals.js +76 -0
- package/dist/src/bitgo/recovery/index.d.ts +2 -0
- package/dist/src/bitgo/recovery/index.d.ts.map +1 -0
- package/dist/src/bitgo/recovery/index.js +14 -0
- package/dist/src/bitgo/recovery/initiate.d.ts +49 -0
- package/dist/src/bitgo/recovery/initiate.d.ts.map +1 -0
- package/dist/src/bitgo/recovery/initiate.js +119 -0
- package/dist/src/bitgo/staking/iStakingWallet.d.ts +69 -0
- package/dist/src/bitgo/staking/iStakingWallet.d.ts.map +1 -0
- package/dist/src/bitgo/staking/iStakingWallet.js +3 -0
- package/dist/src/bitgo/staking/index.d.ts +3 -0
- package/dist/src/bitgo/staking/index.d.ts.map +1 -0
- package/dist/src/bitgo/staking/index.js +15 -0
- package/dist/src/bitgo/staking/stakingWallet.d.ts +67 -0
- package/dist/src/bitgo/staking/stakingWallet.d.ts.map +1 -0
- package/dist/src/bitgo/staking/stakingWallet.js +153 -0
- package/dist/src/bitgo/trading/affirmation.d.ts +35 -0
- package/dist/src/bitgo/trading/affirmation.d.ts.map +1 -0
- package/dist/src/bitgo/trading/affirmation.js +53 -0
- package/dist/src/bitgo/trading/affirmations.d.ts +23 -0
- package/dist/src/bitgo/trading/affirmations.d.ts.map +1 -0
- package/dist/src/bitgo/trading/affirmations.js +45 -0
- package/dist/src/bitgo/trading/iAffirmation.d.ts +15 -0
- package/dist/src/bitgo/trading/iAffirmation.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iAffirmation.js +13 -0
- package/dist/src/bitgo/trading/iAffirmations.d.ts +10 -0
- package/dist/src/bitgo/trading/iAffirmations.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iAffirmations.js +3 -0
- package/dist/src/bitgo/trading/iSettlement.d.ts +25 -0
- package/dist/src/bitgo/trading/iSettlement.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iSettlement.js +17 -0
- package/dist/src/bitgo/trading/iSettlements.d.ts +19 -0
- package/dist/src/bitgo/trading/iSettlements.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iSettlements.js +3 -0
- package/dist/src/bitgo/trading/iTradingAccount.d.ts +41 -0
- package/dist/src/bitgo/trading/iTradingAccount.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iTradingAccount.js +3 -0
- package/dist/src/bitgo/trading/iTradingPartner.d.ts +14 -0
- package/dist/src/bitgo/trading/iTradingPartner.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iTradingPartner.js +17 -0
- package/dist/src/bitgo/trading/iTradingPartners.d.ts +15 -0
- package/dist/src/bitgo/trading/iTradingPartners.d.ts.map +1 -0
- package/dist/src/bitgo/trading/iTradingPartners.js +9 -0
- package/dist/src/bitgo/trading/index.d.ts +18 -0
- package/dist/src/bitgo/trading/index.d.ts.map +1 -0
- package/dist/src/bitgo/trading/index.js +30 -0
- package/dist/src/bitgo/trading/lock.d.ts +16 -0
- package/dist/src/bitgo/trading/lock.d.ts.map +1 -0
- package/dist/src/bitgo/trading/lock.js +12 -0
- package/dist/src/bitgo/trading/payload.d.ts +22 -0
- package/dist/src/bitgo/trading/payload.d.ts.map +1 -0
- package/dist/src/bitgo/trading/payload.js +3 -0
- package/dist/src/bitgo/trading/settlement.d.ts +16 -0
- package/dist/src/bitgo/trading/settlement.d.ts.map +1 -0
- package/dist/src/bitgo/trading/settlement.js +21 -0
- package/dist/src/bitgo/trading/settlements.d.ts +32 -0
- package/dist/src/bitgo/trading/settlements.d.ts.map +1 -0
- package/dist/src/bitgo/trading/settlements.js +61 -0
- package/dist/src/bitgo/trading/trade.d.ts +29 -0
- package/dist/src/bitgo/trading/trade.d.ts.map +1 -0
- package/dist/src/bitgo/trading/trade.js +11 -0
- package/dist/src/bitgo/trading/tradingAccount.d.ts +53 -0
- package/dist/src/bitgo/trading/tradingAccount.d.ts.map +1 -0
- package/dist/src/bitgo/trading/tradingAccount.js +127 -0
- package/dist/src/bitgo/trading/tradingPartner.d.ts +26 -0
- package/dist/src/bitgo/trading/tradingPartner.d.ts.map +1 -0
- package/dist/src/bitgo/trading/tradingPartner.js +31 -0
- package/dist/src/bitgo/trading/tradingPartners.d.ts +24 -0
- package/dist/src/bitgo/trading/tradingPartners.d.ts.map +1 -0
- package/dist/src/bitgo/trading/tradingPartners.js +32 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +35 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -0
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +95 -0
- package/dist/src/bitgo/tss/ecdsa/index.d.ts +4 -0
- package/dist/src/bitgo/tss/ecdsa/index.d.ts.map +1 -0
- package/dist/src/bitgo/tss/ecdsa/index.js +26 -0
- package/dist/src/bitgo/tss/ecdsa/types.d.ts +30 -0
- package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -0
- package/dist/src/bitgo/tss/ecdsa/types.js +3 -0
- package/dist/src/bitgo/tss/eddsa/eddsa.d.ts +102 -0
- package/dist/src/bitgo/tss/eddsa/eddsa.d.ts.map +1 -0
- package/dist/src/bitgo/tss/eddsa/eddsa.js +256 -0
- package/dist/src/bitgo/tss/eddsa/index.d.ts +6 -0
- package/dist/src/bitgo/tss/eddsa/index.d.ts.map +1 -0
- package/dist/src/bitgo/tss/eddsa/index.js +37 -0
- package/dist/src/bitgo/tss/eddsa/types.d.ts +23 -0
- package/dist/src/bitgo/tss/eddsa/types.d.ts.map +1 -0
- package/dist/src/bitgo/tss/eddsa/types.js +3 -0
- package/dist/src/bitgo/tss/index.d.ts +6 -0
- package/dist/src/bitgo/tss/index.d.ts.map +1 -0
- package/dist/src/bitgo/tss/index.js +42 -0
- package/dist/src/bitgo/tss/types.d.ts +6 -0
- package/dist/src/bitgo/tss/types.d.ts.map +1 -0
- package/dist/src/bitgo/tss/types.js +10 -0
- package/dist/src/bitgo/types.d.ts +4 -0
- package/dist/src/bitgo/types.d.ts.map +1 -0
- package/dist/src/bitgo/types.js +3 -0
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts +6 -0
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.d.ts.map +1 -0
- package/dist/src/bitgo/utils/abstractUtxoCoinUtil.js +30 -0
- package/dist/src/bitgo/utils/blsUtils.d.ts +51 -0
- package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/blsUtils.js +166 -0
- package/dist/src/bitgo/utils/iBlsUtils.d.ts +14 -0
- package/dist/src/bitgo/utils/iBlsUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/iBlsUtils.js +3 -0
- package/dist/src/bitgo/utils/index.d.ts +12 -0
- package/dist/src/bitgo/utils/index.d.ts.map +1 -0
- package/dist/src/bitgo/utils/index.js +37 -0
- package/dist/src/bitgo/utils/mpcUtils.d.ts +31 -0
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/mpcUtils.js +55 -0
- package/dist/src/bitgo/utils/opengpgUtils.d.ts +51 -0
- package/dist/src/bitgo/utils/opengpgUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/opengpgUtils.js +136 -0
- package/dist/src/bitgo/utils/promise-utils.d.ts +5 -0
- package/dist/src/bitgo/utils/promise-utils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/promise-utils.js +12 -0
- package/dist/src/bitgo/utils/triple.d.ts +3 -0
- package/dist/src/bitgo/utils/triple.d.ts.map +1 -0
- package/dist/src/bitgo/utils/triple.js +8 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +118 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +352 -0
- package/dist/src/bitgo/utils/tss/eddsa/index.d.ts +5 -0
- package/dist/src/bitgo/utils/tss/eddsa/index.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/index.js +29 -0
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +73 -0
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/eddsa/types.js +10 -0
- package/dist/src/bitgo/utils/tss/index.d.ts +4 -0
- package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/index.js +29 -0
- package/dist/src/bitgo/utils/util.d.ts +77 -0
- package/dist/src/bitgo/utils/util.d.ts.map +1 -0
- package/dist/src/bitgo/utils/util.js +198 -0
- package/dist/src/bitgo/wallet/iWallet.d.ts +518 -0
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/iWallet.js +3 -0
- package/dist/src/bitgo/wallet/iWallets.d.ts +105 -0
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/iWallets.js +3 -0
- package/dist/src/bitgo/wallet/index.d.ts +5 -0
- package/dist/src/bitgo/wallet/index.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/index.js +17 -0
- package/dist/src/bitgo/wallet/wallet.d.ts +656 -0
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/wallet.js +2056 -0
- package/dist/src/bitgo/wallet/wallets.d.ts +134 -0
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -0
- package/dist/src/bitgo/wallet/wallets.js +605 -0
- package/dist/src/bitgo/webhook/iWebhooks.d.ts +26 -0
- package/dist/src/bitgo/webhook/iWebhooks.d.ts.map +1 -0
- package/dist/src/bitgo/webhook/iWebhooks.js +3 -0
- package/dist/src/bitgo/webhook/index.d.ts +3 -0
- package/dist/src/bitgo/webhook/index.d.ts.map +1 -0
- package/dist/src/bitgo/webhook/index.js +15 -0
- package/dist/src/bitgo/webhook/webhooks.d.ts +43 -0
- package/dist/src/bitgo/webhook/webhooks.d.ts.map +1 -0
- package/dist/src/bitgo/webhook/webhooks.js +102 -0
- package/dist/src/{bigojsError.d.ts → bitgojsError.d.ts} +1 -1
- package/dist/src/bitgojsError.d.ts.map +1 -0
- package/dist/src/bitgojsError.js +11 -0
- package/dist/src/common.d.ts +1 -1
- package/dist/src/common.d.ts.map +1 -1
- package/dist/src/common.js +3 -3
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -5
- package/dist/tsconfig.tsbuildinfo +2817 -1848
- package/package.json +15 -6
- package/dist/src/bigojsError.d.ts.map +0 -1
- package/dist/src/bigojsError.js +0 -11
- package/dist/src/v2/environments.d.ts.map +0 -1
- package/dist/src/v2/environments.js +0 -142
- package/dist/src/v2/index.d.ts +0 -3
- package/dist/src/v2/index.d.ts.map +0 -1
- package/dist/src/v2/types.d.ts +0 -2
- package/dist/src/v2/types.d.ts.map +0 -1
- package/dist/src/v2/types.js +0 -3
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import * as bip32 from 'bip32';
|
|
5
|
+
import { BaseCoin } from '../baseCoin';
|
|
6
|
+
import { BitGoBase } from '../bitgoBase';
|
|
7
|
+
import { KrsProvider } from '../config';
|
|
8
|
+
interface ValidateKeyOptions {
|
|
9
|
+
key: string;
|
|
10
|
+
source: string;
|
|
11
|
+
passphrase?: string;
|
|
12
|
+
isUnsignedSweep: boolean;
|
|
13
|
+
isKrsRecovery: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface InitiateRecoveryOptions {
|
|
16
|
+
userKey: string;
|
|
17
|
+
backupKey: string;
|
|
18
|
+
bitgoKey?: string;
|
|
19
|
+
recoveryDestination: string;
|
|
20
|
+
walletPassphrase?: string;
|
|
21
|
+
}
|
|
22
|
+
declare type GetKrsProviderOptions = {
|
|
23
|
+
checkCoinFamilySupport?: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* @param coin
|
|
27
|
+
* @param krsProviderName
|
|
28
|
+
* @param checkCoinFamilySupport - assert that krsProvider explicitly supports coin
|
|
29
|
+
* @return KrsProvider
|
|
30
|
+
*/
|
|
31
|
+
export declare function getKrsProvider(coin: BaseCoin, krsProviderName: string | undefined, { checkCoinFamilySupport }?: GetKrsProviderOptions): KrsProvider;
|
|
32
|
+
/**
|
|
33
|
+
* Wrapper for {@see getKrsProvider} returning void
|
|
34
|
+
*/
|
|
35
|
+
export declare function checkKrsProvider(coin: BaseCoin, krsProviderName: string | undefined, options?: GetKrsProviderOptions): void;
|
|
36
|
+
export declare function getIsKrsRecovery({ backupKey, userKey }: {
|
|
37
|
+
backupKey: string;
|
|
38
|
+
userKey: string;
|
|
39
|
+
}): boolean;
|
|
40
|
+
export declare function getIsUnsignedSweep({ backupKey, userKey }: {
|
|
41
|
+
backupKey: string;
|
|
42
|
+
userKey: string;
|
|
43
|
+
}): boolean;
|
|
44
|
+
export declare function validateKey(bitgo: BitGoBase, { key, source, passphrase, isUnsignedSweep, isKrsRecovery }: ValidateKeyOptions): bip32.BIP32Interface;
|
|
45
|
+
export declare function getBip32Keys(bitgo: BitGoBase, params: InitiateRecoveryOptions, { requireBitGoXpub }: {
|
|
46
|
+
requireBitGoXpub: boolean;
|
|
47
|
+
}): bip32.BIP32Interface[];
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=initiate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initiate.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/recovery/initiate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAgB,MAAM,WAAW,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,aAAK,qBAAqB,GAAG;IAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,EAAE,sBAA6B,EAAE,GAAE,qBAA0B,GAC5D,WAAW,CAgBb;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAExG;AAED,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE1G;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,kBAAkB,GAC9E,KAAK,CAAC,cAAc,CAgBtB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,uBAAuB,EAC/B,EAAE,gBAAgB,EAAE,EAAE;IAAE,gBAAgB,EAAE,OAAO,CAAA;CAAE,GAClD,KAAK,CAAC,cAAc,EAAE,CAmCxB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @prettier
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
8
|
+
}) : (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
o[k2] = m[k];
|
|
11
|
+
}));
|
|
12
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
13
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
14
|
+
}) : function(o, v) {
|
|
15
|
+
o["default"] = v;
|
|
16
|
+
});
|
|
17
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
18
|
+
if (mod && mod.__esModule) return mod;
|
|
19
|
+
var result = {};
|
|
20
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
__setModuleDefault(result, mod);
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.getBip32Keys = exports.validateKey = exports.getIsUnsignedSweep = exports.getIsKrsRecovery = exports.checkKrsProvider = exports.getKrsProvider = void 0;
|
|
26
|
+
const bip32 = __importStar(require("bip32"));
|
|
27
|
+
const config_1 = require("../config");
|
|
28
|
+
/**
|
|
29
|
+
* @param coin
|
|
30
|
+
* @param krsProviderName
|
|
31
|
+
* @param checkCoinFamilySupport - assert that krsProvider explicitly supports coin
|
|
32
|
+
* @return KrsProvider
|
|
33
|
+
*/
|
|
34
|
+
function getKrsProvider(coin, krsProviderName, { checkCoinFamilySupport = true } = {}) {
|
|
35
|
+
if (!krsProviderName) {
|
|
36
|
+
throw new Error(`no krsProvider name`);
|
|
37
|
+
}
|
|
38
|
+
const krsProvider = config_1.krsProviders[krsProviderName];
|
|
39
|
+
if (krsProvider === undefined) {
|
|
40
|
+
throw new Error('unknown key recovery service provider');
|
|
41
|
+
}
|
|
42
|
+
if (checkCoinFamilySupport && !krsProvider.supportedCoins.includes(coin.getFamily())) {
|
|
43
|
+
throw new Error('specified key recovery service does not support recoveries for this coin');
|
|
44
|
+
}
|
|
45
|
+
return krsProvider;
|
|
46
|
+
}
|
|
47
|
+
exports.getKrsProvider = getKrsProvider;
|
|
48
|
+
/**
|
|
49
|
+
* Wrapper for {@see getKrsProvider} returning void
|
|
50
|
+
*/
|
|
51
|
+
function checkKrsProvider(coin, krsProviderName, options = {}) {
|
|
52
|
+
getKrsProvider(coin, krsProviderName, options);
|
|
53
|
+
}
|
|
54
|
+
exports.checkKrsProvider = checkKrsProvider;
|
|
55
|
+
function getIsKrsRecovery({ backupKey, userKey }) {
|
|
56
|
+
return backupKey.startsWith('xpub') && !userKey.startsWith('xpub');
|
|
57
|
+
}
|
|
58
|
+
exports.getIsKrsRecovery = getIsKrsRecovery;
|
|
59
|
+
function getIsUnsignedSweep({ backupKey, userKey }) {
|
|
60
|
+
return backupKey.startsWith('xpub') && userKey.startsWith('xpub');
|
|
61
|
+
}
|
|
62
|
+
exports.getIsUnsignedSweep = getIsUnsignedSweep;
|
|
63
|
+
function validateKey(bitgo, { key, source, passphrase, isUnsignedSweep, isKrsRecovery }) {
|
|
64
|
+
if (!key.startsWith('xprv') && !isUnsignedSweep) {
|
|
65
|
+
// Try to decrypt the key
|
|
66
|
+
try {
|
|
67
|
+
if (source === 'user' || (source === 'backup' && !isKrsRecovery)) {
|
|
68
|
+
return bip32.fromBase58(bitgo.decrypt({ password: passphrase, input: key }));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
throw new Error(`Failed to decrypt ${source} key with passcode - try again!`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
return bip32.fromBase58(key);
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
throw new Error(`Failed to validate ${source} key - try again!`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.validateKey = validateKey;
|
|
83
|
+
function getBip32Keys(bitgo, params, { requireBitGoXpub }) {
|
|
84
|
+
const isKrsRecovery = getIsKrsRecovery(params);
|
|
85
|
+
const isUnsignedSweep = getIsUnsignedSweep(params);
|
|
86
|
+
const keys = [
|
|
87
|
+
// Box A
|
|
88
|
+
validateKey(bitgo, {
|
|
89
|
+
key: params.userKey,
|
|
90
|
+
source: 'user',
|
|
91
|
+
passphrase: params.walletPassphrase,
|
|
92
|
+
isKrsRecovery,
|
|
93
|
+
isUnsignedSweep,
|
|
94
|
+
}),
|
|
95
|
+
// Box B
|
|
96
|
+
validateKey(bitgo, {
|
|
97
|
+
key: params.backupKey,
|
|
98
|
+
source: 'backup',
|
|
99
|
+
passphrase: params.walletPassphrase,
|
|
100
|
+
isKrsRecovery,
|
|
101
|
+
isUnsignedSweep,
|
|
102
|
+
}),
|
|
103
|
+
];
|
|
104
|
+
if (requireBitGoXpub) {
|
|
105
|
+
if (!params.bitgoKey) {
|
|
106
|
+
throw new Error(`BitGo xpub required but not provided`);
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
// Box C
|
|
110
|
+
keys.push(bip32.fromBase58(params.bitgoKey));
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
throw new Error('Failed to parse bitgo xpub!');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return keys;
|
|
117
|
+
}
|
|
118
|
+
exports.getBip32Keys = getBip32Keys;
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vcmVjb3ZlcnkvaW5pdGlhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkNBQStCO0FBRy9CLHNDQUFzRDtBQW9CdEQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixjQUFjLENBQzVCLElBQWMsRUFDZCxlQUFtQyxFQUNuQyxFQUFFLHNCQUFzQixHQUFHLElBQUksS0FBNEIsRUFBRTtJQUU3RCxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztLQUN4QztJQUVELE1BQU0sV0FBVyxHQUFHLHFCQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFbEQsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztLQUMxRDtJQUVELElBQUksc0JBQXNCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRTtRQUNwRixNQUFNLElBQUksS0FBSyxDQUFDLDBFQUEwRSxDQUFDLENBQUM7S0FDN0Y7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBcEJELHdDQW9CQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLElBQWMsRUFDZCxlQUFtQyxFQUNuQyxVQUFpQyxFQUFFO0lBRW5DLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFORCw0Q0FNQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBMEM7SUFDN0YsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQTBDO0lBQy9GLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFGRCxnREFFQztBQUVELFNBQWdCLFdBQVcsQ0FDekIsS0FBZ0IsRUFDaEIsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFzQjtJQUUvRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUMvQyx5QkFBeUI7UUFDekIsSUFBSTtZQUNGLElBQUksTUFBTSxLQUFLLE1BQU0sSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDaEUsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDOUU7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsTUFBTSxpQ0FBaUMsQ0FBQyxDQUFDO1NBQy9FO0tBQ0Y7SUFDRCxJQUFJO1FBQ0YsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzlCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixNQUFNLG1CQUFtQixDQUFDLENBQUM7S0FDbEU7QUFDSCxDQUFDO0FBbkJELGtDQW1CQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsS0FBZ0IsRUFDaEIsTUFBK0IsRUFDL0IsRUFBRSxnQkFBZ0IsRUFBaUM7SUFFbkQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0MsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsTUFBTSxJQUFJLEdBQUc7UUFDWCxRQUFRO1FBQ1IsV0FBVyxDQUFDLEtBQUssRUFBRTtZQUNqQixHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU87WUFDbkIsTUFBTSxFQUFFLE1BQU07WUFDZCxVQUFVLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUNuQyxhQUFhO1lBQ2IsZUFBZTtTQUNoQixDQUFDO1FBQ0YsUUFBUTtRQUNSLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDakIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQ3JCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFVBQVUsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO1lBQ25DLGFBQWE7WUFDYixlQUFlO1NBQ2hCLENBQUM7S0FDSCxDQUFDO0lBRUYsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxJQUFJO1lBQ0YsUUFBUTtZQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ2hEO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUF2Q0Qsb0NBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG5pbXBvcnQgKiBhcyBiaXAzMiBmcm9tICdiaXAzMic7XG5pbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBLcnNQcm92aWRlciwga3JzUHJvdmlkZXJzIH0gZnJvbSAnLi4vY29uZmlnJztcblxuaW50ZXJmYWNlIFZhbGlkYXRlS2V5T3B0aW9ucyB7XG4gIGtleTogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgaXNVbnNpZ25lZFN3ZWVwOiBib29sZWFuO1xuICBpc0tyc1JlY292ZXJ5OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleTogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYml0Z29LZXk/OiBzdHJpbmc7IC8vIG9wdGlvbmFsIGZvciB4cnAgcmVjb3Zlcmllc1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59XG5cbnR5cGUgR2V0S3JzUHJvdmlkZXJPcHRpb25zID0geyBjaGVja0NvaW5GYW1pbHlTdXBwb3J0PzogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEBwYXJhbSBjb2luXG4gKiBAcGFyYW0ga3JzUHJvdmlkZXJOYW1lXG4gKiBAcGFyYW0gY2hlY2tDb2luRmFtaWx5U3VwcG9ydCAtIGFzc2VydCB0aGF0IGtyc1Byb3ZpZGVyIGV4cGxpY2l0bHkgc3VwcG9ydHMgY29pblxuICogQHJldHVybiBLcnNQcm92aWRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0S3JzUHJvdmlkZXIoXG4gIGNvaW46IEJhc2VDb2luLFxuICBrcnNQcm92aWRlck5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgeyBjaGVja0NvaW5GYW1pbHlTdXBwb3J0ID0gdHJ1ZSB9OiBHZXRLcnNQcm92aWRlck9wdGlvbnMgPSB7fVxuKTogS3JzUHJvdmlkZXIge1xuICBpZiAoIWtyc1Byb3ZpZGVyTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8ga3JzUHJvdmlkZXIgbmFtZWApO1xuICB9XG5cbiAgY29uc3Qga3JzUHJvdmlkZXIgPSBrcnNQcm92aWRlcnNba3JzUHJvdmlkZXJOYW1lXTtcblxuICBpZiAoa3JzUHJvdmlkZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBrZXkgcmVjb3Zlcnkgc2VydmljZSBwcm92aWRlcicpO1xuICB9XG5cbiAgaWYgKGNoZWNrQ29pbkZhbWlseVN1cHBvcnQgJiYgIWtyc1Byb3ZpZGVyLnN1cHBvcnRlZENvaW5zLmluY2x1ZGVzKGNvaW4uZ2V0RmFtaWx5KCkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzcGVjaWZpZWQga2V5IHJlY292ZXJ5IHNlcnZpY2UgZG9lcyBub3Qgc3VwcG9ydCByZWNvdmVyaWVzIGZvciB0aGlzIGNvaW4nKTtcbiAgfVxuXG4gIHJldHVybiBrcnNQcm92aWRlcjtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciB7QHNlZSBnZXRLcnNQcm92aWRlcn0gcmV0dXJuaW5nIHZvaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrS3JzUHJvdmlkZXIoXG4gIGNvaW46IEJhc2VDb2luLFxuICBrcnNQcm92aWRlck5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uczogR2V0S3JzUHJvdmlkZXJPcHRpb25zID0ge31cbik6IHZvaWQge1xuICBnZXRLcnNQcm92aWRlcihjb2luLCBrcnNQcm92aWRlck5hbWUsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SXNLcnNSZWNvdmVyeSh7IGJhY2t1cEtleSwgdXNlcktleSB9OiB7IGJhY2t1cEtleTogc3RyaW5nOyB1c2VyS2V5OiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYmFja3VwS2V5LnN0YXJ0c1dpdGgoJ3hwdWInKSAmJiAhdXNlcktleS5zdGFydHNXaXRoKCd4cHViJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJc1Vuc2lnbmVkU3dlZXAoeyBiYWNrdXBLZXksIHVzZXJLZXkgfTogeyBiYWNrdXBLZXk6IHN0cmluZzsgdXNlcktleTogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgcmV0dXJuIGJhY2t1cEtleS5zdGFydHNXaXRoKCd4cHViJykgJiYgdXNlcktleS5zdGFydHNXaXRoKCd4cHViJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUtleShcbiAgYml0Z286IEJpdEdvQmFzZSxcbiAgeyBrZXksIHNvdXJjZSwgcGFzc3BocmFzZSwgaXNVbnNpZ25lZFN3ZWVwLCBpc0tyc1JlY292ZXJ5IH06IFZhbGlkYXRlS2V5T3B0aW9uc1xuKTogYmlwMzIuQklQMzJJbnRlcmZhY2Uge1xuICBpZiAoIWtleS5zdGFydHNXaXRoKCd4cHJ2JykgJiYgIWlzVW5zaWduZWRTd2VlcCkge1xuICAgIC8vIFRyeSB0byBkZWNyeXB0IHRoZSBrZXlcbiAgICB0cnkge1xuICAgICAgaWYgKHNvdXJjZSA9PT0gJ3VzZXInIHx8IChzb3VyY2UgPT09ICdiYWNrdXAnICYmICFpc0tyc1JlY292ZXJ5KSkge1xuICAgICAgICByZXR1cm4gYmlwMzIuZnJvbUJhc2U1OChiaXRnby5kZWNyeXB0KHsgcGFzc3dvcmQ6IHBhc3NwaHJhc2UsIGlucHV0OiBrZXkgfSkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGRlY3J5cHQgJHtzb3VyY2V9IGtleSB3aXRoIHBhc3Njb2RlIC0gdHJ5IGFnYWluIWApO1xuICAgIH1cbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBiaXAzMi5mcm9tQmFzZTU4KGtleSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byB2YWxpZGF0ZSAke3NvdXJjZX0ga2V5IC0gdHJ5IGFnYWluIWApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCaXAzMktleXMoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMsXG4gIHsgcmVxdWlyZUJpdEdvWHB1YiB9OiB7IHJlcXVpcmVCaXRHb1hwdWI6IGJvb2xlYW4gfVxuKTogYmlwMzIuQklQMzJJbnRlcmZhY2VbXSB7XG4gIGNvbnN0IGlzS3JzUmVjb3ZlcnkgPSBnZXRJc0tyc1JlY292ZXJ5KHBhcmFtcyk7XG4gIGNvbnN0IGlzVW5zaWduZWRTd2VlcCA9IGdldElzVW5zaWduZWRTd2VlcChwYXJhbXMpO1xuICBjb25zdCBrZXlzID0gW1xuICAgIC8vIEJveCBBXG4gICAgdmFsaWRhdGVLZXkoYml0Z28sIHtcbiAgICAgIGtleTogcGFyYW1zLnVzZXJLZXksXG4gICAgICBzb3VyY2U6ICd1c2VyJyxcbiAgICAgIHBhc3NwaHJhc2U6IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlLFxuICAgICAgaXNLcnNSZWNvdmVyeSxcbiAgICAgIGlzVW5zaWduZWRTd2VlcCxcbiAgICB9KSxcbiAgICAvLyBCb3ggQlxuICAgIHZhbGlkYXRlS2V5KGJpdGdvLCB7XG4gICAgICBrZXk6IHBhcmFtcy5iYWNrdXBLZXksXG4gICAgICBzb3VyY2U6ICdiYWNrdXAnLFxuICAgICAgcGFzc3BocmFzZTogcGFyYW1zLndhbGxldFBhc3NwaHJhc2UsXG4gICAgICBpc0tyc1JlY292ZXJ5LFxuICAgICAgaXNVbnNpZ25lZFN3ZWVwLFxuICAgIH0pLFxuICBdO1xuXG4gIGlmIChyZXF1aXJlQml0R29YcHViKSB7XG4gICAgaWYgKCFwYXJhbXMuYml0Z29LZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQml0R28geHB1YiByZXF1aXJlZCBidXQgbm90IHByb3ZpZGVkYCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyBCb3ggQ1xuICAgICAga2V5cy5wdXNoKGJpcDMyLmZyb21CYXNlNTgocGFyYW1zLmJpdGdvS2V5KSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcGFyc2UgYml0Z28geHB1YiEnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { PrebuildTransactionOptions, PrebuildTransactionResult } from '../wallet';
|
|
2
|
+
import { SignedTransaction } from '../baseCoin';
|
|
3
|
+
export interface StakingRequest {
|
|
4
|
+
id: string;
|
|
5
|
+
amount: string;
|
|
6
|
+
withdrawalAddress: string;
|
|
7
|
+
clientId?: string;
|
|
8
|
+
requestingUserId: string;
|
|
9
|
+
type: string;
|
|
10
|
+
enterpriseId: string;
|
|
11
|
+
walletId: string;
|
|
12
|
+
walletType: string;
|
|
13
|
+
coin: string;
|
|
14
|
+
status: string;
|
|
15
|
+
statusModifiedDate: string;
|
|
16
|
+
createdDate: string;
|
|
17
|
+
transactions: StakingTransaction[];
|
|
18
|
+
}
|
|
19
|
+
export interface StakeOptions {
|
|
20
|
+
amount: string;
|
|
21
|
+
clientId?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface UnstakeOptions {
|
|
24
|
+
amount: string;
|
|
25
|
+
clientId?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface TransactionsReadyToSign {
|
|
28
|
+
allSigningComplete: boolean;
|
|
29
|
+
transactions: StakingTransaction[];
|
|
30
|
+
}
|
|
31
|
+
export interface StakingTransaction {
|
|
32
|
+
id: string;
|
|
33
|
+
stakingRequestId: string;
|
|
34
|
+
delegationId: string;
|
|
35
|
+
transactionType: string;
|
|
36
|
+
createdDate: string;
|
|
37
|
+
status: string;
|
|
38
|
+
statusModifiedDate: string;
|
|
39
|
+
amount: string;
|
|
40
|
+
pendingApprovalId?: string;
|
|
41
|
+
transferId?: string;
|
|
42
|
+
txRequestId?: string;
|
|
43
|
+
buildParams?: PrebuildTransactionOptions;
|
|
44
|
+
gasPrice?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface StakingPrebuildTransactionResult {
|
|
47
|
+
transaction: StakingTransaction;
|
|
48
|
+
result: PrebuildTransactionResult;
|
|
49
|
+
}
|
|
50
|
+
export interface StakingSignedTransaction {
|
|
51
|
+
transaction: StakingTransaction;
|
|
52
|
+
signed: SignedTransaction;
|
|
53
|
+
}
|
|
54
|
+
export interface StakingSignOptions {
|
|
55
|
+
walletPassphrase: string;
|
|
56
|
+
}
|
|
57
|
+
export interface IStakingWallet {
|
|
58
|
+
readonly walletId: string;
|
|
59
|
+
readonly coin: string;
|
|
60
|
+
stake(options: StakeOptions): Promise<StakingRequest>;
|
|
61
|
+
unstake(options: UnstakeOptions): Promise<StakingRequest>;
|
|
62
|
+
getStakingRequest(stakingRequestId: string): Promise<StakingRequest>;
|
|
63
|
+
getTransactionsReadyToSign(stakingRequestId: string): Promise<TransactionsReadyToSign>;
|
|
64
|
+
build(transaction: StakingTransaction): Promise<StakingPrebuildTransactionResult>;
|
|
65
|
+
sign(signOptions: StakingSignOptions, stakingPrebuildTransaction: StakingPrebuildTransactionResult): Promise<StakingSignedTransaction>;
|
|
66
|
+
send(signedTransaction: StakingSignedTransaction): Promise<StakingTransaction>;
|
|
67
|
+
buildSignAndSend(signOptions: StakingSignOptions, transaction: StakingTransaction): any;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=iStakingWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iStakingWallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/staking/iStakingWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaVN0YWtpbmdXYWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc3Rha2luZy9pU3Rha2luZ1dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlYnVpbGRUcmFuc2FjdGlvbk9wdGlvbnMsIFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHsgU2lnbmVkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9iYXNlQ29pbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2luZ1JlcXVlc3Qge1xuICBpZDogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgd2l0aGRyYXdhbEFkZHJlc3M6IHN0cmluZztcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG4gIHJlcXVlc3RpbmdVc2VySWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBlbnRlcnByaXNlSWQ6IHN0cmluZztcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgd2FsbGV0VHlwZTogc3RyaW5nO1xuICBjb2luOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBzdGF0dXNNb2RpZmllZERhdGU6IHN0cmluZztcbiAgY3JlYXRlZERhdGU6IHN0cmluZztcbiAgdHJhbnNhY3Rpb25zOiBTdGFraW5nVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFrZU9wdGlvbnMge1xuICBhbW91bnQ6IHN0cmluZztcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5zdGFrZU9wdGlvbnMge1xuICBhbW91bnQ6IHN0cmluZztcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24ge1xuICBhbGxTaWduaW5nQ29tcGxldGU6IGJvb2xlYW47XG4gIHRyYW5zYWN0aW9uczogU3Rha2luZ1RyYW5zYWN0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2luZ1RyYW5zYWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgc3Rha2luZ1JlcXVlc3RJZDogc3RyaW5nO1xuICBkZWxlZ2F0aW9uSWQ6IHN0cmluZztcbiAgdHJhbnNhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIGNyZWF0ZWREYXRlOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBzdGF0dXNNb2RpZmllZERhdGU6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICB0cmFuc2ZlcklkPzogc3RyaW5nO1xuICB0eFJlcXVlc3RJZD86IHN0cmluZztcbiAgYnVpbGRQYXJhbXM/OiBQcmVidWlsZFRyYW5zYWN0aW9uT3B0aW9ucztcbiAgZ2FzUHJpY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQge1xuICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uO1xuICByZXN1bHQ6IFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uIHtcbiAgdHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbjtcbiAgc2lnbmVkOiBTaWduZWRUcmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFraW5nU2lnbk9wdGlvbnMge1xuICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YWtpbmdXYWxsZXQge1xuICByZWFkb25seSB3YWxsZXRJZDogc3RyaW5nO1xuICByZWFkb25seSBjb2luOiBzdHJpbmc7XG4gIHN0YWtlKG9wdGlvbnM6IFN0YWtlT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+O1xuICB1bnN0YWtlKG9wdGlvbnM6IFVuc3Rha2VPcHRpb25zKTogUHJvbWlzZTxTdGFraW5nUmVxdWVzdD47XG4gIGdldFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+O1xuICBnZXRUcmFuc2FjdGlvbnNSZWFkeVRvU2lnbihzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduPjtcbiAgYnVpbGQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8U3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+O1xuICBzaWduKFxuICAgIHNpZ25PcHRpb25zOiBTdGFraW5nU2lnbk9wdGlvbnMsXG4gICAgc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb246IFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0XG4gICk6IFByb21pc2U8U3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uPjtcbiAgc2VuZChzaWduZWRUcmFuc2FjdGlvbjogU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+O1xuICBidWlsZFNpZ25BbmRTZW5kKHNpZ25PcHRpb25zOiBTdGFraW5nU2lnbk9wdGlvbnMsIHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/staking/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./iStakingWallet"), exports);
|
|
14
|
+
__exportStar(require("./stakingWallet"), exports);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc3Rha2luZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxtREFBaUM7QUFDakMsa0RBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pU3Rha2luZ1dhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWtpbmdXYWxsZXQnO1xuIl19
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import { IStakingWallet, StakingRequest, TransactionsReadyToSign, StakingTransaction, StakingPrebuildTransactionResult, StakingSignedTransaction, StakingSignOptions, StakeOptions, UnstakeOptions } from './iStakingWallet';
|
|
5
|
+
import { IWallet } from '../wallet';
|
|
6
|
+
import { ITssUtils } from '../utils';
|
|
7
|
+
export declare class StakingWallet implements IStakingWallet {
|
|
8
|
+
private readonly bitgo;
|
|
9
|
+
wallet: IWallet;
|
|
10
|
+
tssUtil: ITssUtils;
|
|
11
|
+
constructor(wallet: IWallet);
|
|
12
|
+
get walletId(): string;
|
|
13
|
+
get coin(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Stake coins
|
|
16
|
+
* @param options - stake options
|
|
17
|
+
* @return StakingRequest
|
|
18
|
+
*/
|
|
19
|
+
stake(options: StakeOptions): Promise<StakingRequest>;
|
|
20
|
+
/**
|
|
21
|
+
* Unstake coins
|
|
22
|
+
* @param options - unstake options
|
|
23
|
+
* @return StakingRequest
|
|
24
|
+
*/
|
|
25
|
+
unstake(options: UnstakeOptions): Promise<StakingRequest>;
|
|
26
|
+
/**
|
|
27
|
+
* Get a staking request by ID
|
|
28
|
+
* @param stakingRequestId - id of the staking request to retrieve
|
|
29
|
+
* @return StakingRequest
|
|
30
|
+
*/
|
|
31
|
+
getStakingRequest(stakingRequestId: string): Promise<StakingRequest>;
|
|
32
|
+
/**
|
|
33
|
+
* Get transactions ready to sign
|
|
34
|
+
* @param stakingRequestId
|
|
35
|
+
* @return TransactionsReadyToSign
|
|
36
|
+
*/
|
|
37
|
+
getTransactionsReadyToSign(stakingRequestId: string): Promise<TransactionsReadyToSign>;
|
|
38
|
+
/**
|
|
39
|
+
* Build the staking transaction
|
|
40
|
+
* If TSS delete signature shares, else expand build params and then build
|
|
41
|
+
* @param transaction - staking transaction to build
|
|
42
|
+
*/
|
|
43
|
+
build(transaction: StakingTransaction): Promise<StakingPrebuildTransactionResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Sign the staking transaction
|
|
46
|
+
* @param signOptions
|
|
47
|
+
* @param stakingPrebuildTransaction
|
|
48
|
+
*/
|
|
49
|
+
sign(signOptions: StakingSignOptions, stakingPrebuildTransaction: StakingPrebuildTransactionResult): Promise<StakingSignedTransaction>;
|
|
50
|
+
/**
|
|
51
|
+
* Send the signed staking transaction
|
|
52
|
+
* @param signedTransaction
|
|
53
|
+
*/
|
|
54
|
+
send(signedTransaction: StakingSignedTransaction): Promise<StakingTransaction>;
|
|
55
|
+
/**
|
|
56
|
+
* Build, sign and send the transaction.
|
|
57
|
+
* @param signOptions
|
|
58
|
+
* @param transaction
|
|
59
|
+
*/
|
|
60
|
+
buildSignAndSend(signOptions: StakingSignOptions, transaction: StakingTransaction): Promise<StakingTransaction>;
|
|
61
|
+
private expandBuildParams;
|
|
62
|
+
private createStakingRequest;
|
|
63
|
+
private stakingRequestsURL;
|
|
64
|
+
private stakingRequestUrl;
|
|
65
|
+
private stakingTransactionURL;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=stakingWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stakingWallet.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/staking/stakingWallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,gCAAgC,EAChC,wBAAwB,EACxB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAA2B,MAAM,UAAU,CAAC;AAE9D,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAE3B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,SAAS,CAAC;gBAEd,MAAM,EAAE,OAAO;IAM3B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3D;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D;;;;OAIG;IACG,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI1E;;;;OAIG;IACG,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgB5F;;;;OAIG;IACG,KAAK,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,gCAAgC,CAAC;IA0BvF;;;;OAIG;IACG,IAAI,CACR,WAAW,EAAE,kBAAkB,EAC/B,0BAA0B,EAAE,gCAAgC,GAC3D,OAAO,CAAC,wBAAwB,CAAC;IAgBpC;;;OAGG;IACG,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAOpF;;;;OAIG;IACG,gBAAgB,CACpB,WAAW,EAAE,kBAAkB,EAC/B,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;YAMhB,iBAAiB;YAOjB,oBAAoB;IAWlC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;CAG9B"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StakingWallet = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
class StakingWallet {
|
|
6
|
+
constructor(wallet) {
|
|
7
|
+
this.wallet = wallet;
|
|
8
|
+
this.bitgo = wallet.bitgo;
|
|
9
|
+
this.tssUtil = new utils_1.TssUtils(this.bitgo, this.wallet.baseCoin, this.wallet);
|
|
10
|
+
}
|
|
11
|
+
get walletId() {
|
|
12
|
+
return this.wallet.id();
|
|
13
|
+
}
|
|
14
|
+
get coin() {
|
|
15
|
+
return this.wallet.coin();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Stake coins
|
|
19
|
+
* @param options - stake options
|
|
20
|
+
* @return StakingRequest
|
|
21
|
+
*/
|
|
22
|
+
async stake(options) {
|
|
23
|
+
return await this.createStakingRequest(options.amount, 'STAKE', options.clientId);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Unstake coins
|
|
27
|
+
* @param options - unstake options
|
|
28
|
+
* @return StakingRequest
|
|
29
|
+
*/
|
|
30
|
+
async unstake(options) {
|
|
31
|
+
return await this.createStakingRequest(options.amount, 'UNSTAKE', options.clientId);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get a staking request by ID
|
|
35
|
+
* @param stakingRequestId - id of the staking request to retrieve
|
|
36
|
+
* @return StakingRequest
|
|
37
|
+
*/
|
|
38
|
+
async getStakingRequest(stakingRequestId) {
|
|
39
|
+
return await this.bitgo.get(this.bitgo.microservicesUrl(this.stakingRequestUrl(stakingRequestId))).result();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get transactions ready to sign
|
|
43
|
+
* @param stakingRequestId
|
|
44
|
+
* @return TransactionsReadyToSign
|
|
45
|
+
*/
|
|
46
|
+
async getTransactionsReadyToSign(stakingRequestId) {
|
|
47
|
+
const stakingRequest = await this.getStakingRequest(stakingRequestId);
|
|
48
|
+
const readyToSign = stakingRequest.transactions.filter((transaction) => transaction.status === `READY`);
|
|
49
|
+
const newTransactions = stakingRequest.transactions.filter((transaction) => transaction.status === `NEW`);
|
|
50
|
+
return Promise.resolve({
|
|
51
|
+
allSigningComplete: stakingRequest.transactions.length > 0 && newTransactions.length === 0 && readyToSign.length === 0,
|
|
52
|
+
transactions: readyToSign,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build the staking transaction
|
|
57
|
+
* If TSS delete signature shares, else expand build params and then build
|
|
58
|
+
* @param transaction - staking transaction to build
|
|
59
|
+
*/
|
|
60
|
+
async build(transaction) {
|
|
61
|
+
if (this.wallet.baseCoin.supportsTss()) {
|
|
62
|
+
if (!transaction.txRequestId) {
|
|
63
|
+
throw new Error('txRequestId is required to sign and send');
|
|
64
|
+
}
|
|
65
|
+
// delete signature shares before signing for transaction request API
|
|
66
|
+
await this.tssUtil.deleteSignatureShares(transaction.txRequestId);
|
|
67
|
+
return {
|
|
68
|
+
transaction: transaction,
|
|
69
|
+
result: {
|
|
70
|
+
walletId: this.walletId,
|
|
71
|
+
txRequestId: transaction.txRequestId,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
transaction = await this.expandBuildParams(transaction);
|
|
77
|
+
if (!transaction.buildParams) {
|
|
78
|
+
throw Error(`Staking transaction ${transaction.id} build params not expanded`);
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
transaction: transaction,
|
|
82
|
+
result: await this.wallet.prebuildTransaction(transaction.buildParams),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Sign the staking transaction
|
|
88
|
+
* @param signOptions
|
|
89
|
+
* @param stakingPrebuildTransaction
|
|
90
|
+
*/
|
|
91
|
+
async sign(signOptions, stakingPrebuildTransaction) {
|
|
92
|
+
const reqId = new utils_1.RequestTracer();
|
|
93
|
+
const keychain = await this.wallet.baseCoin.keychains().getKeysForSigning({
|
|
94
|
+
wallet: this.wallet,
|
|
95
|
+
reqId: reqId,
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
transaction: stakingPrebuildTransaction.transaction,
|
|
99
|
+
signed: await this.wallet.signTransaction({
|
|
100
|
+
txPrebuild: stakingPrebuildTransaction.result,
|
|
101
|
+
walletPassphrase: signOptions.walletPassphrase,
|
|
102
|
+
keychain: keychain[0],
|
|
103
|
+
}),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Send the signed staking transaction
|
|
108
|
+
* @param signedTransaction
|
|
109
|
+
*/
|
|
110
|
+
async send(signedTransaction) {
|
|
111
|
+
return await this.bitgo
|
|
112
|
+
.post(this.bitgo.microservicesUrl(this.stakingTransactionURL(signedTransaction.transaction)))
|
|
113
|
+
.send(signedTransaction.signed)
|
|
114
|
+
.result();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Build, sign and send the transaction.
|
|
118
|
+
* @param signOptions
|
|
119
|
+
* @param transaction
|
|
120
|
+
*/
|
|
121
|
+
async buildSignAndSend(signOptions, transaction) {
|
|
122
|
+
return await this.build(transaction)
|
|
123
|
+
.then((result) => this.sign(signOptions, result))
|
|
124
|
+
.then((result) => this.send(result));
|
|
125
|
+
}
|
|
126
|
+
async expandBuildParams(stakingTransaction) {
|
|
127
|
+
return await this.bitgo
|
|
128
|
+
.get(this.bitgo.microservicesUrl(this.stakingTransactionURL(stakingTransaction)))
|
|
129
|
+
.query({ expandBuildParams: true })
|
|
130
|
+
.result();
|
|
131
|
+
}
|
|
132
|
+
async createStakingRequest(amount, type, clientId) {
|
|
133
|
+
return await this.bitgo
|
|
134
|
+
.post(this.bitgo.microservicesUrl(this.stakingRequestsURL()))
|
|
135
|
+
.send({
|
|
136
|
+
amount: amount,
|
|
137
|
+
clientId: clientId,
|
|
138
|
+
type: type,
|
|
139
|
+
})
|
|
140
|
+
.result();
|
|
141
|
+
}
|
|
142
|
+
stakingRequestsURL() {
|
|
143
|
+
return `/api/staking/v1/${this.coin}/wallets/${this.walletId}/requests`;
|
|
144
|
+
}
|
|
145
|
+
stakingRequestUrl(stakingRequestId) {
|
|
146
|
+
return `${this.stakingRequestsURL()}/${stakingRequestId}`;
|
|
147
|
+
}
|
|
148
|
+
stakingTransactionURL(stakingTransaction) {
|
|
149
|
+
return `${this.stakingRequestUrl(stakingTransaction.stakingRequestId)}/transactions/${stakingTransaction.id}`;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.StakingWallet = StakingWallet;
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1dhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zdGFraW5nL3N0YWtpbmdXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0JBLG9DQUE4RDtBQUU5RCxNQUFhLGFBQWE7SUFNeEIsWUFBWSxNQUFlO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQXFCO1FBQy9CLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUF1QjtRQUNuQyxPQUFPLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBd0I7UUFDOUMsT0FBTyxNQUFNLElB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LElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7YUFDNUQsSUFBSSxDQUFDO1lBQ0osTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7YUFDRCxNQUFNLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxtQkFBbUIsSUFBSSxDQUFDLElBQUksWUFBWSxJQUFJLENBQUMsUUFBUSxXQUFXLENBQUM7SUFDMUUsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGdCQUF3QjtRQUNoRCxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRU8scUJBQXFCLENBQUMsa0JBQXNDO1FBQ2xFLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2hILENBQUM7Q0FDRjtBQWpMRCxzQ0FpTEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBJU3Rha2luZ1dhbGxldCxcbiAgU3Rha2luZ1JlcXVlc3QsXG4gIFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduLFxuICBTdGFraW5nVHJhbnNhY3Rpb24sXG4gIFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0LFxuICBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgU3Rha2VPcHRpb25zLFxuICBVbnN0YWtlT3B0aW9ucyxcbn0gZnJvbSAnLi9pU3Rha2luZ1dhbGxldCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBJVHNzVXRpbHMsIFJlcXVlc3RUcmFjZXIsIFRzc1V0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU3Rha2luZ1dhbGxldCBpbXBsZW1lbnRzIElTdGFraW5nV2FsbGV0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuXG4gIHB1YmxpYyB3YWxsZXQ6IElXYWxsZXQ7XG4gIHB1YmxpYyB0c3NVdGlsOiBJVHNzVXRpbHM7XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0KSB7XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy5iaXRnbyA9IHdhbGxldC5iaXRnbztcbiAgICB0aGlzLnRzc1V0aWwgPSBuZXcgVHNzVXRpbHModGhpcy5iaXRnbywgdGhpcy53YWxsZXQuYmFzZUNvaW4sIHRoaXMud2FsbGV0KTtcbiAgfVxuXG4gIGdldCB3YWxsZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5pZCgpO1xuICB9XG5cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy53YWxsZXQuY29pbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YWtlIGNvaW5zXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gc3Rha2Ugb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBzdGFrZShvcHRpb25zOiBTdGFrZU9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucy5hbW91bnQsICdTVEFLRScsIG9wdGlvbnMuY2xpZW50SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc3Rha2UgY29pbnNcbiAgICogQHBhcmFtIG9wdGlvbnMgLSB1bnN0YWtlIG9wdGlvbnNcbiAgICogQHJldHVybiBTdGFraW5nUmVxdWVzdFxuICAgKi9cbiAgYXN5bmMgdW5zdGFrZShvcHRpb25zOiBVbnN0YWtlT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLmFtb3VudCwgJ1VOU1RBS0UnLCBvcHRpb25zLmNsaWVudElkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzdGFraW5nIHJlcXVlc3QgYnkgSURcbiAgICogQHBhcmFtIHN0YWtpbmdSZXF1ZXN0SWQgLSBpZCBvZiB0aGUgc3Rha2luZyByZXF1ZXN0IHRvIHJldHJpZXZlXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGdldFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZCkpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb25zIHJlYWR5IHRvIHNpZ25cbiAgICogQHBhcmFtIHN0YWtpbmdSZXF1ZXN0SWRcbiAgICogQHJldHVybiBUcmFuc2FjdGlvbnNSZWFkeVRvU2lnblxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24oc3Rha2luZ1JlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNSZWFkeVRvU2lnbj4ge1xuICAgIGNvbnN0IHN0YWtpbmdSZXF1ZXN0OiBTdGFraW5nUmVxdWVzdCA9IGF3YWl0IHRoaXMuZ2V0U3Rha2luZ1JlcXVlc3Qoc3Rha2luZ1JlcXVlc3RJZCk7XG4gICAgY29uc3QgcmVhZHlUb1NpZ246IFN0YWtpbmdUcmFuc2FjdGlvbltdID0gc3Rha2luZ1JlcXVlc3QudHJhbnNhY3Rpb25zLmZpbHRlcihcbiAgICAgICh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5zdGF0dXMgPT09IGBSRUFEWWBcbiAgICApO1xuICAgIGNvbnN0IG5ld1RyYW5zYWN0aW9uczogU3Rha2luZ1RyYW5zYWN0aW9uW10gPSBzdGFraW5nUmVxdWVzdC50cmFuc2FjdGlvbnMuZmlsdGVyKFxuICAgICAgKHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pID0+IHRyYW5zYWN0aW9uLnN0YXR1cyA9PT0gYE5FV2BcbiAgICApO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICBhbGxTaWduaW5nQ29tcGxldGU6XG4gICAgICAgIHN0YWtpbmdSZXF1ZXN0LnRyYW5zYWN0aW9ucy5sZW5ndGggPiAwICYmIG5ld1RyYW5zYWN0aW9ucy5sZW5ndGggPT09IDAgJiYgcmVhZHlUb1NpZ24ubGVuZ3RoID09PSAwLFxuICAgICAgdHJhbnNhY3Rpb25zOiByZWFkeVRvU2lnbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICAgKiBJZiBUU1MgZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMsIGVsc2UgZXhwYW5kIGJ1aWxkIHBhcmFtcyBhbmQgdGhlbiBidWlsZFxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gLSBzdGFraW5nIHRyYW5zYWN0aW9uIHRvIGJ1aWxkXG4gICAqL1xuICBhc3luYyBidWlsZCh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdD4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi5zdXBwb3J0c1RzcygpKSB7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndHhSZXF1ZXN0SWQgaXMgcmVxdWlyZWQgdG8gc2lnbiBhbmQgc2VuZCcpO1xuICAgICAgfVxuICAgICAgLy8gZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgYmVmb3JlIHNpZ25pbmcgZm9yIHRyYW5zYWN0aW9uIHJlcXVlc3QgQVBJXG4gICAgICBhd2FpdCB0aGlzLnRzc1V0aWwuZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zYWN0aW9uOiB0cmFuc2FjdGlvbixcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgd2FsbGV0SWQ6IHRoaXMud2FsbGV0SWQsXG4gICAgICAgICAgdHhSZXF1ZXN0SWQ6IHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNhY3Rpb24gPSBhd2FpdCB0aGlzLmV4cGFuZEJ1aWxkUGFyYW1zKHRyYW5zYWN0aW9uKTtcbiAgICAgIGlmICghdHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5pZH0gYnVpbGQgcGFyYW1zIG5vdCBleHBhbmRlZGApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uLFxuICAgICAgICByZXN1bHQ6IGF3YWl0IHRoaXMud2FsbGV0LnByZWJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2lnbiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gc2lnbk9wdGlvbnNcbiAgICogQHBhcmFtIHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBzaWduKFxuICAgIHNpZ25PcHRpb25zOiBTdGFraW5nU2lnbk9wdGlvbnMsXG4gICAgc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb246IFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0XG4gICk6IFByb21pc2U8U3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgcmVxSWQgPSBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIGNvbnN0IGtleWNoYWluID0gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0S2V5c0ZvclNpZ25pbmcoe1xuICAgICAgd2FsbGV0OiB0aGlzLndhbGxldCxcbiAgICAgIHJlcUlkOiByZXFJZCxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNhY3Rpb246IHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uLFxuICAgICAgc2lnbmVkOiBhd2FpdCB0aGlzLndhbGxldC5zaWduVHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFByZWJ1aWxkOiBzdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvbi5yZXN1bHQsXG4gICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IHNpZ25PcHRpb25zLndhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgIGtleWNoYWluOiBrZXljaGFpblswXSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VuZCB0aGUgc2lnbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHNpZ25lZFRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBzZW5kKHNpZ25lZFRyYW5zYWN0aW9uOiBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24pOiBQcm9taXNlPFN0YWtpbmdUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc2lnbmVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24pKSlcbiAgICAgIC5zZW5kKHNpZ25lZFRyYW5zYWN0aW9uLnNpZ25lZClcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCwgc2lnbiBhbmQgc2VuZCB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIEBwYXJhbSBzaWduT3B0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIGJ1aWxkU2lnbkFuZFNlbmQoXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uXG4gICk6IFByb21pc2U8U3Rha2luZ1RyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYnVpbGQodHJhbnNhY3Rpb24pXG4gICAgICAudGhlbigocmVzdWx0OiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCkgPT4gdGhpcy5zaWduKHNpZ25PcHRpb25zLCByZXN1bHQpKVxuICAgICAgLnRoZW4oKHJlc3VsdDogU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uKSA9PiB0aGlzLnNlbmQocmVzdWx0KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4cGFuZEJ1aWxkUGFyYW1zKHN0YWtpbmdUcmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc3Rha2luZ1RyYW5zYWN0aW9uKSkpXG4gICAgICAucXVlcnkoeyBleHBhbmRCdWlsZFBhcmFtczogdHJ1ZSB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVTdGFraW5nUmVxdWVzdChhbW91bnQ6IHN0cmluZywgdHlwZTogc3RyaW5nLCBjbGllbnRJZD86IHN0cmluZyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1JlcXVlc3RzVVJMKCkpKVxuICAgICAgLnNlbmQoe1xuICAgICAgICBhbW91bnQ6IGFtb3VudCxcbiAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Rha2luZ1JlcXVlc3RzVVJMKCkge1xuICAgIHJldHVybiBgL2FwaS9zdGFraW5nL3YxLyR7dGhpcy5jb2lufS93YWxsZXRzLyR7dGhpcy53YWxsZXRJZH0vcmVxdWVzdHNgO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFraW5nUmVxdWVzdFVybChzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnN0YWtpbmdSZXF1ZXN0c1VSTCgpfS8ke3N0YWtpbmdSZXF1ZXN0SWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgc3Rha2luZ1RyYW5zYWN0aW9uVVJMKHN0YWtpbmdUcmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zdGFraW5nUmVxdWVzdFVybChzdGFraW5nVHJhbnNhY3Rpb24uc3Rha2luZ1JlcXVlc3RJZCl9L3RyYW5zYWN0aW9ucy8ke3N0YWtpbmdUcmFuc2FjdGlvbi5pZH1gO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prettier
|
|
3
|
+
*/
|
|
4
|
+
import { BitGoBase } from '../bitgoBase';
|
|
5
|
+
import { AffirmationStatus, IAffirmation, Lock, Payload } from '../trading';
|
|
6
|
+
export declare class Affirmation implements IAffirmation {
|
|
7
|
+
private bitgo;
|
|
8
|
+
private enterpriseId;
|
|
9
|
+
id?: string;
|
|
10
|
+
partyAccountId?: string;
|
|
11
|
+
status?: AffirmationStatus;
|
|
12
|
+
settlement?: string;
|
|
13
|
+
lock?: Lock;
|
|
14
|
+
payload?: string;
|
|
15
|
+
createdAt?: Date;
|
|
16
|
+
expireAt?: Date;
|
|
17
|
+
constructor(affirmationData: any, bitgo: BitGoBase, enterpriseId: string);
|
|
18
|
+
/**
|
|
19
|
+
* Affirms a pending affirmation, authorizing the settlement
|
|
20
|
+
* @param payload payload authorizing the movement of funds from a trading account
|
|
21
|
+
* @param signature signature of the payload with the user key of the trading account
|
|
22
|
+
*/
|
|
23
|
+
affirm(payload: Payload, signature: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Rejects a pending affirmation, cancelling the settlement
|
|
26
|
+
*/
|
|
27
|
+
reject(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Cancels a pending affirmation, cancelling the settlement
|
|
30
|
+
*/
|
|
31
|
+
cancel(): Promise<void>;
|
|
32
|
+
private updateStatus;
|
|
33
|
+
private updateAffirmationData;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=affirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affirmation.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/trading/affirmation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5E,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,YAAY,CAAS;IAEtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAC;gBAEX,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM;IAOxE;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAIf,YAAY;IAS1B,OAAO,CAAC,qBAAqB;CAU9B"}
|