From 7adf457395afd1ca0120d8a1c2ae596b70c0d493 Mon Sep 17 00:00:00 2001 From: Mohammed Ryaan Date: Mon, 1 Jun 2026 19:40:29 +0530 Subject: [PATCH] fix(sdk-coin-eth): add enable token support for zama TICKET: CHALO-472 --- modules/abstract-eth/src/abstractEthLikeNewCoins.ts | 12 +++++++++--- modules/sdk-coin-eth/src/erc7984Token.ts | 10 +--------- modules/sdk-coin-eth/src/eth.ts | 9 +++++++++ modules/sdk-core/src/bitgo/utils/mpcUtils.ts | 7 +++++++ 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/modules/abstract-eth/src/abstractEthLikeNewCoins.ts b/modules/abstract-eth/src/abstractEthLikeNewCoins.ts index ed5bd7ed08..3e9839e1bd 100644 --- a/modules/abstract-eth/src/abstractEthLikeNewCoins.ts +++ b/modules/abstract-eth/src/abstractEthLikeNewCoins.ts @@ -3109,9 +3109,15 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin { txParams.prebuildTx?.consolidateId || txPrebuild?.consolidateId || (txParams.type && - ['acceleration', 'fillNonce', 'transferToken', 'tokenApproval', 'consolidate', 'bridgeFunds'].includes( - txParams.type - )) + [ + 'acceleration', + 'fillNonce', + 'transferToken', + 'tokenApproval', + 'consolidate', + 'bridgeFunds', + 'enabletoken', + ].includes(txParams.type)) ) ) { throw new Error('missing txParams'); diff --git a/modules/sdk-coin-eth/src/erc7984Token.ts b/modules/sdk-coin-eth/src/erc7984Token.ts index 5a4d8d017b..c8ce5a70bf 100644 --- a/modules/sdk-coin-eth/src/erc7984Token.ts +++ b/modules/sdk-coin-eth/src/erc7984Token.ts @@ -1,7 +1,7 @@ /** * @prettier */ -import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor, TokenEnablementConfig } from '@bitgo/sdk-core'; +import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor } from '@bitgo/sdk-core'; import { coins, Erc7984TokenConfig, EthereumNetwork, tokens } from '@bitgo/statics'; import { @@ -121,14 +121,6 @@ export class Erc7984Token extends Eth { return new TransactionBuilder(coins.get(this.getBaseChain())); } - /** @inheritDoc */ - getTokenEnablementConfig(): TokenEnablementConfig { - return { - requiresTokenEnablement: true, - supportsMultipleTokenEnablements: true, - }; - } - /** @inheritDoc */ async verifyTransaction(params: VerifyEthTransactionOptions): Promise { if (params.txParams?.type === 'enabletoken') { diff --git a/modules/sdk-coin-eth/src/eth.ts b/modules/sdk-coin-eth/src/eth.ts index e5b7d1930a..6452418539 100644 --- a/modules/sdk-coin-eth/src/eth.ts +++ b/modules/sdk-coin-eth/src/eth.ts @@ -18,6 +18,7 @@ import { multisigTypes, Recipient, Util, + TokenEnablementConfig, } from '@bitgo/sdk-core'; import { AbstractEthLikeNewCoins, @@ -92,6 +93,14 @@ export class Eth extends AbstractEthLikeNewCoins { return 'ecdsa'; } + /** @inheritDoc */ + getTokenEnablementConfig(): TokenEnablementConfig { + return { + requiresTokenEnablement: true, + supportsMultipleTokenEnablements: true, + }; + } + /** * Gets correct Eth Common object based on params from either recovery or tx building * @param eip1559 {EIP1559} configs that specify whether we should construct an eip1559 tx diff --git a/modules/sdk-core/src/bitgo/utils/mpcUtils.ts b/modules/sdk-core/src/bitgo/utils/mpcUtils.ts index c3c9265c16..3b7f94876b 100644 --- a/modules/sdk-core/src/bitgo/utils/mpcUtils.ts +++ b/modules/sdk-core/src/bitgo/utils/mpcUtils.ts @@ -243,6 +243,13 @@ export abstract class MpcUtils { feeToken: params.feeToken, nonce: params.nonce, }; + case 'enableToken': + return { + ...baseIntent, + enableTokens: params.enableTokens, + feeOptions: params.feeOptions, + feeToken: params.feeToken, + }; default: throw new Error(`Unsupported intent type ${params.intentType}`); }