Skip to content

Commit fce2a52

Browse files
committed
feat(statics): added ICP to statics
TICKET: WIN-4236
1 parent 8c5559e commit fce2a52

File tree

4 files changed

+47
-0
lines changed

4 files changed

+47
-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',
@@ -359,6 +360,7 @@ export enum UnderlyingAsset {
359360
GTC = 'gtc',
360361
HASH = 'hash', // Provenance
361362
HBAR = 'hbar', // Hedera main coin
363+
ICP = 'icp',
362364
INJECTIVE = 'injective',
363365
ISLM = 'islm',
364366
KAVA = 'kava',
@@ -2454,6 +2456,7 @@ export enum BaseUnit {
24542456
TCOREUM = 'utestcore', // Coreum testnet uses different name for native coin
24552457
ISLM = 'aISLM',
24562458
RUNE = 'rune',
2459+
ICP = 'e8s',
24572460
}
24582461

24592462
export interface BaseCoinConstructorOptions {

modules/statics/src/coins.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,11 +425,18 @@ const APT_FEATURES = [
425425
...AccountCoin.DEFAULT_FEATURES,
426426
CoinFeature.TSS,
427427
CoinFeature.TSS_COLD,
428+
CoinFeature.MPCV2,
428429
CoinFeature.STAKING,
429430
CoinFeature.BULK_TRANSACTION,
430431
CoinFeature.BULK_STAKING_TRANSACTION,
431432
CoinFeature.SUPPORTS_TOKENS,
432433
];
434+
const ICP_FEATURES = [
435+
...AccountCoin.DEFAULT_FEATURES,
436+
CoinFeature.TSS,
437+
CoinFeature.TSS_COLD,
438+
CoinFeature.SUPPORTS_TOKENS,
439+
];
433440
const ETH_FEATURES_WITH_FRANKFURT = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT];
434441
const ETH_FEATURES_WITH_FRANKFURT_GERMANY = [...ETH_FEATURES_WITH_FRANKFURT, CoinFeature.CUSTODY_BITGO_GERMANY];
435442
const SOL_TOKEN_FEATURES_WITH_FRANKFURT = [
@@ -1418,6 +1425,28 @@ export const coins = CoinMap.fromCoins([
14181425
APT_FEATURES,
14191426
KeyCurve.Ed25519
14201427
),
1428+
account(
1429+
'35254b6a-5370-4e22-844b-be504b510103',
1430+
'icp',
1431+
'Internet Computer',
1432+
Networks.main.icp,
1433+
8,
1434+
UnderlyingAsset.ICP,
1435+
BaseUnit.ICP,
1436+
ICP_FEATURES,
1437+
KeyCurve.Ed25519
1438+
),
1439+
account(
1440+
'ce572773-26c2-4038-a96d-26649a9a96df',
1441+
'ticp',
1442+
'Testnet Internet Computer',
1443+
Networks.test.icp,
1444+
8,
1445+
UnderlyingAsset.ICP,
1446+
BaseUnit.ICP,
1447+
ICP_FEATURES,
1448+
KeyCurve.Ed25519
1449+
),
14211450
erc20CompatibleAccountCoin(
14221451
'bfae821b-cf3a-4190-b1a8-a54af51d730e',
14231452
'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;
@@ -1176,6 +1187,7 @@ export const Networks = {
11761187
fiat: Object.freeze(new Fiat()),
11771188
hash: Object.freeze(new Hash()),
11781189
hedera: Object.freeze(new Hedera()),
1190+
icp: Object.freeze(new Icp()),
11791191
injective: Object.freeze(new Injective()),
11801192
islm: Object.freeze(new Islm()),
11811193
kava: Object.freeze(new Kava()),
@@ -1236,6 +1248,7 @@ export const Networks = {
12361248
ethereumClassicTestnet: Object.freeze(new EthereumClassicTestnet()),
12371249
hash: Object.freeze(new HashTestnet()),
12381250
hedera: Object.freeze(new HederaTestnet()),
1251+
icp: Object.freeze(new IcpTestnet()),
12391252
injective: Object.freeze(new InjectiveTestnet()),
12401253
islm: Object.freeze(new IslmTestnet()),
12411254
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',
@@ -89,6 +90,7 @@ export const expectedColdFeatures = {
8990
'thash',
9091
'thorchain:rune',
9192
'tia',
93+
'ticp',
9294
'tislm',
9395
'tinjective',
9496
'tkava',

0 commit comments

Comments
 (0)