diff --git a/modules/sdk-core/src/bitgo/environments.ts b/modules/sdk-core/src/bitgo/environments.ts index 2bda96ea65..29682aeb48 100644 --- a/modules/sdk-core/src/bitgo/environments.ts +++ b/modules/sdk-core/src/bitgo/environments.ts @@ -236,6 +236,9 @@ const mainnetBase: EnvironmentTemplate = { kaia: { baseUrl: 'https://public-en.node.kaia.io', }, + kavaevm: { + baseUrl: 'https://api.verify.mintscan.io/evm/api', + }, irys: { baseUrl: 'https://testnet-rpc.irys.xyz/v1/execution-rpc', //TODO: WIN-6191 add mainnet url when available }, @@ -361,6 +364,9 @@ const testnetBase: EnvironmentTemplate = { kaia: { baseUrl: 'https://public-en-kairos.node.kaia.io', }, + kavaevm: { + baseUrl: 'https://api.verify.mintscan.io/evm/api', + }, irys: { baseUrl: 'https://testnet-rpc.irys.xyz/v1/execution-rpc', }, diff --git a/modules/statics/src/allCoinsAndTokens.ts b/modules/statics/src/allCoinsAndTokens.ts index ce67e49db7..19e99354ba 100644 --- a/modules/statics/src/allCoinsAndTokens.ts +++ b/modules/statics/src/allCoinsAndTokens.ts @@ -84,6 +84,7 @@ import { ETH_FEATURES, ETH_FEATURES_WITH_STAKING_AND_MMI, EVM_FEATURES, + EVM_NON_EIP1559_FEATURES, FLR_FEATURES, GENERIC_TOKEN_FEATURES, HBAR_FEATURES, @@ -1676,6 +1677,40 @@ export const allCoinsAndTokens = [ CoinFeature.EVM_COMPATIBLE_UI, ] ), + account( + '764a4e96-a754-4866-b40a-8fc24ca10cc1', + 'kavaevm', + 'Kava EVM', + Networks.main.kavaevm, + 18, + UnderlyingAsset.KAVAEVM, + BaseUnit.ETH, + [ + ...EVM_NON_EIP1559_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_COMPATIBLE_WP, + ] + ), + account( + 'a443481c-9d7e-4352-a1f4-77ea9c08e4fd', + 'tkavaevm', + 'Testnet Kava EVM', + Networks.test.kavaevm, + 18, + UnderlyingAsset.KAVAEVM, + BaseUnit.ETH, + [ + ...EVM_NON_EIP1559_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_COMPATIBLE_WP, + ] + ), account( 'd92cbc11-0135-4304-bc10-7cdf82543880', 'kaia', diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 15022aa276..c1170ef467 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -66,6 +66,7 @@ export enum CoinFamily { ISLM = 'islm', KAIA = 'kaia', KAVA = 'kava', + KAVAEVM = 'kavaevm', LNBTC = 'lnbtc', LTC = 'ltc', MANTRA = 'mantra', @@ -533,6 +534,7 @@ export enum UnderlyingAsset { ISLM = 'islm', KAIA = 'kaia', KAVA = 'kava', + KAVAEVM = 'kavaevm', LNBTC = 'lnbtc', LTC = 'ltc', LINEAETH = 'lineaeth', diff --git a/modules/statics/src/coinFeatures.ts b/modules/statics/src/coinFeatures.ts index bc67334a9a..fa4759c224 100644 --- a/modules/statics/src/coinFeatures.ts +++ b/modules/statics/src/coinFeatures.ts @@ -620,10 +620,9 @@ export const VET_FEATURES = [ ]; export const VET_TOKEN_FEATURES = VET_FEATURES.filter((feature) => feature !== CoinFeature.SUPPORTS_TOKENS); -export const XDC_FEATURES = [ - ...EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559), - CoinFeature.ERC20_BULK_TRANSACTION, -]; +export const EVM_NON_EIP1559_FEATURES = [...EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559)]; + +export const XDC_FEATURES = [...EVM_NON_EIP1559_FEATURES, CoinFeature.ERC20_BULK_TRANSACTION]; export const SGB_FEATURES = [...EVM_FEATURES, CoinFeature.ERC20_BULK_TRANSACTION]; diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index 58b5d999cc..60ef6aad6c 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -1423,6 +1423,24 @@ class HypeEVM extends Mainnet implements EthereumNetwork { nativeCoinOperationHashPrefix = '999'; } +class KavaEVMTestnet extends Testnet implements EthereumNetwork { + name = 'KavaEVMTestnet'; + family = CoinFamily.KAVAEVM; + explorerUrl = 'https://testnet.kavascan.com/tx/'; + accountExplorerUrl = 'https://testnet.kavascan.com/address/'; + chainId = 2221; + nativeCoinOperationHashPrefix = '2221'; +} + +class KavaEVM extends Mainnet implements EthereumNetwork { + name = 'KavaEVM'; + family = CoinFamily.KAVAEVM; + explorerUrl = 'https://kavascan.com/tx/'; + accountExplorerUrl = 'https://kavascan.com/address/'; + chainId = 2222; + nativeCoinOperationHashPrefix = '2222'; +} + class LineaETH extends Mainnet implements EthereumNetwork { name = 'Linea Ethereum Testnet'; family = CoinFamily.LINEAETH; @@ -1940,6 +1958,7 @@ export const Networks = { islm: Object.freeze(new Islm()), kaia: Object.freeze(new Kaia()), kava: Object.freeze(new Kava()), + kavaevm: Object.freeze(new KavaEVM()), lnbtc: Object.freeze(new LightningBitcoin()), litecoin: Object.freeze(new Litecoin()), mon: Object.freeze(new Monad()), @@ -2032,6 +2051,7 @@ export const Networks = { irys: Object.freeze(new IrysTestnet()), islm: Object.freeze(new IslmTestnet()), kava: Object.freeze(new KavaTestnet()), + kavaevm: Object.freeze(new KavaEVMTestnet()), kovan: Object.freeze(new Kovan()), goerli: Object.freeze(new Goerli()), holesky: Object.freeze(new Holesky()), diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index a5d6c4a71d..ad3dc3c90b 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -104,6 +104,7 @@ export const expectedColdFeatures = { 'hypeevm', 'lineaeth', 'xpl', + 'kavaevm', 'xdc', 'zeta', 'tada', @@ -156,6 +157,7 @@ export const expectedColdFeatures = { 'tvet', 'txdc', 'txpl', + 'tkavaevm', 'twemix', 'tzeta', 'toas',