Skip to content

Commit 2454c92

Browse files
feat(sdk-coin-starknet): scaffold @bitgo/sdk-coin-starknet package
Skeleton sdk-coin-starknet module for Starknet L2. - New package modules/sdk-coin-starknet with Starknet/Tstarknet coin classes extending BaseCoin; ECDSA TSS (secp256k1, shouldHash=false deferred to CECHO-926) - Statics: CoinFamily.STARKNET, UnderlyingAsset.STARKNET (separate from existing STRK ERC-20), BaseUnit.STARKNET='fri', StarknetNetwork / StarknetTestnet classes, allCoinsAndTokens entries (18 decimals, secp256k1), STARKNET_FEATURES - Monorepo wiring: bitgo coinFactory, coins/index, tsconfigs, Dockerfile Builders, address derivation, signing, and RPC client land in CECHO-925/926/927. CECHO-924 TICKET: CECHO-924
1 parent c20d504 commit 2454c92

26 files changed

Lines changed: 376 additions & 0 deletions

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ COPY --from=builder /tmp/bitgo/modules/sdk-coin-ethw /var/modules/sdk-coin-ethw/
140140
COPY --from=builder /tmp/bitgo/modules/sdk-coin-iota /var/modules/sdk-coin-iota/
141141
COPY --from=builder /tmp/bitgo/modules/sdk-coin-lnbtc /var/modules/sdk-coin-lnbtc/
142142
COPY --from=builder /tmp/bitgo/modules/sdk-coin-ltc /var/modules/sdk-coin-ltc/
143+
COPY --from=builder /tmp/bitgo/modules/sdk-coin-starknet /var/modules/sdk-coin-starknet/
143144
COPY --from=builder /tmp/bitgo/modules/sdk-coin-xlm /var/modules/sdk-coin-xlm/
144145
COPY --from=builder /tmp/bitgo/modules/sdk-coin-zec /var/modules/sdk-coin-zec/
145146

@@ -242,6 +243,7 @@ cd /var/modules/sdk-coin-ethw && yarn link && \
242243
cd /var/modules/sdk-coin-iota && yarn link && \
243244
cd /var/modules/sdk-coin-lnbtc && yarn link && \
244245
cd /var/modules/sdk-coin-ltc && yarn link && \
246+
cd /var/modules/sdk-coin-starknet && yarn link && \
245247
cd /var/modules/sdk-coin-xlm && yarn link && \
246248
cd /var/modules/sdk-coin-zec && yarn link
247249
#COPY_END
@@ -347,6 +349,7 @@ RUN cd /var/bitgo-express && \
347349
yarn link @bitgo/sdk-coin-iota && \
348350
yarn link @bitgo/sdk-coin-lnbtc && \
349351
yarn link @bitgo/sdk-coin-ltc && \
352+
yarn link @bitgo/sdk-coin-starknet && \
350353
yarn link @bitgo/sdk-coin-xlm && \
351354
yarn link @bitgo/sdk-coin-zec
352355
#LINK_END

modules/bitgo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@
107107
"@bitgo/sdk-coin-sgb": "^1.8.7",
108108
"@bitgo/sdk-coin-sol": "^7.19.2",
109109
"@bitgo/sdk-coin-soneium": "^1.10.7",
110+
"@bitgo/sdk-coin-starknet": "^1.0.0",
110111
"@bitgo/sdk-coin-stt": "^1.6.7",
111112
"@bitgo/sdk-coin-stx": "^3.12.7",
112113
"@bitgo/sdk-coin-sui": "^5.23.6",

