From 494066fa94e362f09d27e2274178da5b89653087 Mon Sep 17 00:00:00 2001 From: Venkat-Annavazzala Date: Mon, 21 Jul 2025 13:35:05 +0530 Subject: [PATCH] feat(statics): add kaia chain configs Ticket: WIN-6182 --- modules/bitgo/test/v2/unit/keychains.ts | 1 + modules/sdk-core/src/bitgo/environments.ts | 6 ++++++ modules/statics/src/base.ts | 2 ++ modules/statics/src/coins.ts | 20 +++++++++++++++++++ modules/statics/src/networks.ts | 20 +++++++++++++++++++ .../unit/fixtures/expectedColdFeatures.ts | 2 ++ 6 files changed, 51 insertions(+) diff --git a/modules/bitgo/test/v2/unit/keychains.ts b/modules/bitgo/test/v2/unit/keychains.ts index ed9eca9158..43bd6c7301 100644 --- a/modules/bitgo/test/v2/unit/keychains.ts +++ b/modules/bitgo/test/v2/unit/keychains.ts @@ -91,6 +91,7 @@ describe('V2 Keychains', function () { n.asset !== UnderlyingAsset.ASI && n.asset !== UnderlyingAsset.SONIC && n.asset !== UnderlyingAsset.SEIEVM && + n.asset !== UnderlyingAsset.KAIA && coinFamilyValues.includes(n.name) ); diff --git a/modules/sdk-core/src/bitgo/environments.ts b/modules/sdk-core/src/bitgo/environments.ts index 83a72d820a..e083cf3623 100644 --- a/modules/sdk-core/src/bitgo/environments.ts +++ b/modules/sdk-core/src/bitgo/environments.ts @@ -221,6 +221,9 @@ const mainnetBase: EnvironmentTemplate = { seievm: { baseUrl: 'https://evm-rpc.sei-apis.com', }, + kaia: { + baseUrl: 'https://public-en.node.kaia.io', + }, }, icpNodeUrl: 'https://ic0.app', worldExplorerBaseUrl: 'https://worldscan.org/', @@ -315,6 +318,9 @@ const testnetBase: EnvironmentTemplate = { seievm: { baseUrl: 'https://evm-rpc-testnet.sei-apis.com', }, + kaia: { + baseUrl: 'https://public-en-kairos.node.kaia.io', + }, }, stxNodeUrl: 'https://api.testnet.hiro.so', vetNodeUrl: 'https://rpc-testnet.vechain.energy', diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 5bdc5ccd08..1bc2bc0637 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -61,6 +61,7 @@ export enum CoinFamily { INITIA = 'initia', INJECTIVE = 'injective', ISLM = 'islm', + KAIA = 'kaia', KAVA = 'kava', LNBTC = 'lnbtc', LTC = 'ltc', @@ -479,6 +480,7 @@ export enum UnderlyingAsset { INITIA = 'initia', INJECTIVE = 'injective', ISLM = 'islm', + KAIA = 'kaia', KAVA = 'kava', LNBTC = 'lnbtc', LTC = 'ltc', diff --git a/modules/statics/src/coins.ts b/modules/statics/src/coins.ts index e4ad1eb870..e354c5b489 100644 --- a/modules/statics/src/coins.ts +++ b/modules/statics/src/coins.ts @@ -1399,6 +1399,26 @@ export const coins = CoinMap.fromCoins([ BaseUnit.ETH, [...EVM_FEATURES, CoinFeature.SHARED_EVM_SIGNING, CoinFeature.SHARED_EVM_SDK] ), + account( + 'd92cbc11-0135-4304-bc10-7cdf82543880', + 'kaia', + 'Kaia', + Networks.main.kaia, + 18, + UnderlyingAsset.KAIA, + BaseUnit.ETH, + [...EVM_FEATURES, CoinFeature.SHARED_EVM_SIGNING, CoinFeature.SHARED_EVM_SDK] + ), + account( + 'f6be6f3d-ebac-49fc-8c73-e5b1fc115778', + 'tkaia', + 'Kaia Testnet', + Networks.test.kaia, + 18, + UnderlyingAsset.KAIA, + BaseUnit.ETH, + [...EVM_FEATURES, CoinFeature.SHARED_EVM_SIGNING, CoinFeature.SHARED_EVM_SDK] + ), account( '251b78df-90c5-4ff5-b07a-8cc23f27c5ff', 'soneium', diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index cf1984c729..186a1b3e20 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -1354,6 +1354,24 @@ class SonicTestnet extends Testnet implements EthereumNetwork { nativeCoinOperationHashPrefix = '57054'; } +class Kaia extends Mainnet implements EthereumNetwork { + name = 'Kaia'; + family = CoinFamily.KAIA; + explorerUrl = 'https://kaiascan.io/tx/'; + accountExplorerUrl = 'https://kaiascan.io/address/'; + chainId = 8217; + nativeCoinOperationHashPrefix = '8217'; +} + +class KaiaTestnet extends Testnet implements EthereumNetwork { + name = 'KaiaTestnet'; + family = CoinFamily.KAIA; + explorerUrl = 'https://kairos.kaiascan.io/tx/'; + accountExplorerUrl = 'https://kairos.kaiascan.io/address/'; + chainId = 1001; + nativeCoinOperationHashPrefix = '1001'; +} + class Xdc extends Mainnet implements EthereumNetwork { name = 'XdcChain'; family = CoinFamily.XDC; @@ -1674,6 +1692,7 @@ export const Networks = { initia: Object.freeze(new Initia()), injective: Object.freeze(new Injective()), islm: Object.freeze(new Islm()), + kaia: Object.freeze(new Kaia()), kava: Object.freeze(new Kava()), lnbtc: Object.freeze(new LightningBitcoin()), litecoin: Object.freeze(new Litecoin()), @@ -1788,6 +1807,7 @@ export const Networks = { stt: Object.freeze(new SomniaTestnet()), soneium: Object.freeze(new SoneiumTestnet()), sonic: Object.freeze(new SonicTestnet()), + kaia: Object.freeze(new KaiaTestnet()), susd: Object.freeze(new SUSDTestnet()), coreum: Object.freeze(new CoreumTestnet()), tao: Object.freeze(new BittensorTestnet()), diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index 85df4fbcfa..01f27bdf61 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -73,6 +73,7 @@ export const expectedColdFeatures = { 'initia', 'islm', 'injective', + 'kaia', 'kava', 'mantra', 'mon', @@ -123,6 +124,7 @@ export const expectedColdFeatures = { 'tinitia', 'tislm', 'tinjective', + 'tkaia', 'tkava', 'tmantra', 'tnear',