diff --git a/lib/plugins/wallet/bitgo/bitgo.js b/lib/plugins/wallet/bitgo/bitgo.js index be169b10..749ee030 100644 --- a/lib/plugins/wallet/bitgo/bitgo.js +++ b/lib/plugins/wallet/bitgo/bitgo.js @@ -1,6 +1,6 @@ const _ = require('lodash/fp') -const BitGo = require('bitgo') +const { BitGoAPI } = require('@bitgo/sdk-api') const { toLegacyAddress, toCashAddress } = require('bchaddrjs') const BN = require('../../../bn') @@ -11,19 +11,29 @@ const pjson = require('../../../../package.json') const userAgent = 'Lamassu-Server/' + pjson.version const NAME = 'BitGo' -const SUPPORTED_COINS = ['BTC', 'ZEC', 'LTC', 'BCH', 'DASH'] + +const BITGO_MODULES = { + BCH: require('@bitgo/sdk-coin-bch'), + BTC: require('@bitgo/sdk-coin-btc'), + DASH: require('@bitgo/sdk-coin-dash'), + LTC: require('@bitgo/sdk-coin-ltc'), + ZEC: require('@bitgo/sdk-coin-zec'), +} +const SUPPORTED_COINS = _.keys(BITGO_MODULES) const BCH_CODES = ['BCH', 'TBCH'] -function buildBitgo (account) { +const getWallet = (account, cryptoCode) => { + const accessToken = account.token.trim() const env = account.environment === 'test' ? 'test' : 'prod' - return new BitGo.BitGo({ accessToken: account.token.trim(), env, userAgent: userAgent }) -} + const walletId = account[`${cryptoCode}WalletId`] -function getWallet (account, cryptoCode) { - const bitgo = buildBitgo(account) - const coin = account.environment === 'test' ? `t${cryptoCode.toLowerCase()}` : cryptoCode.toLowerCase() + const bitgo = new BitGoAPI({ accessToken, env, userAgent }) + BITGO_MODULES[cryptoCode].register(bitgo) - return bitgo.coin(coin).wallets().get({ id: account[`${cryptoCode}WalletId`] }) + cryptoCode = cryptoCode.toLowerCase() + const coin = env === 'test' ? `t${cryptoCode}` : cryptoCode + + return bitgo.coin(coin).wallets().get({ id: walletId }) } function checkCryptoCode (cryptoCode) { diff --git a/package.json b/package.json index 3b444580..f18102f7 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,13 @@ "bignumber.js": "9.0.1", "bip39": "^2.3.1", "bitcoind-rpc": "^0.7.0", - "bitgo": "11.18.0", + "@bitgo/sdk-api": "1.21.0", + "@bitgo/sdk-coin-bch": "1.5.10", + "@bitgo/sdk-coin-btc": "1.7.10", + "@bitgo/sdk-coin-dash": "1.5.10", + "@bitgo/sdk-coin-ltc": "2.2.10", + "@bitgo/sdk-coin-zec": "1.5.10", + "@bitgo/utxo-lib": "9.13.0", "ccxt": "lamassu/ccxt#1.82.31", "compression": "^1.7.4", "connect-pg-simple": "^6.2.1",