From 60dbf3363901768d97e954631794fb3b17ae48fe Mon Sep 17 00:00:00 2001 From: Manoj Kumar Date: Mon, 27 Jul 2026 16:31:58 +0530 Subject: [PATCH] Revert "feat(statics): add Pearl to statics" This reverts the Pearl (Duplex) statics definitions from #9347. Reverting while the Pearl onboarding is blocked on VL-7329, which needs @bitgo/sdk-coin-pearl and @bitgo-beta/sdk-coin-pearl created on npm with GHA as trusted publisher before the package can be published. Rather than carry a coin definition in statics for the duration, back it out and re-land once the npm packages exist. Re-landing is a straight revert of this commit; #9347 was reviewed and its CI was green. TICKET: CECHO-1780 Co-Authored-By: Claude Opus 5 (1M context) --- modules/statics/src/base.ts | 2 -- modules/statics/src/networks.ts | 27 ------------------- modules/statics/src/utxo.ts | 19 ------------- modules/statics/test/unit/coins.ts | 8 ------ .../unit/fixtures/expectedColdFeatures.ts | 2 -- 5 files changed, 58 deletions(-) diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 9a9cf72db6..3752763505 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -110,7 +110,6 @@ export enum CoinFamily { OPETH = 'opeth', OSMO = 'osmo', PLUME = 'plume', - PEARL = 'pearl', RBTC = 'rbtc', SCROLLETH = 'scrolleth', // Scroll L2 SGB = 'sgb', @@ -1685,7 +1684,6 @@ export enum UnderlyingAsset { PRDX = 'prdx', PRINTS = 'prints', PRISM = 'prism', - PEARL = 'pearl', PRO = 'pro', PROM = 'prom', PROS = 'pros', diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index 1ad5b3a5d4..daf6425e38 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -1431,31 +1431,6 @@ class ZCashTestnet extends Testnet implements UtxoNetwork { explorerUrl = 'https://testnet.zcashexplorer.app/transactions/'; } -/* - * Pearl is served through @bitgo/wasm-utxo and is deliberately NOT registered as a - * network in @bitgo/utxo-lib. - * - * `utxolibName` is required by UtxoNetwork, so it carries the wasm-utxo `CoinName` - * instead. It must not be resolved via `utxolib.networks[...]` - that yields - * undefined for Pearl and throws `TypeError: invalid network` downstream. Use the - * wasm-utxo coin name directly. - */ -class Pearl extends Mainnet implements UtxoNetwork { - name = 'Pearl'; - family = CoinFamily.PEARL; - /** wasm-utxo CoinName, not a utxo-lib network - see note above */ - utxolibName = 'pearl'; - explorerUrl = undefined; -} - -class PearlTestnet extends Testnet implements UtxoNetwork { - name = 'PearlTestnet'; - family = CoinFamily.PEARL; - /** wasm-utxo CoinName, not a utxo-lib network - see note above */ - utxolibName = 'tpearl'; - explorerUrl = undefined; -} - class Near extends Mainnet implements AccountNetwork { name = 'Near'; family = CoinFamily.NEAR; @@ -2978,7 +2953,6 @@ export const Networks = { plume: Object.freeze(new Plume()), polygon: Object.freeze(new Polygon()), polyx: Object.freeze(new Polymesh()), - pearl: Object.freeze(new Pearl()), phrs: Object.freeze(new Pharos()), ctc: Object.freeze(new Creditcoin()), hypeevm: Object.freeze(new HypeEVM()), @@ -3113,7 +3087,6 @@ export const Networks = { mantra: Object.freeze(new MantraTestnet()), polygon: Object.freeze(new PolygonTestnet()), polyx: Object.freeze(new PolymeshTestnet()), - pearl: Object.freeze(new PearlTestnet()), phrs: Object.freeze(new PharosTestnet()), ctc: Object.freeze(new CreditcoinTestnet()), hypeevm: Object.freeze(new HypeEVMTestnet()), diff --git a/modules/statics/src/utxo.ts b/modules/statics/src/utxo.ts index bf8951b54d..18839830cb 100644 --- a/modules/statics/src/utxo.ts +++ b/modules/statics/src/utxo.ts @@ -143,7 +143,6 @@ const DOGE_FEATURES = [ const DASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.BULK_TRANSACTION]; const TDASH_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; const ZEC_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -const PEARL_FEATURES = [...UtxoCoin.DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION, CoinFeature.DISTRIBUTED_CUSTODY]; export const utxoCoins: Readonly[] = [ utxo( '8d6e08d5-399f-414f-8430-6ceca1798cbf', @@ -321,24 +320,6 @@ export const utxoCoins: Readonly[] = [ BaseUnit.ZEC, ZEC_FEATURES ), - utxo( - '4518a5b9-00d3-476e-bc40-d3f87eb82250', - 'pearl', - 'Pearl', - Networks.main.pearl, - UnderlyingAsset.PEARL, - BaseUnit.BTC, - PEARL_FEATURES - ), - utxo( - '5d88723a-7e86-43c7-9fb1-f4cee7abc48f', - 'tpearl', - 'Testnet Pearl', - Networks.test.pearl, - UnderlyingAsset.PEARL, - BaseUnit.BTC, - PEARL_FEATURES - ), utxo( 'c93a9160-458f-4a31-bea0-4a93ae8b1d2d', 'doge', diff --git a/modules/statics/test/unit/coins.ts b/modules/statics/test/unit/coins.ts index 3bde589874..4e270b4f6b 100644 --- a/modules/statics/test/unit/coins.ts +++ b/modules/statics/test/unit/coins.ts @@ -1218,14 +1218,6 @@ describe('Distributed Custody Features', () => { coin.features.includes(CoinFeature.DISTRIBUTED_CUSTODY).should.eql(true); }); }); - - it('pearl and tpearl should have distributed custody feature', () => { - const targetCoins = ['pearl', 'tpearl']; - targetCoins.forEach((coinName) => { - const coin = coins.get(coinName); - coin.features.includes(CoinFeature.DISTRIBUTED_CUSTODY).should.eql(true); - }); - }); }); describe('Bulk Transaction Features', () => { diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index 927ccba868..b09d602aae 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -33,7 +33,6 @@ export const expectedColdFeatures = { 'etc', 'hbar', 'ltc', - 'pearl', 'rbtc', 'stx', 'talgo', @@ -54,7 +53,6 @@ export const expectedColdFeatures = { 'tetc', 'thbar', 'tltc', - 'tpearl', 'trbtc', 'tstx', 'txlm',