|
1 | 1 | import {existsSync} from 'fs'; |
2 | 2 | import {execSync} from 'child_process'; |
3 | | -import {ChainId} from '@bgd-labs/rpc-env'; |
4 | | - |
5 | | -const CHAIN_ID_TO_ETHERSCAN = { |
6 | | - [ChainId.mainnet]: process.env.ETHERSCAN_API_KEY_MAINNET, |
7 | | - [ChainId.polygon]: process.env.ETHERSCAN_API_KEY_POLYGON, |
8 | | - [ChainId.bnb]: process.env.ETHERSCAN_API_KEY_BNB, |
9 | | - [ChainId.base]: process.env.ETHERSCAN_API_KEY_BASE, |
10 | | - [ChainId.arbitrum]: process.env.ETHERSCAN_API_KEY_ARBITRUM, |
11 | | - [ChainId.optimism]: process.env.ETHERSCAN_API_KEY_OPTIMISM, |
12 | | - [ChainId.gnosis]: process.env.ETHERSCAN_API_KEY_GNOSIS, |
13 | | - [ChainId.avalanche]: process.env.ETHERSCAN_API_KEY_AVALANCHE, |
14 | | - [ChainId.zksync]: process.env.ETHERSCAN_API_KEY_ZKSYNC, |
15 | | - [ChainId.scroll]: process.env.ETHERSCAN_API_KEY_SCROLL, |
16 | | - [ChainId.linea]: process.env.ETHERSCAN_API_KEY_LINEA, |
17 | | - [ChainId.celo]: process.env.ETHERSCAN_API_KEY_CELO, |
18 | | - [ChainId.mantle]: process.env.ETHERSCAN_API_KEY_MANTLE, |
19 | | - [ChainId.sonic]: process.env.ETHERSCAN_API_KEY_SONIC, |
20 | | -}; |
21 | 3 |
|
22 | 4 | export function downloadContract(chainId: number, address: string) { |
23 | 5 | const outPath = `/tmp/${chainId}_${address}`; |
24 | 6 | if (existsSync(outPath)) console.log('skipped download'); |
25 | | - const command = `cast source --chain ${chainId} -d ${outPath} ${address} --etherscan-api-key ${CHAIN_ID_TO_ETHERSCAN[chainId as keyof typeof CHAIN_ID_TO_ETHERSCAN]} && forge fmt ${outPath}`; |
| 7 | + const command = `cast source --chain ${chainId} -d ${outPath} ${address} --etherscan-api-key ${process.env.ETHERSCAN_API_KEY} && forge fmt ${outPath}`; |
26 | 8 | execSync(command); |
27 | 9 | return outPath; |
28 | 10 | } |
|
0 commit comments