From 694f624e02ad12a435583cf02538f97e180209d0 Mon Sep 17 00:00:00 2001 From: neha-kri Date: Mon, 18 May 2026 13:25:16 +0530 Subject: [PATCH] fix: add per-token error isolation in bulk token registration TICKET: CGD-722 Wrap createToken() in a try/catch in createTokenMapUsingConfigDetails() so a single malformed AMS entry is skipped with a structured warning instead of aborting the entire loop. Add empty-array guards before tokenConfigs[0] accesses in both createTokenMapUsingConfigDetails() and createTokenMapUsingTrimmedConfigDetails(). Wrap initCoinFactory() in registerAllTokens() for defence-in-depth error surfacing. TICKET: CGD-722 --- modules/bitgo/src/bitgo.ts | 6 +++++- modules/statics/src/coins.ts | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/modules/bitgo/src/bitgo.ts b/modules/bitgo/src/bitgo.ts index dd6125f114..3f877cf8e4 100644 --- a/modules/bitgo/src/bitgo.ts +++ b/modules/bitgo/src/bitgo.ts @@ -85,7 +85,11 @@ export class BitGo extends BitGoAPI { const assetEnvironment = ['prod', 'adminProd'].includes(this.getEnv()) ? 'mainnet' : 'testnet'; const url = this.url(`/assets/list/${assetEnvironment}`); const tokenConfigMap = (await this.executeAssetRequest(url)) as Record; - this.initCoinFactory(tokenConfigMap); + try { + this.initCoinFactory(tokenConfigMap); + } catch (e) { + throw new Error(`Failed to initialize coin factory from AMS token metadata: ${(e as Error).message}`); + } } /** diff --git a/modules/statics/src/coins.ts b/modules/statics/src/coins.ts index 36c0a2d5e6..c7f49e2d30 100644 --- a/modules/statics/src/coins.ts +++ b/modules/statics/src/coins.ts @@ -470,12 +470,21 @@ export function createTokenMapUsingConfigDetails(tokenConfigMap: Record