diff --git a/modules/bitgo/test/v2/unit/keychains.ts b/modules/bitgo/test/v2/unit/keychains.ts index fc92a90cee..03e3fb4e58 100644 --- a/modules/bitgo/test/v2/unit/keychains.ts +++ b/modules/bitgo/test/v2/unit/keychains.ts @@ -107,6 +107,7 @@ describe('V2 Keychains', function () { n.asset !== UnderlyingAsset.MORPH && n.asset !== UnderlyingAsset.DOGEOS && n.asset !== UnderlyingAsset.MEGAETH && + n.asset !== UnderlyingAsset.ARC && coinFamilyValues.includes(n.name) ); diff --git a/modules/sdk-core/src/bitgo/environments.ts b/modules/sdk-core/src/bitgo/environments.ts index 1240419c01..0160484b67 100644 --- a/modules/sdk-core/src/bitgo/environments.ts +++ b/modules/sdk-core/src/bitgo/environments.ts @@ -300,6 +300,9 @@ const mainnetBase: EnvironmentTemplate = { dogeos: { baseUrl: 'https://blockscout.testnet.dogeos.com', //TODO: WIN-8082 => add mainnet url when available }, + arc: { + baseUrl: 'https://testnet.arcscan.app/api/v2', // WIN-8039 => add mainnet url when available + }, }, icpNodeUrl: 'https://ic0.app', worldExplorerBaseUrl: 'https://worldscan.org/', @@ -463,6 +466,9 @@ const testnetBase: EnvironmentTemplate = { dogeos: { baseUrl: 'https://blockscout.testnet.dogeos.com', }, + arc: { + baseUrl: 'https://testnet.arcscan.app/api/v2', + }, }, stxNodeUrl: 'https://api.testnet.hiro.so', vetNodeUrl: 'https://sync-testnet.vechain.org', diff --git a/modules/statics/src/allCoinsAndTokens.ts b/modules/statics/src/allCoinsAndTokens.ts index 8b9cd04b73..2974033fe1 100644 --- a/modules/statics/src/allCoinsAndTokens.ts +++ b/modules/statics/src/allCoinsAndTokens.ts @@ -2466,6 +2466,28 @@ export const allCoinsAndTokens = [ '', 'DogeOS' ), + account( + 'cf06d1ea-f7c4-4a26-95fd-f71983eba58f', + 'tarc', + 'ARC Testnet', + Networks.test.arc, + 18, + UnderlyingAsset.ARC, + BaseUnit.USDC, + [ + ...EVM_FEATURES, + CoinFeature.SHARED_EVM_SIGNING, + CoinFeature.SHARED_EVM_SDK, + CoinFeature.EVM_COMPATIBLE_IMS, + CoinFeature.EVM_COMPATIBLE_UI, + CoinFeature.EVM_NON_BITGO_RECOVERY, + CoinFeature.EVM_UNSIGNED_SWEEP_RECOVERY, + CoinFeature.EVM_COMPATIBLE_WP, + ], + KeyCurve.Secp256k1, + '', + 'TARC' + ), canton( '07385320-5a4f-48e9-97a5-86d4be9f24b0', 'canton', diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index ebed787ca1..18ffde2612 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -125,6 +125,7 @@ export enum CoinFamily { SOMI = 'somi', // Somnia Chain FLUENTETH = 'fluenteth', MORPH = 'morph', + ARC = 'arc', // ARC network } /** @@ -704,6 +705,7 @@ export enum UnderlyingAsset { APPC = 'appc', APT = 'apt', AQT = 'aqt', + ARC = 'arc', ARCT = 'arct', ARCX = 'arcx', ARKM = 'arkm', @@ -3537,6 +3539,7 @@ export enum BaseUnit { TCRONOS = 'basetcro', TASI = 'atestfet', CANTON = 'canton', + USDC = 'usdc', } export interface BaseCoinConstructorOptions { diff --git a/modules/statics/src/coins/ofcCoins.ts b/modules/statics/src/coins/ofcCoins.ts index 1f5a6e56fb..bb8313c3ec 100644 --- a/modules/statics/src/coins/ofcCoins.ts +++ b/modules/statics/src/coins/ofcCoins.ts @@ -3757,4 +3757,6 @@ export const ofcCoins = [ 6, UnderlyingAsset['tsui:deep'] ), + ofc('d45636f8-f120-4374-b717-70fe999baa43', 'ofcarc', 'ARC', 18, UnderlyingAsset.ARC, CoinKind.CRYPTO), + tofc('bc57e64d-045e-4421-aa92-64db0c51e1d7', 'ofctarc', 'ARC Testnet', 18, UnderlyingAsset.ARC, CoinKind.CRYPTO), ]; diff --git a/modules/statics/src/map.ts b/modules/statics/src/map.ts index d487fe9094..98f46b4b98 100644 --- a/modules/statics/src/map.ts +++ b/modules/statics/src/map.ts @@ -161,6 +161,7 @@ export class CoinMap { 1952: 'tokb', 5734951: 'jovayeth', 2019775: 'tjovayeth', + 5042002: 'tarc', }; private buildChainIdMap(): Map { diff --git a/modules/statics/src/networks.ts b/modules/statics/src/networks.ts index cd8b84092c..75034eb0ed 100644 --- a/modules/statics/src/networks.ts +++ b/modules/statics/src/networks.ts @@ -2220,6 +2220,15 @@ class DogeosTestnet extends Testnet implements EthereumNetwork { nativeCoinOperationHashPrefix = '6281971'; } +class ArcTestnet extends Testnet implements EthereumNetwork { + name = 'ARC'; + family = CoinFamily.ARC; + explorerUrl = 'https://testnet.arcscan.app/txs/'; + accountExplorerUrl = 'https://testnet.arcscan.app/address/'; + chainId = 5042002; + nativeCoinOperationHashPrefix = '5042002'; +} + export const Networks = { main: { ada: Object.freeze(new Ada()), @@ -2437,5 +2446,6 @@ export const Networks = { zCash: Object.freeze(new ZCashTestnet()), zeta: Object.freeze(new ZetaTestnet()), zkSync: Object.freeze(new ZkSyncTestnet()), + arc: Object.freeze(new ArcTestnet()), }, }; diff --git a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts index 66d5403227..f43b74b44c 100644 --- a/modules/statics/test/unit/fixtures/expectedColdFeatures.ts +++ b/modules/statics/test/unit/fixtures/expectedColdFeatures.ts @@ -136,6 +136,7 @@ export const expectedColdFeatures = { 'tatom', 'tapechain', 'tapt', + 'tarc', 'tbaby', 'tbera', 'tbaseeth',