Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync supported Multicall chain deployments #2706

Open
sevazhidkov opened this issue Jan 3, 2024 · 0 comments
Open

Sync supported Multicall chain deployments #2706

sevazhidkov opened this issue Jan 3, 2024 · 0 comments

Comments

@sevazhidkov
Copy link
Contributor

sevazhidkov commented Jan 3, 2024

Is your feature request related to a problem? Please describe.

It seems like MULTICALL_SUPPORTED_CHAIN_IDS got out of sync with the list of Multicall deployments. There are 3 PRs in the few months adding new chains: #2574, #2705 (mine), #2641.

Describe the solution you'd like
I've found 17 chains with a multicall deployment that are supported as Chain in ethers-core, but not included in MULTICALL_SUPPORTED_CHAIN_IDS, using this script. There are even more chains that are not supported as Chain.

I propose to add at least the first group of 17 chains to MULTICALL_SUPPORTED_CHAIN_IDS.

Describe alternatives you've considered
ethers-rs can also stop supporting this constant, either before adding these 17 chains (forcing everyone to use custom constructor if they want any of these chains) or after (saying "okay, here is the update, but it's going to be the last one, use custom constructor from now").

I'll be happy to implement any version of this (17/(17 + 81) chains, with deprecation or not), but need direction from maintainers here.

Additional context

17 chains that are currently not available (-1, Arbitrum Sepolia is already being added in an open PR).

11155420: Object {"chainId": Number(11155420), "name": String("Optimism Sepolia"), "url": String("https://optimism-sepolia.blockscout.com/address/0xcA11bde05977b3631167028862bE2a173976CA11?tab=contract")} Some(OptimismSepolia)
421614: Object {"chainId": Number(421614), "name": String("Arbitrum Sepolia"), "url": String("https://sepolia-explorer.arbitrum.io/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(ArbitrumSepolia)
1101: Object {"chainId": Number(1101), "name": String("Polygon zkEVM"), "url": String("https://zkevm.polygonscan.com/address/0xca11bde05977b3631167028862be2a173976ca11#code")} Some(PolygonZkEvm)
1442: Object {"chainId": Number(1442), "name": String("Polygon zkEVM Testnet"), "url": String("https://testnet-zkevm.polygonscan.com/address/0xca11bde05977b3631167028862be2a173976ca11#code")} Some(PolygonZkEvmTestnet)
10200: Object {"chainId": Number(10200), "name": String("Chiado (Gnosis Chain Testnet)"), "url": String("https://blockscout.chiadochain.net/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(Chiado)
338: Object {"chainId": Number(338), "name": String("Cronos Testnet"), "url": String("https://cronos.org/explorer/testnet3/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(CronosTestnet)
7700: Object {"chainId": Number(7700), "name": String("Canto"), "url": String("https://tuber.build/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(Canto)
5001: Object {"chainId": Number(5001), "name": String("Mantle Testnet"), "url": String("https://explorer.testnet.mantle.xyz/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(MantleTestnet)
5000: Object {"chainId": Number(5000), "name": String("Mantle"), "url": String("https://explorer.mantle.xyz/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(Mantle)
59140: Object {"chainId": Number(59140), "name": String("Linea Goerli Testnet"), "url": String("https://explorer.goerli.linea.build/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(LineaTestnet)
59144: Object {"chainId": Number(59144), "name": String("Linea Mainnet"), "url": String("https://lineascan.build/address/0xcA11bde05977b3631167028862bE2a173976CA11#code")} Some(Linea)
999: Object {"chainId": Number(999), "name": String("Zora Goerli Testnet"), "url": String("https://testnet.explorer.zora.co/address/0xcA11bde05977b3631167028862bE2a173976CA11?tab=contract")} Some(ZoraGoerli)
7777777: Object {"chainId": Number(7777777), "name": String("Zora"), "url": String("https://explorer.zora.co/address/0xcA11bde05977b3631167028862bE2a173976CA11?tab=contract")} Some(Zora)
999999999: Object {"chainId": Number(999999999), "name": String("Zora Sepolia Testnet"), "url": String("https://sepolia.explorer.zora.energy/address/0xcA11bde05977b3631167028862bE2a173976CA11?tab=contract")} Some(ZoraSepolia)
534353: Object {"chainId": Number(534353), "name": String("Scroll Alpha Testnet"), "url": String("https://blockscout.scroll.io/address/0xcA11bde05977b3631167028862bE2a173976CA11/contracts#address-tabs")} Some(ScrollAlphaTestnet)
534352: Object {"chainId": Number(534352), "name": String("Scroll"), "url": String("https://scrollscan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11")} Some(Scroll)
314: Object {"chainId": Number(314), "name": String("Filecoin Mainnet"), "url": String("https://filfox.info/en/address/0xcA11bde05977b3631167028862bE2a173976CA11")} Some(FilecoinMainnet)

81 chains that are not supported as Chain: https://gist.github.com/sevazhidkov/3579733246752c36aaa959613fdbe629

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant