From f4809d9ca73a29b4365b4b2b3dadb38a4cfb1614 Mon Sep 17 00:00:00 2001 From: Paul Balaji <10051819+paulbalaji@users.noreply.github.com> Date: Mon, 28 Oct 2024 15:54:00 +0000 Subject: [PATCH] feat: initial metadata for oct-25 batch (#333) ### Description feat: initial metadata for oct-25 batch - add metadata for new chains - remove any existing deployment addresses for chains that re going to join the core set - update tests for sanity checking AW-chain metadata - remove deployer field from metadata-only chains that are not in immediate AW plans ### Backward compatibility yes ### Testing locally --------- Signed-off-by: pbio <10051819+paulbalaji@users.noreply.github.com> Co-authored-by: github-actions[bot] Co-authored-by: J M Rossy --- .changeset/nasty-emus-vanish.md | 5 + chains/addresses.yaml | 15 -- chains/apechain/logo.svg | 1 + chains/apechain/metadata.yaml | 28 +++ chains/arbitrumnova/metadata.yaml | 2 +- chains/b3/metadata.yaml | 3 +- chains/carbon/metadata.yaml | 3 - chains/clique/metadata.yaml | 3 - chains/confluxespace/metadata.yaml | 3 - chains/cronos/metadata.yaml | 3 - chains/cronoszkevm/metadata.yaml | 3 - chains/fantom/addresses.yaml | 14 -- chains/fantom/metadata.yaml | 11 +- chains/filecoin/metadata.yaml | 3 - chains/fractalconfluence/metadata.yaml | 3 - chains/funki/metadata.yaml | 3 - chains/gravity/logo.svg | 1 + chains/gravity/metadata.yaml | 29 +++ chains/ham/metadata.yaml | 3 - chains/harmony/logo.svg | 1 + chains/harmony/metadata.yaml | 29 +++ chains/harmonytestnet/logo.svg | 32 +-- chains/kaia/logo.svg | 1 + chains/kaia/metadata.yaml | 26 +++ chains/kava/metadata.yaml | 3 - chains/metadata.yaml | 282 ++++++++++++++++++++----- chains/morph/logo.svg | 1 + chains/morph/metadata.yaml | 26 +++ chains/nautilus/metadata.yaml | 1 + chains/ngmi/metadata.yaml | 3 - chains/orderly/metadata.yaml | 3 +- chains/pulsechain/metadata.yaml | 4 +- chains/ronin/metadata.yaml | 3 - chains/saakuru/metadata.yaml | 3 - chains/snaxchain/logo.svg | 1 + chains/snaxchain/metadata.yaml | 26 +++ chains/tenet/metadata.yaml | 3 - chains/zeronetwork/logo.svg | 1 + chains/zeronetwork/metadata.yaml | 26 +++ chains/zksync/logo.svg | 1 + chains/zksync/metadata.yaml | 26 +++ src/consts.ts | 2 + src/index.ts | 1 + src/utils.ts | 6 + test/unit/chains.test.ts | 19 +- 45 files changed, 504 insertions(+), 162 deletions(-) create mode 100644 .changeset/nasty-emus-vanish.md create mode 100644 chains/apechain/logo.svg create mode 100644 chains/apechain/metadata.yaml delete mode 100644 chains/fantom/addresses.yaml create mode 100644 chains/gravity/logo.svg create mode 100644 chains/gravity/metadata.yaml create mode 100644 chains/harmony/logo.svg create mode 100644 chains/harmony/metadata.yaml create mode 100644 chains/kaia/logo.svg create mode 100644 chains/kaia/metadata.yaml create mode 100644 chains/morph/logo.svg create mode 100644 chains/morph/metadata.yaml create mode 100644 chains/snaxchain/logo.svg create mode 100644 chains/snaxchain/metadata.yaml create mode 100644 chains/zeronetwork/logo.svg create mode 100644 chains/zeronetwork/metadata.yaml create mode 100644 chains/zksync/logo.svg create mode 100644 chains/zksync/metadata.yaml diff --git a/.changeset/nasty-emus-vanish.md b/.changeset/nasty-emus-vanish.md new file mode 100644 index 000000000..52da738eb --- /dev/null +++ b/.changeset/nasty-emus-vanish.md @@ -0,0 +1,5 @@ +--- +'@hyperlane-xyz/registry': minor +--- + +Add chain metadata for apechain, gravity, harmony, kaia, morph, snaxchain, zeronetwork, zksync. Update deployer details for chains not being deployed to. diff --git a/chains/addresses.yaml b/chains/addresses.yaml index c41abfcab..a88777b74 100644 --- a/chains/addresses.yaml +++ b/chains/addresses.yaml @@ -961,21 +961,6 @@ everclear: testRecipient: "0xF15D70941dE2Bf95A23d6488eBCbedE0a444137f" timelockController: "0x0000000000000000000000000000000000000000" validatorAnnounce: "0xC88bAD76EC7acD9fd3b9Bb264f7f5C18097c5710" -fantom: - domainRoutingIsmFactory: "0x1029b201942a0a7D83D3A04819240d7b29b1b4a8" - interchainAccountIsm: "0x7891E9939e8308e16CDAd37adAE948AeB16ff2F9" - interchainAccountRouter: "0x3A331eD8d3d449aDFD8658045aD227595F682706" - mailbox: "0x8ACc4cf691519208aA146f0f2C8060e24C2C49B9" - merkleTreeHook: "0x8ACc4cf691519208aA146f0f2C8060e24C2C49B9" - proxyAdmin: "0xD52dd92B65B7CE239F746b0A3CE646856182c834" - staticAggregationHookFactory: "0x13e47E2089BEE879C9058DC912d35B503d7602C2" - staticAggregationIsmFactory: "0xe3c6705a27792A03126DAB16bBa75a891744E411" - staticMerkleRootMultisigIsmFactory: "0xB2425f09f4a9bD3E674E09052D09589997f3f5bC" - staticMerkleRootWeightedMultisigIsmFactory: "0x4Ec5Ff8a1a779C012043EFFf30CFeea9d69D8360" - staticMessageIdMultisigIsmFactory: "0x38112c51c7A6dAcde099F78714B91e9869731176" - staticMessageIdWeightedMultisigIsmFactory: "0xabC7A392df9AEff251fEbf390888B19F0897603D" - testRecipient: "0x7D9f4d8Dd04e5370F32924ba0f675C612F21f62F" - validatorAnnounce: "0x0c6Dfa2FABF834d59977043d7101aD1A1a1cc0Ed" fhenixtestnet: domainRoutingIsmFactory: "0x373a3af7dF23754256d3994e78E5dF824a31290F" interchainAccountIsm: "0x7CD70C2D30a9e9e28636F2929f2D222c103B888D" diff --git a/chains/apechain/logo.svg b/chains/apechain/logo.svg new file mode 100644 index 000000000..3b7852724 --- /dev/null +++ b/chains/apechain/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/apechain/metadata.yaml b/chains/apechain/metadata.yaml new file mode 100644 index 000000000..22b15a5e7 --- /dev/null +++ b/chains/apechain/metadata.yaml @@ -0,0 +1,28 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://apechain.calderaexplorer.xyz/api + family: blockscout + name: ApeChain Explorer + url: https://apechain.calderaexplorer.xyz +blocks: + confirmations: 1 + estimateBlockTime: 0.2 + reorgPeriod: 5 +chainId: 33139 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: ApeChain +domainId: 33139 +gasCurrencyCoinGeckoId: apecoin +index: + from: 1759561 +name: apechain +nativeToken: + decimals: 18 + name: ApeCoin + symbol: APE +protocol: ethereum +rpcUrls: + - http: https://rpc.apechain.com/http +technicalStack: arbitrumnitro diff --git a/chains/arbitrumnova/metadata.yaml b/chains/arbitrumnova/metadata.yaml index 69b0908b5..033f53bff 100644 --- a/chains/arbitrumnova/metadata.yaml +++ b/chains/arbitrumnova/metadata.yaml @@ -15,7 +15,7 @@ displayName: Arbitrum Nova domainId: 42170 gasCurrencyCoinGeckoId: ethereum index: - from: 75323174 + from: 78794208 name: arbitrumnova nativeToken: decimals: 18 diff --git a/chains/b3/metadata.yaml b/chains/b3/metadata.yaml index e74e9044f..62e61cf2a 100644 --- a/chains/b3/metadata.yaml +++ b/chains/b3/metadata.yaml @@ -6,7 +6,7 @@ blockExplorers: blocks: confirmations: 1 estimateBlockTime: 1 - reorgPeriod: 0 + reorgPeriod: 5 chainId: 8333 deployer: name: Abacus Works @@ -22,3 +22,4 @@ nativeToken: protocol: ethereum rpcUrls: - http: https://mainnet-rpc.b3.fun +technicalStack: opstack diff --git a/chains/carbon/metadata.yaml b/chains/carbon/metadata.yaml index 7f41597df..3870c841f 100644 --- a/chains/carbon/metadata.yaml +++ b/chains/carbon/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 2 reorgPeriod: 0 chainId: 9790 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Carbon domainId: 9790 gasCurrencyCoinGeckoId: ethereum diff --git a/chains/clique/metadata.yaml b/chains/clique/metadata.yaml index c22ddab55..46bef1b4f 100644 --- a/chains/clique/metadata.yaml +++ b/chains/clique/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 2 reorgPeriod: 0 chainId: 8853 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Clique domainId: 8853 gasCurrencyCoinGeckoId: ethereum diff --git a/chains/confluxespace/metadata.yaml b/chains/confluxespace/metadata.yaml index 2ae479a41..2bf685461 100644 --- a/chains/confluxespace/metadata.yaml +++ b/chains/confluxespace/metadata.yaml @@ -9,9 +9,6 @@ blocks: estimateBlockTime: 2 reorgPeriod: 0 chainId: 1030 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Conflux eSpace domainId: 1030 gasCurrencyCoinGeckoId: ethereum diff --git a/chains/cronos/metadata.yaml b/chains/cronos/metadata.yaml index b2f236cf7..0d6e3eddf 100644 --- a/chains/cronos/metadata.yaml +++ b/chains/cronos/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 5 reorgPeriod: 0 chainId: 25 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Cronos Mainnet domainId: 25 gasCurrencyCoinGeckoId: crypto-com-chain diff --git a/chains/cronoszkevm/metadata.yaml b/chains/cronoszkevm/metadata.yaml index 7976b228f..25dd4cb20 100644 --- a/chains/cronoszkevm/metadata.yaml +++ b/chains/cronoszkevm/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 2 reorgPeriod: 0 chainId: 388 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Cronos zkEVM domainId: 388 gasCurrencyCoinGeckoId: crypto-com-chain diff --git a/chains/fantom/addresses.yaml b/chains/fantom/addresses.yaml deleted file mode 100644 index aaba92b3a..000000000 --- a/chains/fantom/addresses.yaml +++ /dev/null @@ -1,14 +0,0 @@ -domainRoutingIsmFactory: "0x1029b201942a0a7D83D3A04819240d7b29b1b4a8" -interchainAccountIsm: "0x7891E9939e8308e16CDAd37adAE948AeB16ff2F9" -interchainAccountRouter: "0x3A331eD8d3d449aDFD8658045aD227595F682706" -mailbox: "0x8ACc4cf691519208aA146f0f2C8060e24C2C49B9" -merkleTreeHook: "0x8ACc4cf691519208aA146f0f2C8060e24C2C49B9" -proxyAdmin: "0xD52dd92B65B7CE239F746b0A3CE646856182c834" -staticAggregationHookFactory: "0x13e47E2089BEE879C9058DC912d35B503d7602C2" -staticAggregationIsmFactory: "0xe3c6705a27792A03126DAB16bBa75a891744E411" -staticMerkleRootMultisigIsmFactory: "0xB2425f09f4a9bD3E674E09052D09589997f3f5bC" -staticMerkleRootWeightedMultisigIsmFactory: "0x4Ec5Ff8a1a779C012043EFFf30CFeea9d69D8360" -staticMessageIdMultisigIsmFactory: "0x38112c51c7A6dAcde099F78714B91e9869731176" -staticMessageIdWeightedMultisigIsmFactory: "0xabC7A392df9AEff251fEbf390888B19F0897603D" -testRecipient: "0x7D9f4d8Dd04e5370F32924ba0f675C612F21f62F" -validatorAnnounce: "0x0c6Dfa2FABF834d59977043d7101aD1A1a1cc0Ed" diff --git a/chains/fantom/metadata.yaml b/chains/fantom/metadata.yaml index 350395c84..90e08fbf4 100644 --- a/chains/fantom/metadata.yaml +++ b/chains/fantom/metadata.yaml @@ -4,13 +4,17 @@ blockExplorers: family: etherscan name: FTMScan url: https://ftmscan.com +blocks: + confirmations: 1 + estimateBlockTime: 2 + reorgPeriod: 5 chainId: 250 deployer: - name: Joe - url: https://github.com/joooeoeee + name: Abacus Works + url: https://www.hyperlane.xyz displayName: Fantom Opera domainId: 250 -isTestnet: false +gasCurrencyCoinGeckoId: fantom name: fantom nativeToken: decimals: 18 @@ -25,3 +29,4 @@ rpcUrls: - http: https://rpc.fantom.network - http: https://rpc2.fantom.network - http: https://rpc3.fantom.network +technicalStack: other diff --git a/chains/filecoin/metadata.yaml b/chains/filecoin/metadata.yaml index 3f2667d00..7280f9e02 100644 --- a/chains/filecoin/metadata.yaml +++ b/chains/filecoin/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 30 reorgPeriod: 0 chainId: 314 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Filecoin domainId: 314 gasCurrencyCoinGeckoId: filecoin diff --git a/chains/fractalconfluence/metadata.yaml b/chains/fractalconfluence/metadata.yaml index 9ca697888..0293ad262 100644 --- a/chains/fractalconfluence/metadata.yaml +++ b/chains/fractalconfluence/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 24 reorgPeriod: 0 chainId: 2152 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Fractal Confluence domainId: 2152 gasCurrencyCoinGeckoId: findora diff --git a/chains/funki/metadata.yaml b/chains/funki/metadata.yaml index 58a772ea4..8912da930 100644 --- a/chains/funki/metadata.yaml +++ b/chains/funki/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 2 reorgPeriod: 0 chainId: 33979 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Funki domainId: 33979 gasCurrencyCoinGeckoId: ethereum diff --git a/chains/gravity/logo.svg b/chains/gravity/logo.svg new file mode 100644 index 000000000..dad626a05 --- /dev/null +++ b/chains/gravity/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/gravity/metadata.yaml b/chains/gravity/metadata.yaml new file mode 100644 index 000000000..9b59fe741 --- /dev/null +++ b/chains/gravity/metadata.yaml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://explorer.gravity.xyz/api + family: blockscout + name: Gravity Alpha Explorer + url: https://explorer.gravity.xyz +blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 5 +chainId: 1625 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: Gravity Alpha Mainnet +displayNameShort: Gravity +domainId: 1625 +gasCurrencyCoinGeckoId: g-token +index: + from: 13374779 +name: gravity +nativeToken: + decimals: 18 + name: Gravity + symbol: G +protocol: ethereum +rpcUrls: + - http: https://rpc.gravity.xyz +technicalStack: arbitrumnitro diff --git a/chains/ham/metadata.yaml b/chains/ham/metadata.yaml index 2b68c2998..0b33e6960 100644 --- a/chains/ham/metadata.yaml +++ b/chains/ham/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 1 reorgPeriod: 0 chainId: 5112 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Ham domainId: 5112 gasCurrencyCoinGeckoId: ethereum diff --git a/chains/harmony/logo.svg b/chains/harmony/logo.svg new file mode 100644 index 000000000..0e3918c6e --- /dev/null +++ b/chains/harmony/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/harmony/metadata.yaml b/chains/harmony/metadata.yaml new file mode 100644 index 000000000..5185f5520 --- /dev/null +++ b/chains/harmony/metadata.yaml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://explorer.harmony.one/api + family: blockscout + name: Harmony Explorer + url: https://explorer.harmony.one +blocks: + confirmations: 1 + estimateBlockTime: 2 + reorgPeriod: 5 +chainId: 1666600000 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: Harmony One +domainId: 1666600000 +gasCurrencyCoinGeckoId: harmony +name: harmony +nativeToken: + decimals: 18 + name: ONE + symbol: ONE +protocol: ethereum +rpcUrls: + - http: https://api.harmony.one + - http: https://api.s0.t.hmny.io + - http: https://1rpc.io/one + - http: https://rpc.ankr.com/harmony +technicalStack: other diff --git a/chains/harmonytestnet/logo.svg b/chains/harmonytestnet/logo.svg index 646d0c337..0e3918c6e 100644 --- a/chains/harmonytestnet/logo.svg +++ b/chains/harmonytestnet/logo.svg @@ -1,31 +1 @@ - - - - - - - - harmony-one-logo - - - - \ No newline at end of file + diff --git a/chains/kaia/logo.svg b/chains/kaia/logo.svg new file mode 100644 index 000000000..fed397200 --- /dev/null +++ b/chains/kaia/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/kaia/metadata.yaml b/chains/kaia/metadata.yaml new file mode 100644 index 000000000..9a8d7a874 --- /dev/null +++ b/chains/kaia/metadata.yaml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://api-cypress.klaytnscope.com/api + family: etherscan + name: Kaiascope + url: https://kaiascope.com +blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 5 +chainId: 8217 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: Kaia +domainId: 8217 +gasCurrencyCoinGeckoId: kaia +name: kaia +nativeToken: + decimals: 18 + name: Kaia + symbol: KLAY +protocol: ethereum +rpcUrls: + - http: https://public-en.node.kaia.io +technicalStack: other diff --git a/chains/kava/metadata.yaml b/chains/kava/metadata.yaml index 40efd7e9b..3c382e585 100644 --- a/chains/kava/metadata.yaml +++ b/chains/kava/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 6 reorgPeriod: 0 chainId: 2222 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Kava domainId: 2222 gasCurrencyCoinGeckoId: kava diff --git a/chains/metadata.yaml b/chains/metadata.yaml index 048bd5a1d..4863d1b79 100644 --- a/chains/metadata.yaml +++ b/chains/metadata.yaml @@ -83,6 +83,34 @@ ancient8: rpcUrls: - http: https://rpc.ancient8.gg technicalStack: opstack +apechain: + blockExplorers: + - apiUrl: https://apechain.calderaexplorer.xyz/api + family: blockscout + name: ApeChain Explorer + url: https://apechain.calderaexplorer.xyz + blocks: + confirmations: 1 + estimateBlockTime: 0.2 + reorgPeriod: 5 + chainId: 33139 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: ApeChain + domainId: 33139 + gasCurrencyCoinGeckoId: apecoin + index: + from: 1759561 + name: apechain + nativeToken: + decimals: 18 + name: ApeCoin + symbol: APE + protocol: ethereum + rpcUrls: + - http: https://rpc.apechain.com/http + technicalStack: arbitrumnitro arbitrum: blockExplorers: - apiUrl: https://api.arbiscan.io/api @@ -132,7 +160,7 @@ arbitrumnova: domainId: 42170 gasCurrencyCoinGeckoId: ethereum index: - from: 75323174 + from: 78794208 name: arbitrumnova nativeToken: decimals: 18 @@ -343,7 +371,7 @@ b3: blocks: confirmations: 1 estimateBlockTime: 1 - reorgPeriod: 0 + reorgPeriod: 5 chainId: 8333 deployer: name: Abacus Works @@ -359,6 +387,7 @@ b3: protocol: ethereum rpcUrls: - http: https://mainnet-rpc.b3.fun + technicalStack: opstack base: blockExplorers: - apiUrl: https://api.basescan.org/api @@ -775,9 +804,6 @@ carbon: estimateBlockTime: 2 reorgPeriod: 0 chainId: 9790 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Carbon domainId: 9790 gasCurrencyCoinGeckoId: ethereum @@ -915,9 +941,6 @@ clique: estimateBlockTime: 2 reorgPeriod: 0 chainId: 8853 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Clique domainId: 8853 gasCurrencyCoinGeckoId: ethereum @@ -940,9 +963,6 @@ confluxespace: estimateBlockTime: 2 reorgPeriod: 0 chainId: 1030 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Conflux eSpace domainId: 1030 gasCurrencyCoinGeckoId: ethereum @@ -1024,9 +1044,6 @@ cronos: estimateBlockTime: 5 reorgPeriod: 0 chainId: 25 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Cronos Mainnet domainId: 25 gasCurrencyCoinGeckoId: crypto-com-chain @@ -1049,9 +1066,6 @@ cronoszkevm: estimateBlockTime: 2 reorgPeriod: 0 chainId: 388 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Cronos zkEVM domainId: 388 gasCurrencyCoinGeckoId: crypto-com-chain @@ -1391,13 +1405,17 @@ fantom: family: etherscan name: FTMScan url: https://ftmscan.com + blocks: + confirmations: 1 + estimateBlockTime: 2 + reorgPeriod: 5 chainId: 250 deployer: - name: Joe - url: https://github.com/joooeoeee + name: Abacus Works + url: https://www.hyperlane.xyz displayName: Fantom Opera domainId: 250 - isTestnet: false + gasCurrencyCoinGeckoId: fantom name: fantom nativeToken: decimals: 18 @@ -1412,6 +1430,7 @@ fantom: - http: https://rpc.fantom.network - http: https://rpc2.fantom.network - http: https://rpc3.fantom.network + technicalStack: other fhenixtestnet: blockExplorers: - apiUrl: https://api.helium.fhenix.zone @@ -1447,9 +1466,6 @@ filecoin: estimateBlockTime: 30 reorgPeriod: 0 chainId: 314 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Filecoin domainId: 314 gasCurrencyCoinGeckoId: filecoin @@ -1583,9 +1599,6 @@ fractalconfluence: estimateBlockTime: 24 reorgPeriod: 0 chainId: 2152 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Fractal Confluence domainId: 2152 gasCurrencyCoinGeckoId: findora @@ -1686,9 +1699,6 @@ funki: estimateBlockTime: 2 reorgPeriod: 0 chainId: 33979 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Funki domainId: 33979 gasCurrencyCoinGeckoId: ethereum @@ -1781,6 +1791,35 @@ gnosis: maxBlockRange: 10000 minBlockNumber: 25997478 technicalStack: other +gravity: + blockExplorers: + - apiUrl: https://explorer.gravity.xyz/api + family: blockscout + name: Gravity Alpha Explorer + url: https://explorer.gravity.xyz + blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 5 + chainId: 1625 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: Gravity Alpha Mainnet + displayNameShort: Gravity + domainId: 1625 + gasCurrencyCoinGeckoId: g-token + index: + from: 13374779 + name: gravity + nativeToken: + decimals: 18 + name: Gravity + symbol: G + protocol: ethereum + rpcUrls: + - http: https://rpc.gravity.xyz + technicalStack: arbitrumnitro ham: blockExplorers: - apiUrl: https://explorer.ham.fun/api @@ -1792,9 +1831,6 @@ ham: estimateBlockTime: 1 reorgPeriod: 0 chainId: 5112 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Ham domainId: 5112 gasCurrencyCoinGeckoId: ethereum @@ -1806,6 +1842,35 @@ ham: protocol: ethereum rpcUrls: - http: https://rpc.ham.fun +harmony: + blockExplorers: + - apiUrl: https://explorer.harmony.one/api + family: blockscout + name: Harmony Explorer + url: https://explorer.harmony.one + blocks: + confirmations: 1 + estimateBlockTime: 2 + reorgPeriod: 5 + chainId: 1666600000 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: Harmony One + domainId: 1666600000 + gasCurrencyCoinGeckoId: harmony + name: harmony + nativeToken: + decimals: 18 + name: ONE + symbol: ONE + protocol: ethereum + rpcUrls: + - http: https://api.harmony.one + - http: https://api.s0.t.hmny.io + - http: https://1rpc.io/one + - http: https://rpc.ankr.com/harmony + technicalStack: other harmonytestnet: blockExplorers: - apiUrl: https://explorer.testnet.harmony.one/api/v2 @@ -2025,6 +2090,32 @@ injective: - http: https://sentry.tm.injective.network:443 slip44: 118 technicalStack: other +kaia: + blockExplorers: + - apiUrl: https://api-cypress.klaytnscope.com/api + family: etherscan + name: Kaiascope + url: https://kaiascope.com + blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 5 + chainId: 8217 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: Kaia + domainId: 8217 + gasCurrencyCoinGeckoId: kaia + name: kaia + nativeToken: + decimals: 18 + name: Kaia + symbol: KLAY + protocol: ethereum + rpcUrls: + - http: https://public-en.node.kaia.io + technicalStack: other kalychain: blockExplorers: - apiUrl: https://kalyscan.io/api @@ -2060,9 +2151,6 @@ kava: estimateBlockTime: 6 reorgPeriod: 0 chainId: 2222 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Kava domainId: 2222 gasCurrencyCoinGeckoId: kava @@ -2712,6 +2800,32 @@ moonbeam: rpcUrls: - http: https://rpc.api.moonbeam.network technicalStack: polkadotsubstrate +morph: + blockExplorers: + - apiUrl: https://explorer-api.morphl2.io/api + family: blockscout + name: Morph Explorer + url: https://explorer.morphl2.io + blocks: + confirmations: 1 + estimateBlockTime: 4 + reorgPeriod: 5 + chainId: 2818 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: Morph + domainId: 2818 + gasCurrencyCoinGeckoId: ethereum + name: morph + nativeToken: + decimals: 18 + name: Ether + symbol: ETH + protocol: ethereum + rpcUrls: + - http: https://rpc.morphl2.io + technicalStack: other nautilus: blocks: confirmations: 1 @@ -2732,6 +2846,7 @@ nautilus: protocol: ethereum rpcUrls: - http: https://api.nautilus.nautchain.xyz + technicalStack: other neoxt4: blockExplorers: - apiUrl: https://xt4scan.ngd.network/api @@ -2816,9 +2931,6 @@ ngmi: estimateBlockTime: 5 reorgPeriod: 0 chainId: 2712765173321000 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: NGMI domainId: 2712765173321000 gasCurrencyCoinGeckoId: ngmi @@ -2986,7 +3098,7 @@ orderly: blocks: confirmations: 1 estimateBlockTime: 2 - reorgPeriod: 0 + reorgPeriod: 5 chainId: 291 deployer: name: Abacus Works @@ -3003,6 +3115,7 @@ orderly: rpcUrls: - http: https://rpc.orderly.network - http: https://l2-orderly-mainnet-0.t.conduit.xyz + technicalStack: opstack osmosis: bech32Prefix: osmo blockExplorers: @@ -3258,8 +3371,8 @@ pulsechain: reorgPeriod: 0 chainId: 369 deployer: - name: Abacus Works - url: https://www.hyperlane.xyz + name: ganadhish-RL + url: https://github.com/ganadhish-RL displayName: PulseChain domainId: 369 gasCurrencyCoinGeckoId: pulsechain @@ -3370,9 +3483,6 @@ ronin: estimateBlockTime: 3 reorgPeriod: 0 chainId: 2020 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Ronin domainId: 2020 gasCurrencyCoinGeckoId: ronin @@ -3448,9 +3558,6 @@ saakuru: estimateBlockTime: 1 reorgPeriod: 0 chainId: 7225878 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Saakuru domainId: 7225878 gasCurrencyCoinGeckoId: saakuru-labs @@ -3683,6 +3790,32 @@ smartbch: rpcUrls: - http: https://smartbch.greyh.at - http: https://rpc.smartbch.org +snaxchain: + blockExplorers: + - apiUrl: https://explorer.snaxchain.io/api + family: blockscout + name: Snaxchain Mainnet Explorer + url: https://explorer.snaxchain.io + blocks: + confirmations: 1 + estimateBlockTime: 2 + reorgPeriod: 5 + chainId: 2192 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: SnaxChain + domainId: 2192 + gasCurrencyCoinGeckoId: ethereum + name: snaxchain + nativeToken: + decimals: 18 + name: Ether + symbol: ETH + protocol: ethereum + rpcUrls: + - http: https://mainnet.snaxchain.io + technicalStack: opstack solanadevnet: blockExplorers: - apiUrl: https://explorer.solana.com?cluster=devnet @@ -4131,9 +4264,6 @@ tenet: estimateBlockTime: 4 reorgPeriod: 0 chainId: 1559 - deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Tenet domainId: 1559 gasCurrencyCoinGeckoId: tenet-1b000f7b-59cb-4e06-89ce-d62b32d362b9 @@ -4320,6 +4450,32 @@ xlayer: - http: https://xlayerrpc.okx.com - http: https://rpc.xlayer.tech technicalStack: polygoncdk +zeronetwork: + blockExplorers: + - apiUrl: https://zero-network-api.calderaexplorer.xyz/api + family: etherscan + name: Zero Network Explorer + url: https://zerion-explorer.vercel.app + blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 0 + chainId: 543210 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: Zero Network + domainId: 543210 + gasCurrencyCoinGeckoId: ethereum + name: zeronetwork + nativeToken: + decimals: 18 + name: Ether + symbol: ETH + protocol: ethereum + rpcUrls: + - http: https://zero-network.calderachain.xyz + technicalStack: zksync zetachain: blockExplorers: - apiUrl: https://explorer.zetachain.com @@ -4377,6 +4533,32 @@ zircuit: - http: https://zircuit1-mainnet.liquify.com - http: https://zircuit-mainnet.drpc.org technicalStack: opstack +zksync: + blockExplorers: + - apiUrl: https://block-explorer-api.mainnet.zksync.io/api + family: etherscan + name: zkSync Explorer + url: https://explorer.zksync.io + blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 0 + chainId: 324 + deployer: + name: Abacus Works + url: https://www.hyperlane.xyz + displayName: zkSync + domainId: 324 + gasCurrencyCoinGeckoId: ethereum + name: zksync + nativeToken: + decimals: 18 + name: Ether + symbol: ETH + protocol: ethereum + rpcUrls: + - http: https://mainnet.era.zksync.io + technicalStack: zksync zoramainnet: blockExplorers: - apiUrl: https://explorer.zora.energy/api diff --git a/chains/morph/logo.svg b/chains/morph/logo.svg new file mode 100644 index 000000000..313358004 --- /dev/null +++ b/chains/morph/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/morph/metadata.yaml b/chains/morph/metadata.yaml new file mode 100644 index 000000000..58ed10195 --- /dev/null +++ b/chains/morph/metadata.yaml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://explorer-api.morphl2.io/api + family: blockscout + name: Morph Explorer + url: https://explorer.morphl2.io +blocks: + confirmations: 1 + estimateBlockTime: 4 + reorgPeriod: 5 +chainId: 2818 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: Morph +domainId: 2818 +gasCurrencyCoinGeckoId: ethereum +name: morph +nativeToken: + decimals: 18 + name: Ether + symbol: ETH +protocol: ethereum +rpcUrls: + - http: https://rpc.morphl2.io +technicalStack: other diff --git a/chains/nautilus/metadata.yaml b/chains/nautilus/metadata.yaml index fc832de02..0a56923f4 100644 --- a/chains/nautilus/metadata.yaml +++ b/chains/nautilus/metadata.yaml @@ -18,3 +18,4 @@ nativeToken: protocol: ethereum rpcUrls: - http: https://api.nautilus.nautchain.xyz +technicalStack: other diff --git a/chains/ngmi/metadata.yaml b/chains/ngmi/metadata.yaml index 942f36f38..0be80a1c5 100644 --- a/chains/ngmi/metadata.yaml +++ b/chains/ngmi/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 5 reorgPeriod: 0 chainId: 2712765173321000 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: NGMI domainId: 2712765173321000 gasCurrencyCoinGeckoId: ngmi diff --git a/chains/orderly/metadata.yaml b/chains/orderly/metadata.yaml index eabf29514..a802c5fbd 100644 --- a/chains/orderly/metadata.yaml +++ b/chains/orderly/metadata.yaml @@ -6,7 +6,7 @@ blockExplorers: blocks: confirmations: 1 estimateBlockTime: 2 - reorgPeriod: 0 + reorgPeriod: 5 chainId: 291 deployer: name: Abacus Works @@ -23,3 +23,4 @@ protocol: ethereum rpcUrls: - http: https://rpc.orderly.network - http: https://l2-orderly-mainnet-0.t.conduit.xyz +technicalStack: opstack diff --git a/chains/pulsechain/metadata.yaml b/chains/pulsechain/metadata.yaml index 0d60348a4..51a3b8166 100644 --- a/chains/pulsechain/metadata.yaml +++ b/chains/pulsechain/metadata.yaml @@ -13,8 +13,8 @@ blocks: reorgPeriod: 0 chainId: 369 deployer: - name: Abacus Works - url: https://www.hyperlane.xyz + name: ganadhish-RL + url: https://github.com/ganadhish-RL displayName: PulseChain domainId: 369 gasCurrencyCoinGeckoId: pulsechain diff --git a/chains/ronin/metadata.yaml b/chains/ronin/metadata.yaml index dcef69a80..ac053bd03 100644 --- a/chains/ronin/metadata.yaml +++ b/chains/ronin/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 3 reorgPeriod: 0 chainId: 2020 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Ronin domainId: 2020 gasCurrencyCoinGeckoId: ronin diff --git a/chains/saakuru/metadata.yaml b/chains/saakuru/metadata.yaml index 5aa9f3d0c..cd9fbb166 100644 --- a/chains/saakuru/metadata.yaml +++ b/chains/saakuru/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 1 reorgPeriod: 0 chainId: 7225878 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Saakuru domainId: 7225878 gasCurrencyCoinGeckoId: saakuru-labs diff --git a/chains/snaxchain/logo.svg b/chains/snaxchain/logo.svg new file mode 100644 index 000000000..c364dfc87 --- /dev/null +++ b/chains/snaxchain/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/snaxchain/metadata.yaml b/chains/snaxchain/metadata.yaml new file mode 100644 index 000000000..b80b61325 --- /dev/null +++ b/chains/snaxchain/metadata.yaml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://explorer.snaxchain.io/api + family: blockscout + name: Snaxchain Mainnet Explorer + url: https://explorer.snaxchain.io +blocks: + confirmations: 1 + estimateBlockTime: 2 + reorgPeriod: 5 +chainId: 2192 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: SnaxChain +domainId: 2192 +gasCurrencyCoinGeckoId: ethereum +name: snaxchain +nativeToken: + decimals: 18 + name: Ether + symbol: ETH +protocol: ethereum +rpcUrls: + - http: https://mainnet.snaxchain.io +technicalStack: opstack diff --git a/chains/tenet/metadata.yaml b/chains/tenet/metadata.yaml index abff0a688..c3c1a3f05 100644 --- a/chains/tenet/metadata.yaml +++ b/chains/tenet/metadata.yaml @@ -8,9 +8,6 @@ blocks: estimateBlockTime: 4 reorgPeriod: 0 chainId: 1559 -deployer: - name: Abacus Works - url: https://www.hyperlane.xyz displayName: Tenet domainId: 1559 gasCurrencyCoinGeckoId: tenet-1b000f7b-59cb-4e06-89ce-d62b32d362b9 diff --git a/chains/zeronetwork/logo.svg b/chains/zeronetwork/logo.svg new file mode 100644 index 000000000..fc7a02ce6 --- /dev/null +++ b/chains/zeronetwork/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/zeronetwork/metadata.yaml b/chains/zeronetwork/metadata.yaml new file mode 100644 index 000000000..a2695b4ca --- /dev/null +++ b/chains/zeronetwork/metadata.yaml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://zero-network-api.calderaexplorer.xyz/api + family: etherscan + name: Zero Network Explorer + url: https://zerion-explorer.vercel.app +blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 0 +chainId: 543210 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: Zero Network +domainId: 543210 +gasCurrencyCoinGeckoId: ethereum +name: zeronetwork +nativeToken: + decimals: 18 + name: Ether + symbol: ETH +protocol: ethereum +rpcUrls: + - http: https://zero-network.calderachain.xyz +technicalStack: zksync diff --git a/chains/zksync/logo.svg b/chains/zksync/logo.svg new file mode 100644 index 000000000..96ea65f89 --- /dev/null +++ b/chains/zksync/logo.svg @@ -0,0 +1 @@ + diff --git a/chains/zksync/metadata.yaml b/chains/zksync/metadata.yaml new file mode 100644 index 000000000..605991b7e --- /dev/null +++ b/chains/zksync/metadata.yaml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=../schema.json +blockExplorers: + - apiUrl: https://block-explorer-api.mainnet.zksync.io/api + family: etherscan + name: zkSync Explorer + url: https://explorer.zksync.io +blocks: + confirmations: 1 + estimateBlockTime: 1 + reorgPeriod: 0 +chainId: 324 +deployer: + name: Abacus Works + url: https://www.hyperlane.xyz +displayName: zkSync +domainId: 324 +gasCurrencyCoinGeckoId: ethereum +name: zksync +nativeToken: + decimals: 18 + name: Ether + symbol: ETH +protocol: ethereum +rpcUrls: + - http: https://mainnet.era.zksync.io +technicalStack: zksync diff --git a/src/consts.ts b/src/consts.ts index 070fff0ce..12fec33be 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -5,3 +5,5 @@ export const GITHUB_FETCH_CONCURRENCY_LIMIT = 5; export const CHAIN_FILE_REGEX = /chains\/([a-z0-9]+)\/([a-z]+)\.(yaml|svg)/; export const WARP_ROUTE_CONFIG_FILE_REGEX = /warp_routes\/([a-zA-Z0-9]+)\/([a-z0-9-]+)-config.yaml/; + +export const ABACUS_WORKS_DEPLOYER_NAME = 'Abacus Works'; diff --git a/src/index.ts b/src/index.ts index 492f20d6c..c77960307 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,3 +16,4 @@ export { createWarpRouteConfigId, } from './registry/warp-utils.js'; export { ChainAddresses, ChainAddressesSchema } from './types.js'; +export { isAbacusWorksChain } from './utils.js'; diff --git a/src/utils.ts b/src/utils.ts index 8989c3907..6182d9675 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,6 @@ import { stringify } from 'yaml'; +import { ABACUS_WORKS_DEPLOYER_NAME } from './consts.js'; +import { ChainMetadata } from '@hyperlane-xyz/sdk'; export function toYamlString(data: any, prefix?: string): string { const yamlString = stringify(data, { indent: 2, sortMapEntries: true }); @@ -53,3 +55,7 @@ export function objMerge(a: Record, b: Record, max_dep return b ? b : a; } } + +export function isAbacusWorksChain(metadata: ChainMetadata): boolean { + return metadata.deployer?.name?.toLowerCase() === ABACUS_WORKS_DEPLOYER_NAME.toLowerCase(); +} diff --git a/test/unit/chains.test.ts b/test/unit/chains.test.ts index b85cb190e..81bf1da65 100644 --- a/test/unit/chains.test.ts +++ b/test/unit/chains.test.ts @@ -1,6 +1,7 @@ import { ChainMetadataSchema, ChainTechnicalStack, EthJsonRpcBlockParameterTag } from '@hyperlane-xyz/sdk'; import { chainAddresses, chainMetadata } from '../../dist/index.js'; import { ChainAddressesSchema } from '../../src/types.js'; +import { isAbacusWorksChain } from '../../src/utils.js'; import { expect } from 'chai'; @@ -44,12 +45,26 @@ describe('Chain metadata', () => { } }); + // Ensure all Abacus Works mainnets have gasCurrencyCoinGeckoId defined + it(`${chain} metadata has gasCurrencyCoinGeckoId defined if deployer is Abacus Works`, () => { + if (isAbacusWorksChain(metadata) && !metadata.isTestnet) { + expect(metadata.gasCurrencyCoinGeckoId).not.to.be.undefined; + } + }); + // Values derived from reorg period assessment framework // https://www.notion.so/hyperlanexyz/Reorg-period-assessment-framework-1126d35200d680cbb5f2c67b8b492d62 describe('Reorg period', () => { + // Ensure all Abacus Works mainnets have blocks defined + it(`${chain} metadata has blocks defined if deployer is Abacus Works`, () => { + if (isAbacusWorksChain(metadata) && !metadata.isTestnet) { + expect(metadata.blocks).not.to.be.undefined; + } + }); + // Ensure all Abacus Works mainnets have technicalStack defined - it(`${chain} metadata has technicalStack defined if deployer is Abacus Works, and it is a mainnet with a mailbox deployed`, () => { - if (metadata.deployer?.name === "Abacus Works" && !metadata.isTestnet && chainAddresses[chain]?.mailboxAddress) { + it(`${chain} metadata has technicalStack defined if deployer is Abacus Works`, () => { + if (isAbacusWorksChain(metadata) && !metadata.isTestnet) { expect(metadata.technicalStack).not.to.be.undefined; } });