Skip to content

Commit 0f2e49c

Browse files
feat(statics): add Boba Network (EVM) with ERC20 token support
Ticket: CECHO-305
1 parent 8fa5743 commit 0f2e49c

7 files changed

Lines changed: 83 additions & 0 deletions

File tree

modules/bitgo/test/v2/unit/keychains.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ describe('V2 Keychains', function () {
115115
n.asset !== UnderlyingAsset.ARCUSDC &&
116116
n.asset !== UnderlyingAsset.ZKSYNCERA &&
117117
n.asset !== UnderlyingAsset.HYPERLIQUID &&
118+
n.asset !== UnderlyingAsset.BOBAETH &&
118119
coinFamilyValues.includes(n.name)
119120
);
120121

modules/sdk-core/src/bitgo/environments.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,9 @@ const mainnetBase: EnvironmentTemplate = {
347347
h: {
348348
baseUrl: 'https://humanity-mainnet.explorer.alchemy.com/api',
349349
},
350+
boba: {
351+
baseUrl: 'https://api.routescan.io/v2/network/mainnet/evm/1/etherscan/api',
352+
},
350353
},
351354
icpNodeUrl: 'https://ic0.app',
352355
hyperLiquidNodeUrl: 'https://api.hyperliquid.xyz',
@@ -555,6 +558,9 @@ const testnetBase: EnvironmentTemplate = {
555558
h: {
556559
baseUrl: 'https://humanity-testnet.explorer.alchemy.com/api',
557560
},
561+
boba: {
562+
baseUrl: 'https://api.routescan.io/v2/network/testnet/evm/28882/etherscan/api',
563+
},
558564
},
559565
stxNodeUrl: 'https://api.testnet.hiro.so',
560566
vetNodeUrl: 'https://sync-testnet.vechain.org',

modules/statics/src/allCoinsAndTokens.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2378,6 +2378,40 @@ export const allCoinsAndTokens = [
23782378
CoinFeature.SUPPORTS_ERC20,
23792379
]
23802380
),
2381+
account(
2382+
'd055d442-03f1-4d24-b61c-5312e480e378',
2383+
'bobaeth',
2384+
'Boba Network',
2385+
Networks.main.boba,
2386+
18,
2387+
UnderlyingAsset.BOBAETH,
2388+
BaseUnit.ETH,
2389+
[
2390+
...EVM_FEATURES,
2391+
CoinFeature.SHARED_EVM_SIGNING,
2392+
CoinFeature.SHARED_EVM_SDK,
2393+
CoinFeature.EVM_COMPATIBLE_IMS,
2394+
CoinFeature.EVM_COMPATIBLE_UI,
2395+
CoinFeature.SUPPORTS_ERC20,
2396+
]
2397+
),
2398+
account(
2399+
'8fc7c710-e64e-4743-8ce7-03bcf71d7723',
2400+
'tbobaeth',
2401+
'Boba Network Testnet',
2402+
Networks.test.boba,
2403+
18,
2404+
UnderlyingAsset.BOBAETH,
2405+
BaseUnit.ETH,
2406+
[
2407+
...EVM_FEATURES,
2408+
CoinFeature.SHARED_EVM_SIGNING,
2409+
CoinFeature.SHARED_EVM_SDK,
2410+
CoinFeature.EVM_COMPATIBLE_IMS,
2411+
CoinFeature.EVM_COMPATIBLE_UI,
2412+
CoinFeature.SUPPORTS_ERC20,
2413+
]
2414+
),
23812415

