From 6005a3e2e54485146d9dd3eab1e6436b6d682614 Mon Sep 17 00:00:00 2001 From: Manas Ladha Date: Tue, 10 Feb 2026 17:43:00 +0530 Subject: [PATCH] feat: support erc20 token registry using custom coin map TICKET: WIN-8902 TICKET: WIN-8902 --- modules/sdk-coin-eth/src/register.ts | 7 +++++++ modules/statics/src/tokenConfig.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/sdk-coin-eth/src/register.ts b/modules/sdk-coin-eth/src/register.ts index d471012f3b..7420142e10 100644 --- a/modules/sdk-coin-eth/src/register.ts +++ b/modules/sdk-coin-eth/src/register.ts @@ -5,6 +5,7 @@ import { Gteth } from './gteth'; import { Hteth } from './hteth'; import { Teth } from './teth'; import { Erc721Token } from './erc721Token'; +import { type CoinMap, getFormattedErc20Tokens } from '@bitgo/statics'; export const register = (sdk: BitGoBase): void => { sdk.register('eth', Eth.createInstance); @@ -18,3 +19,9 @@ export const register = (sdk: BitGoBase): void => { sdk.register(name, coinConstructor); }); }; + +export const registerWithCoinMap = (sdk: BitGoBase, coinMap: CoinMap): void => { + Erc20Token.createTokenConstructors(getFormattedErc20Tokens(coinMap)).forEach(({ name, coinConstructor }) => { + sdk.register(name, coinConstructor); + }); +}; diff --git a/modules/statics/src/tokenConfig.ts b/modules/statics/src/tokenConfig.ts index 9acc0c978f..23e374f9a6 100644 --- a/modules/statics/src/tokenConfig.ts +++ b/modules/statics/src/tokenConfig.ts @@ -327,7 +327,7 @@ function getErc20TokenConfig(coin: Erc20Coin): Erc20TokenConfig { } // Get the list of ERC-20 tokens from statics and format it properly -const getFormattedErc20Tokens = (customCoinMap = coins) => +export const getFormattedErc20Tokens = (customCoinMap = coins) => customCoinMap.reduce((acc: Erc20TokenConfig[], coin) => { if (coin instanceof Erc20Coin) { acc.push(getErc20TokenConfig(coin));