diff --git a/modules/sdk-core/src/bitgo/environments.ts b/modules/sdk-core/src/bitgo/environments.ts index b719e085fa..a990939c18 100644 --- a/modules/sdk-core/src/bitgo/environments.ts +++ b/modules/sdk-core/src/bitgo/environments.ts @@ -221,6 +221,9 @@ const mainnetBase: EnvironmentTemplate = { chiliz: { baseUrl: 'https://api.chiliscan.com', }, + codex: { + baseUrl: 'https://explorer.codex.xyz/api', + }, phrs: { baseUrl: 'https://testnet.dplabs-internal.com', // TODO: WIN-5787 add mainnet url when its available }, @@ -409,6 +412,9 @@ const testnetBase: EnvironmentTemplate = { chiliz: { baseUrl: 'https://api.testnet.chiliscan.com', }, + codex: { + baseUrl: 'https://explorer.codex-stg.xyz/api', + }, phrs: { baseUrl: 'https://testnet.dplabs-internal.com', // Wrong value, Not available yet }, diff --git a/modules/statics/src/allCoinsAndTokens.ts b/modules/statics/src/allCoinsAndTokens.ts index 7cd318aab4..840a1cc61f 100644 --- a/modules/statics/src/allCoinsAndTokens.ts +++ b/modules/statics/src/allCoinsAndTokens.ts @@ -2931,6 +2931,42 @@ export const allCoinsAndTokens = [ CoinFeature.SUPPORTS_ERC20, ] ), + account( + 'e10b89f6-3d14-4d85-a05a-da53d6e60489', + 'codex', + 'Codex', + Networks.main.codex, + 18, + UnderlyingAsset.CODEX, + BaseUnit.ETH, + [ + ...EVM_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_COMPATIBLE_WP, + CoinFeature.SUPPORTS_ERC20, + ] + ), + account( + '3fe052be-5dc0-42b1-a5a8-63406296d06f', + 'tcodex', + 'Testnet Codex', + Networks.test.codex, + 18, + UnderlyingAsset.CODEX, + BaseUnit.ETH, + [ + ...EVM_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_COMPATIBLE_WP, + CoinFeature.SUPPORTS_ERC20, + ] + ), erc20Token( '16c438c1-714a-4ad7-bdb1-fb8d2575c466', 'tbaseeth:usdc', diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index c3c360d4e4..f2151299cb 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -42,6 +42,7 @@ export enum CoinFamily { CANTON = 'canton', CELO = 'celo', CHILIZ = 'chiliz', // Chiliz Chain + CODEX = 'codex', COREDAO = 'coredao', COREUM = 'coreum', CRONOS = 'cronos', @@ -570,6 +571,7 @@ export enum UnderlyingAsset { DOT = 'dot', CELO = 'celo', // Celo main coin CHILIZ = 'chiliz', // Chiliz Chain native coin + CODEX = 'codex', COREDAO = 'coredao', COREUM = 'coreum', CRONOS = 'cronos', diff --git a/modules/statics/src/coins/ofcCoins.ts b/modules/statics/src/coins/ofcCoins.ts index 07bc6a2b1c..85dbd583da 100644 --- a/modules/statics/src/coins/ofcCoins.ts +++ b/modules/statics/src/coins/ofcCoins.ts @@ -145,6 +145,15 @@ export const ofcCoins = [ UnderlyingAsset.CHILIZ, CoinKind.CRYPTO ), + ofc('de86d783-852b-4d92-b991-20e7f028cc54', 'ofccodex', 'Codex', 18, UnderlyingAsset.CODEX, CoinKind.CRYPTO), + tofc( + 'dd58bac9-b4be-48cd-9113-55ab924d0c7c', + 'ofctcodex', + 'Codex Testnet', + 18, + UnderlyingAsset.CODEX, + CoinKind.CRYPTO + ), ofc('9e2da785-8349-4153-8276-941319575833', 'ofcxtz', 'Tezos', 6, UnderlyingAsset.XTZ, CoinKind.CRYPTO), ofc( '283b93b5-741b-4c85-a201-097267d65097', diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index 267b8f23a8..77449608aa 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -635,6 +635,24 @@ class ChilizTestnet extends Testnet implements EthereumNetwork { tokenOperationHashPrefix = '88882-ERC20'; } +class Codex extends Mainnet implements EthereumNetwork { + name = 'Codex'; + family = CoinFamily.CODEX; + explorerUrl = 'https://explorer.codex.xyz/tx/'; + accountExplorerUrl = 'https://explorer.codex.xyz/address/'; + chainId = 81224; + nativeCoinOperationHashPrefix = '81224'; +} + +class CodexTestnet extends Testnet implements EthereumNetwork { + name = 'Testnet Codex'; + family = CoinFamily.CODEX; + explorerUrl = 'https://explorer.codex-stg.xyz/tx/'; + accountExplorerUrl = 'https://explorer.codex-stg.xyz/address/'; + chainId = 812242; + nativeCoinOperationHashPrefix = '812242'; +} + // TODO update explorerUrl STLX-1657 class Casper extends Mainnet implements AccountNetwork { name = 'Casper'; @@ -2418,6 +2436,7 @@ export const Networks = { casper: Object.freeze(new Casper()), celo: Object.freeze(new Celo()), chiliz: Object.freeze(new Chiliz()), + codex: Object.freeze(new Codex()), coredao: Object.freeze(new Coredao()), coreum: Object.freeze(new Coreum()), cronos: Object.freeze(new Cronos()), @@ -2533,6 +2552,7 @@ export const Networks = { casper: Object.freeze(new CasperTestnet()), celo: Object.freeze(new CeloTestnet()), chiliz: Object.freeze(new ChilizTestnet()), + codex: Object.freeze(new CodexTestnet()), coredao: Object.freeze(new CoredaoTestnet()), cronos: Object.freeze(new CronosTestnet()), dash: Object.freeze(new DashTestnet()), diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index 72717941c2..7293d5ced6 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -84,6 +84,7 @@ export const expectedColdFeatures = { 'bsc', 'canton', 'chiliz', + 'codex', 'coredao', 'coreum', 'cronos', @@ -151,6 +152,7 @@ export const expectedColdFeatures = { 'tbsc', 'tcanton', 'tchiliz', + 'tcodex', 'tcoredao', 'tcoreum', 'tcronos',