23822416
erc721Token(
23832417
'a7604e03-7f40-41f0-8efa-2e7673ac2a9f',

modules/statics/src/base.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ export enum CoinFamily {
140140
ARCUSDC = 'arcusdc', // ARC network
141141
TEMPO = 'tempo', // Tempo Network
142142
UNIETH = 'unieth', // Unichain
143+
BOBAETH = 'bobaeth', // BOBA Network
143144
}
144145

145146
/**
@@ -2137,6 +2138,7 @@ export enum UnderlyingAsset {
21372138
ZMT = 'zmt',
21382139
ZOOM = 'zoom',
21392140
ZRO = 'zro',
2141+
BOBAETH = 'bobaeth',
21402142
'ZRO-0x320' = 'zro-0x320',
21412143
'ZRO-0xFCF' = 'zro-0xfcf',
21422144
'ZRO-0xE5C' = 'zro-0xe5c',

modules/statics/src/coins/ofcCoins.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,22 @@ export const ofcCoins = [
455455
),
456456
ofc('aa7e956f-2d59-4bf6-aba6-2d51bd298150', 'ofcip', 'Story', 18, UnderlyingAsset.IP, CoinKind.CRYPTO),
457457
tofc('773b02f6-32ea-493a-bca5-13d93cb0afff', 'ofctip', 'Story Testnet', 18, UnderlyingAsset.IP, CoinKind.CRYPTO),
458+
ofc(
459+
'9fd3e1b0-2e67-46c6-ab3b-a9942533b9d6',
460+
'ofcbobaeth',
461+
'Boba Network',
462+
18,
463+
UnderlyingAsset.BOBAETH,
464+
CoinKind.CRYPTO
465+
),
466+
tofc(
467+
'14c7407a-0daa-4c3d-b438-8a9d2e60cc29',
468+
'ofctbobaeth',
469+
'Boba Network Testnet',
470+
18,
471+
UnderlyingAsset.BOBAETH,
472+
CoinKind.CRYPTO
473+
),
458474
ofc(
459475
'8b50bd47-54d4-456d-a141-09f8e90df850',
460476
'ofczksyncera',

modules/statics/src/networks.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2553,6 +2553,26 @@ class TempoTestnet extends Testnet implements EthereumNetwork {
25532553
tokenOperationHashPrefix = '42431';
25542554
}
25552555

2556+
class Boba extends Mainnet implements EthereumNetwork {
2557+
name = 'Boba';
2558+
family = CoinFamily.BOBAETH;
2559+
explorerUrl = 'https://bobascan.com/blockchain/transactions';
2560+
accountExplorerUrl = 'https://bobascan.com/blockchain';
2561+
chainId = 288;
2562+
nativeCoinOperationHashPrefix = '288';
2563+
tokenOperationHashPrefix = '288';
2564+
}
2565+
2566+
class BobaTestnet extends Testnet implements EthereumNetwork {
2567+
name = 'Boba Testnet';
2568+
family = CoinFamily.BOBAETH;
2569+
explorerUrl = 'https://bobascan.com/blockchain/transactions';
2570+
accountExplorerUrl = 'https://bobascan.com/blockchain';
2571+
chainId = 288;
2572+
nativeCoinOperationHashPrefix = '288';
2573+
tokenOperationHashPrefix = '288';
2574+
}
2575+
25562576
/**
25572577
* Constructor options for {@link DynamicNetwork}.
25582578
* Accepts string-typed `type` and `family` so AMS JSON can be passed directly.
@@ -2763,6 +2783,7 @@ export const Networks = {
27632783
zkSync: Object.freeze(new ZkSync()),
27642784
zkSyncEra: Object.freeze(new ZkSyncEra()),
27652785
unieth: Object.freeze(new Unieth()),
2786+
boba: Object.freeze(new Boba()),
27662787
},
27672788
test: {
27682789
ada: Object.freeze(new AdaTestnet()),
@@ -2889,6 +2910,7 @@ export const Networks = {
28892910
zkSync: Object.freeze(new ZkSyncTestnet()),
28902911
zkSyncEra: Object.freeze(new ZkSyncEraTestnet()),
28912912
unieth: Object.freeze(new UniethTestnet()),
2913+
boba: Object.freeze(new BobaTestnet()),
28922914
},
28932915
};
28942916

modules/statics/test/unit/fixtures/expectedColdFeatures.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export const expectedColdFeatures = {
8181
'bera',
8282
'baseeth',
8383
'bld',
84+
'bobaeth',
8485
'bsc',
8586
'canton',
8687
'chiliz',
@@ -156,6 +157,7 @@ export const expectedColdFeatures = {
156157
'tbera',
157158
'tbaseeth',
158159
'tbld',
160+
'tbobaeth',
159161
'tbsc',
160162
'tcanton',
161163
'tchiliz',

0 commit comments

Comments
 (0)