11// Import necessary modules and classes from external packages and files
22import { ExplorerProvider , Network } from '@xchainjs/xchain-client'
33import { EVMClientParams } from '@xchainjs/xchain-evm'
4- import { EtherscanProviderV2 } from '@xchainjs/xchain-evm-providers'
4+ import { RoutescanProvider } from '@xchainjs/xchain-evm-providers'
55import { Asset , AssetType , TokenAsset } from '@xchainjs/xchain-util'
66import { JsonRpcProvider } from 'ethers'
77import BigNumber from 'bignumber.js'
@@ -24,7 +24,6 @@ export const AssetARB: TokenAsset = {
2424}
2525
2626// Define JSON-RPC providers for mainnet and testnet
27- // Ankr api key
2827const ARBITRUM_MAINNET_ETHERS_PROVIDER = new JsonRpcProvider ( 'https://arb1.arbitrum.io/rpc' )
2928const ARBITRUM_TESTNET_ETHERS_PROVIDER = new JsonRpcProvider ( 'https://goerli-rollup.arbitrum.io/rpc' )
3029
@@ -35,32 +34,29 @@ const ethersJSProviders = {
3534 [ Network . Stagenet ] : ARBITRUM_MAINNET_ETHERS_PROVIDER ,
3635}
3736
38- // Define online providers (Etherscan) for mainnet and testnet
39- const ARB_ONLINE_PROVIDER_MAINNET = new EtherscanProviderV2 (
37+ // Etherscan providers removed - Etherscan's gas oracle doesn't support Arbitrum
38+
39+ const ROUTESCAN_PROVIDER_MAINNET = new RoutescanProvider (
4040 ARBITRUM_MAINNET_ETHERS_PROVIDER ,
41- 'https://api.etherscan.io/v2' ,
42- process . env . ETHERSCAN_API_KEY || '' ,
43- ARBChain ,
44- AssetAETH ,
45- 18 ,
41+ 'https://api.routescan.io' ,
4642 42161 ,
43+ AssetAETH ,
44+ ARB_DECIMAL ,
4745)
4846
49- const ARB_ONLINE_PROVIDER_TESTNET = new EtherscanProviderV2 (
47+ const ROUTESCAN_PROVIDER_TESTNET = new RoutescanProvider (
5048 ARBITRUM_TESTNET_ETHERS_PROVIDER ,
51- 'https://api.etherscan.io/v2' ,
52- process . env . ETHERSCAN_API_KEY || '' ,
53- ARBChain ,
49+ 'https://api.routescan.io' ,
50+ 421613 ,
5451 AssetAETH ,
55- 18 ,
56- 421614 ,
52+ ARB_DECIMAL ,
53+ true ,
5754)
5855
59- // Define providers for different networks
60- const arbProviders = {
61- [ Network . Mainnet ] : ARB_ONLINE_PROVIDER_MAINNET ,
62- [ Network . Testnet ] : ARB_ONLINE_PROVIDER_TESTNET ,
63- [ Network . Stagenet ] : ARB_ONLINE_PROVIDER_MAINNET ,
56+ const routescanProviders = {
57+ [ Network . Mainnet ] : ROUTESCAN_PROVIDER_MAINNET ,
58+ [ Network . Testnet ] : ROUTESCAN_PROVIDER_TESTNET ,
59+ [ Network . Stagenet ] : ROUTESCAN_PROVIDER_MAINNET ,
6460}
6561
6662// Define explorer providers for mainnet and testnet
@@ -120,7 +116,7 @@ export const defaultArbParams: EVMClientParams = {
120116 defaults,
121117 providers : ethersJSProviders ,
122118 explorerProviders : arbExplorerProviders ,
123- dataProviders : [ arbProviders ] ,
119+ dataProviders : [ routescanProviders ] ,
124120 network : Network . Mainnet ,
125121 feeBounds : {
126122 lower : LOWER_FEE_BOUND ,
0 commit comments