Skip to content

Commit 810dfbe

Browse files
manojkumar138claude
andcommitted
feat(bitgo): register Pearl in the coin factory
Wire the Pearl (Duplex) coin classes from @bitgo/sdk-coin-pearl into the bitgo module so `bitgo.coin('pearl')` and `bitgo.coin('tpearl')` resolve. Completes the BitGoJS onboarding started in #9347 (statics) and #9360 (abstract-utxo + sdk-coin-pearl). Registers in both mechanisms: registerCoinConstructors for eager registration and getCoinConstructor for the lazy lookup. Pearl and Tpearl are imported directly from @bitgo/sdk-coin-pearl rather than through the ./coins barrel. Routing them through the barrel makes coinFactory observe a partially initialised module and leaves unrelated constructors such as TethLikeCoin undefined at registration time. Several other coins in this file are imported directly for the same reason. The barrel still re-exports Pearl/Tpearl so `import { Pearl } from 'bitgo'` keeps working like every other coin. Regenerate the Dockerfile with `yarn update-dockerfile` so the new module is copied and linked for bitgo-express. This is generated content and the dockerfile-check CI job diffs it, so it must be committed rather than hand-edited. TICKET: CECHO-1792 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 9ceb87e commit 810dfbe

5 files changed

Lines changed: 16 additions & 0 deletions

File tree

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ COPY --from=builder /tmp/bitgo/modules/sdk-coin-ethw /var/modules/sdk-coin-ethw/
142142
COPY --from=builder /tmp/bitgo/modules/sdk-coin-iota /var/modules/sdk-coin-iota/
143143
COPY --from=builder /tmp/bitgo/modules/sdk-coin-lnbtc /var/modules/sdk-coin-lnbtc/
144144
COPY --from=builder /tmp/bitgo/modules/sdk-coin-ltc /var/modules/sdk-coin-ltc/
145+
COPY --from=builder /tmp/bitgo/modules/sdk-coin-pearl /var/modules/sdk-coin-pearl/
145146
COPY --from=builder /tmp/bitgo/modules/sdk-coin-xlm /var/modules/sdk-coin-xlm/
146147
COPY --from=builder /tmp/bitgo/modules/sdk-coin-zec /var/modules/sdk-coin-zec/
147148

@@ -246,6 +247,7 @@ cd /var/modules/sdk-coin-ethw && yarn link && \
246247
cd /var/modules/sdk-coin-iota && yarn link && \
247248
cd /var/modules/sdk-coin-lnbtc && yarn link && \
248249
cd /var/modules/sdk-coin-ltc && yarn link && \
250+
cd /var/modules/sdk-coin-pearl && yarn link && \
249251
cd /var/modules/sdk-coin-xlm && yarn link && \
250252
cd /var/modules/sdk-coin-zec && yarn link
251253
#COPY_END
@@ -353,6 +355,7 @@ RUN cd /var/bitgo-express && \
353355
yarn link @bitgo/sdk-coin-iota && \
354356
yarn link @bitgo/sdk-coin-lnbtc && \
355357
yarn link @bitgo/sdk-coin-ltc && \
358+
yarn link @bitgo/sdk-coin-pearl && \
356359
yarn link @bitgo/sdk-coin-xlm && \
357360
yarn link @bitgo/sdk-coin-zec
358361
#LINK_END

modules/bitgo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
"@bitgo/sdk-coin-oas": "^2.7.26",
101101
"@bitgo/sdk-coin-opeth": "^18.10.26",
102102
"@bitgo/sdk-coin-osmo": "^3.7.26",
103+
"@bitgo/sdk-coin-pearl": "^1.0.0",
103104
"@bitgo/sdk-coin-polygon": "^21.7.26",
104105
"@bitgo/sdk-coin-polyx": "^2.0.4",
105106
"@bitgo/sdk-coin-rbtc": "^2.5.26",

modules/bitgo/src/v2/coinFactory.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { AdaToken } from '@bitgo/sdk-coin-ada';
55
import { AlgoToken } from '@bitgo/sdk-coin-algo';
66
import { CantonToken } from '@bitgo/sdk-coin-canton';
77
import { Bcha, Tbcha } from '@bitgo/sdk-coin-bcha';
8+
import { Pearl, Tpearl } from '@bitgo/sdk-coin-pearl';
89
import { HbarToken } from '@bitgo/sdk-coin-hbar';
910
import { Near, TNear, Nep141Token } from '@bitgo/sdk-coin-near';
1011
import { SolToken } from '@bitgo/sdk-coin-sol';
@@ -298,6 +299,7 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
298299
coinFactory.register('ofc', Ofc.createInstance);
299300
coinFactory.register('opeth', Opeth.createInstance);
300301
coinFactory.register('osmo', Osmo.createInstance);
302+
coinFactory.register('pearl', Pearl.createInstance);
301303
coinFactory.register('polygon', Polygon.createInstance);
302304
coinFactory.register('polyx', Polyx.createInstance);
303305
coinFactory.register('rbtc', Rbtc.createInstance);
@@ -363,6 +365,7 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
363365
coinFactory.register('toas', Toas.createInstance);
364366
coinFactory.register('topeth', Topeth.createInstance);
365367
coinFactory.register('tosmo', Tosmo.createInstance);
368+
coinFactory.register('tpearl', Tpearl.createInstance);
366369
coinFactory.register('tpolygon', Tpolygon.createInstance);
367370
coinFactory.register('tpolyx', Tpolyx.createInstance);
368371
coinFactory.register('trbtc', Trbtc.createInstance);
@@ -744,6 +747,8 @@ export function getCoinConstructor(coinName: string): CoinConstructor | undefine
744747
return Opeth.createInstance;
745748
case 'osmo':
746749
return Osmo.createInstance;
750+
case 'pearl':
751+
return Pearl.createInstance;
747752
case 'polygon':
748753
return Polygon.createInstance;
749754
case 'polyx':
@@ -874,6 +879,8 @@ export function getCoinConstructor(coinName: string): CoinConstructor | undefine
874879
return Topeth.createInstance;
875880
case 'tosmo':
876881
return Tosmo.createInstance;
882+
case 'tpearl':
883+
return Tpearl.createInstance;
877884
case 'tpolygon':
878885
return Tpolygon.createInstance;
879886
case 'tpolyx':

modules/bitgo/src/v2/coins/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import { Mon, Tmon, MonToken } from '@bitgo/sdk-coin-mon';
5050
import { Oas, Toas } from '@bitgo/sdk-coin-oas';
5151
import { Opeth, Topeth, OpethToken } from '@bitgo/sdk-coin-opeth';
5252
import { Osmo, Tosmo } from '@bitgo/sdk-coin-osmo';
53+
import { Pearl, Tpearl } from '@bitgo/sdk-coin-pearl';
5354
import { Polygon, PolygonToken, Tpolygon } from '@bitgo/sdk-coin-polygon';
5455
import { Polyx, Tpolyx, PolyxToken } from '@bitgo/sdk-coin-polyx';
5556
import { Rbtc, Trbtc } from '@bitgo/sdk-coin-rbtc';
@@ -127,6 +128,7 @@ export { Mon, Tmon, MonToken };
127128
export { Oas, Toas };
128129
export { Opeth, Topeth, OpethToken };
129130
export { Osmo, Tosmo };
131+
export { Pearl, Tpearl };
130132
export { Polygon, PolygonToken, Tpolygon };
131133
export { Polyx, Tpolyx, PolyxToken };
132134
export { Rbtc, Trbtc };

modules/bitgo/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@
209209
{
210210
"path": "../sdk-coin-osmo"
211211
},
212+
{
213+
"path": "../sdk-coin-pearl"
214+
},
212215
{
213216
"path": "../sdk-coin-polygon"
214217
},

0 commit comments

Comments
 (0)