Skip to content

Commit abda2e3

Browse files
authored
Merge pull request #5347 from BitGo/WIN-4236
feat(sdk-coin-icp): added ICP to statics
2 parents 3b7df67 + 78c2bbe commit abda2e3

File tree

4 files changed

+50
-0
lines changed

4 files changed

+50
-0
lines changed

modules/statics/src/base.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export enum CoinFamily {
5151
FIAT = 'fiat',
5252
HASH = 'hash', // Provenance
5353
HBAR = 'hbar',
54+
ICP = 'icp',
5455
INJECTIVE = 'injective',
5556
ISLM = 'islm',
5657
KAVA = 'kava',
@@ -360,6 +361,7 @@ export enum UnderlyingAsset {
360361
GTC = 'gtc',
361362
HASH = 'hash', // Provenance
362363
HBAR = 'hbar', // Hedera main coin
364+
ICP = 'icp',
363365
INJECTIVE = 'injective',
364366
ISLM = 'islm',
365367
KAVA = 'kava',
@@ -2457,6 +2459,7 @@ export enum BaseUnit {
24572459
ISLM = 'aISLM',
24582460
RUNE = 'rune',
24592461
TAO = 'rao',
2462+
ICP = 'e8s',
24602463
}
24612464

24622465
export interface BaseCoinConstructorOptions {

modules/statics/src/coins.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,11 +426,21 @@ const APT_FEATURES = [
426426
...AccountCoin.DEFAULT_FEATURES,
427427
CoinFeature.TSS,
428428
CoinFeature.TSS_COLD,
429+
CoinFeature.MPCV2,
429430
CoinFeature.STAKING,
430431
CoinFeature.BULK_TRANSACTION,
431432
CoinFeature.BULK_STAKING_TRANSACTION,
432433
CoinFeature.SUPPORTS_TOKENS,
433434
];
435+
436+
const ICP_FEATURES = [
437+
...AccountCoin.DEFAULT_FEATURES,
438+
CoinFeature.TSS,
439+
CoinFeature.TSS_COLD,
440+
CoinFeature.MPCV2,
441+
CoinFeature.SUPPORTS_TOKENS,
442+
];
443+
434444
const TAO_FEATURES = [...AccountCoin.DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, CoinFeature.STAKING];
435445

436446
const ETH_FEATURES_WITH_FRANKFURT = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT];
@@ -1443,6 +1453,28 @@ export const coins = CoinMap.fromCoins([
14431453
TAO_FEATURES,
14441454
KeyCurve.Ed25519
14451455
),
1456+
account(
1457+
'35254b6a-5370-4e22-844b-be504b510103',
1458+
'icp',
1459+
'Internet Computer',
1460+
Networks.main.icp,
1461+
8,
1462+
UnderlyingAsset.ICP,
1463+
BaseUnit.ICP,
1464+
ICP_FEATURES,
1465+
KeyCurve.Ed25519
1466+
),
1467+
account(
1468+
'ce572773-26c2-4038-a96d-26649a9a96df',
1469+
'ticp',
1470+
'Testnet Internet Computer',
1471+
Networks.test.icp,
1472+
8,
1473+
UnderlyingAsset.ICP,
1474+
BaseUnit.ICP,
1475+
ICP_FEATURES,
1476+
KeyCurve.Ed25519
1477+
),
14461478
erc20CompatibleAccountCoin(
14471479
'bfae821b-cf3a-4190-b1a8-a54af51d730e',
14481480
'celo',

modules/statics/src/networks.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,17 @@ class AptTestnet extends Testnet implements AccountNetwork {
163163
explorerUrl = 'https://explorer.aptoslabs.com/?network=testnet';
164164
}
165165

166+
class Icp extends Mainnet implements AccountNetwork {
167+
name = 'Internet Computer';
168+
family = CoinFamily.ICP;
169+
explorerUrl = 'https://www.icpexplorer.org'; //TODO(WIN-4242): update to the prod rosetta explorer url
170+
}
171+
172+
class IcpTestnet extends Testnet implements AccountNetwork {
173+
name = 'Testnet Internet Computer';
174+
family = CoinFamily.ICP;
175+
explorerUrl = 'https://www.icpexplorer.org'; //TODO(WIN-4242): update to the test rosetta explorer url
176+
}
166177
class Arbitrum extends Mainnet implements EthereumNetwork {
167178
name = 'Arbitrum';
168179
family = CoinFamily.ARBETH;
@@ -1188,6 +1199,7 @@ export const Networks = {
11881199
fiat: Object.freeze(new Fiat()),
11891200
hash: Object.freeze(new Hash()),
11901201
hedera: Object.freeze(new Hedera()),
1202+
icp: Object.freeze(new Icp()),
11911203
injective: Object.freeze(new Injective()),
11921204
islm: Object.freeze(new Islm()),
11931205
kava: Object.freeze(new Kava()),
@@ -1249,6 +1261,7 @@ export const Networks = {
12491261
ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
12501262
hash: Object.freeze(new HashTestnet()),
12511263
hedera: Object.freeze(new HederaTestnet()),
1264+
icp: Object.freeze(new IcpTestnet()),
12521265
injective: Object.freeze(new InjectiveTestnet()),
12531266
islm: Object.freeze(new IslmTestnet()),
12541267
kava: Object.freeze(new KavaTestnet()),

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export const expectedColdFeatures = {
6767
'coreum',
6868
'dot',
6969
'hash',
70+
'icp',
7071
'islm',
7172
'injective',
7273
'kava',
@@ -90,6 +91,7 @@ export const expectedColdFeatures = {
9091
'thash',
9192
'thorchain:rune',
9293
'tia',
94+
'ticp',
9395
'tislm',
9496
'tinjective',
9597
'tkava',

0 commit comments

Comments
 (0)