modules/bitgo/src/v2/coinFactory.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ import {
127127
Sol,
128128
Soneium,
129129
SoneiumToken,
130+
Starknet,
130131
StellarToken,
131132
Stx,
132133
Sui,
@@ -298,6 +299,7 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
298299
coinFactory.register('sgb', Sgb.createInstance);
299300
coinFactory.register('sol', Sol.createInstance);
300301
coinFactory.register('soneium', Soneium.createInstance);
302+
coinFactory.register('starknet', Starknet.createInstance);
301303
coinFactory.register('stx', Stx.createInstance);
302304
coinFactory.register('sui', Sui.createInstance);
303305
coinFactory.register('susd', Susd.createInstance);
@@ -363,6 +365,7 @@ export function registerCoinConstructors(coinFactory: CoinFactory, coinMap: Coin
363365
coinFactory.register('tsei', Tsei.createInstance);
364366
coinFactory.register('tsol', Tsol.createInstance);
365367
coinFactory.register('tsoneium', Tsoneium.createInstance);
368+
coinFactory.register('tstarknet', Starknet.createInstance);
366369
coinFactory.register('tstx', Tstx.createInstance);
367370
coinFactory.register('tstt', Tstt.createInstance);
368371
coinFactory.register('tsui', Tsui.createInstance);
@@ -735,6 +738,8 @@ export function getCoinConstructor(coinName: string): CoinConstructor | undefine
735738
return Sol.createInstance;
736739
case 'soneium':
737740
return Soneium.createInstance;
741+
case 'starknet':
742+
return Starknet.createInstance;
738743
case 'stx':
739744
return Stx.createInstance;
740745
case 'sui':
@@ -865,6 +870,8 @@ export function getCoinConstructor(coinName: string): CoinConstructor | undefine
865870
return Tsol.createInstance;
866871
case 'tsoneium':
867872
return Tsoneium.createInstance;
873+
case 'tstarknet':
874+
return Starknet.createInstance;
868875
case 'tstx':
869876
return Tstx.createInstance;
870877
case 'tstt':

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import { Rbtc, Trbtc } from '@bitgo/sdk-coin-rbtc';
5656
import { Rune, Trune } from '@bitgo/sdk-coin-rune';
5757
import { Sei, Tsei } from '@bitgo/sdk-coin-sei';
5858
import { Soneium, Tsoneium, SoneiumToken } from '@bitgo/sdk-coin-soneium';
59+
import { Starknet } from '@bitgo/sdk-coin-starknet';
5960
import { Tstt } from '@bitgo/sdk-coin-stt';
6061
import { Sgb, Tsgb } from '@bitgo/sdk-coin-sgb';
6162
import { Sol, Tsol } from '@bitgo/sdk-coin-sol';
@@ -133,6 +134,7 @@ export { Rune, Trune };
133134
export { Sgb, Tsgb };
134135
export { Sol, Tsol };
135136
export { Soneium, Tsoneium, SoneiumToken };
137+
export { Starknet };
136138
export { Tstt };
137139
export { Stx, Tstx, Sip10Token };
138140
export { Sui, Tsui, SuiToken };

modules/bitgo/test/browser/browser.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ describe('Coins', () => {
6161
MonToken: 1,
6262
XdcToken: 1,
6363
JettonToken: 1,
64+
Starknet: 1,
6465
Tip20Token: 1,
6566
Fiat: 1,
6667
allFiatCoins: 1,

modules/bitgo/tsconfig.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,9 @@
230230
{
231231
"path": "../sdk-coin-sol"
232232
},
233+
{
234+
"path": "../sdk-coin-starknet"
235+
},
233236
{
234237
"path": "../sdk-coin-stx"
235238
},
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
.idea
3+
public
4+
dist
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules/
2+
.idea/
3+
dist/
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
require: 'tsx'
2+
timeout: '60000'
3+
reporter: 'min'
4+
reporter-option:
5+
- 'cdn=true'
6+
- 'json=false'
7+
exit: true
8+
spec: ['test/unit/**/*.ts']
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
!dist/
2+
dist/test/
3+
dist/tsconfig.tsbuildinfo
4+
.idea/
5+
.prettierrc.yml
6+
tsconfig.json
7+
src/
8+
test/
9+
scripts/
10+
.nyc_output
11+
CODEOWNERS
12+
node_modules/
13+
.prettierignore
14+
.mocharc.js

0 commit comments

Comments
 (0)