Skip to content
This repository was archived by the owner on Oct 19, 2024. It is now read-only.
This repository was archived by the owner on Oct 19, 2024. It is now read-only.

Sync supported Multicall chain deployments #2706

@sevazhidkov

Description

@sevazhidkov

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions