The home for Hyperlane core contracts, sdk packages, and other infrastructure
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyperlane-monorepo/rust/main/config/mainnet_config.json

6262 lines
264 KiB

{
"chains": {
"ancient8": {
"aggregationHook": "0x1EF4ED658d542524d1D547ba2F94d3B038a55b8f",
"batchContractAddress": "0x4C97D35c668EE5194a13c8DE8Afc18cce40C9F28",
"blockExplorers": [
{
"apiUrl": "https://scan.ancient8.gg/api",
"family": "blockscout",
"name": "Ancient8 Explorer",
"url": "https://scan.ancient8.gg"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 888888888,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Ancient8",
"domainId": 888888888,
"domainRoutingIsm": "0x477145b11E1a71fEb658d96A0E27F19495121504",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x5E01d8F34b629E3f92d69546bbc4142A7Adee7e9",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe.ancient8.gg/txs/",
"index": {
"from": 2507127
},
"interchainAccountIsm": "0xd766e7C7517f2d0D92754b2fe4aE7AdEf7bDEC3e",
"interchainAccountRouter": "0x25C87e735021F72d8728438C2130b02E3141f2cb",
"interchainGasPaymaster": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
"interchainSecurityModule": "0xECd85a9d1215eab1a53364dA71A57634b1a0e1C8",
"isTestnet": false,
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x811808Dd29ba8B0FC6C0ec0b5537035E59745162",
"name": "ancient8",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x66DC49405Ae2956f7E87FEAa9fE8f506C8987462",
"pausableIsm": "0xF8DbA46fF9D8ef650052c89CA2Df793FaBc375F9",
"protocol": "ethereum",
"protocolFee": "0xE0C452DDA7506f0F4dE5C8C1d383F7aD866eA4F0",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.ancient8.gg"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xc6ec1364d1ce3E963Fa65A0bDF57eC722478e1FB",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x59Bf7c7b458375b1A7c453aE70EaCb376E65CDAF",
"technicalStack": "opstack",
"testRecipient": "0x2Fa570E83009eaEef3a1cbd496a9a30F05266634",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
"staticMerkleRootWeightedMultisigIsmFactory": "0x25d668D37f20E6f396cB5DF1DFf5A3f2F568e707",
"staticMessageIdWeightedMultisigIsmFactory": "0x549F241472FccdA169E3202048aE2241231A7772"
},
"arbitrum": {
"aggregationHook": "0xe0cb37cFc47296f1c4eD77EFf92Aed478644d10c",
"blockExplorers": [
{
"apiUrl": "https://api.arbiscan.io/api",
"family": "etherscan",
"name": "Arbiscan",
"url": "https://arbiscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 42161,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Arbitrum",
"domainId": 42161,
"domainRoutingIsm": "0x5d759B5CeEb1C3b0181bEc0F80fb04f820cc35D1",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0xa2931C37957f3079d3B21b877d56E1db930e02a5",
"fallbackRoutingHook": "0x9e8fFb1c26099e75Dd5D794030e2E9AA51471c25",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-arbitrum.safe.global/",
"index": {
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"from": 143649797
},
"interchainAccountIsm": "0x2A7574358Ec53522CE2452887661AB4c86F7d400",
"interchainAccountRouter": "0x91874Dbed74925dFe6059B90385EEb90DdE0B2E6",
"interchainGasPaymaster": "0x3b6044acd6767f017e99318AA6Ef93b7B06A5a22",
"interchainSecurityModule": "0x25ebF66b71a3De55D25CcFea5C0d4f974931CeeA",
"mailbox": "0x979Ca5202784112f4738403dBec5D0F3B9daabB9",
"merkleTreeHook": "0x748040afB89B8FdBb992799808215419d36A0930",
"name": "arbitrum",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xEf30f29Dcd3FCB1DCcDA9C7Cbf2A5957E8Ee9Cc3",
"pausableIsm": "0x1E38556b4fE553e6249448960875883990efcf34",
"protocol": "ethereum",
"protocolFee": "0xD0199067DACb8526e7dc524a9a7DCBb57Cd25421",
"proxyAdmin": "0x80Cebd56A65e46c474a1A101e89E76C4c51D179c",
"rpcUrls": [
{
"http": "https://arbitrum.llamarpc.com"
},
{
"http": "https://rpc.ankr.com/arbitrum"
},
{
"http": "https://arb1.arbitrum.io/rpc"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x9B5f440bBb64Fee337F37e03362b628711Ea09C7",
"staticAggregationIsm": "0x96845a0469363f90779f6D5cd49D79bDDAc69429",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0xD4883084389fC1Eeb4dAfB2ADcFc36B711c310EB",
"staticMerkleRootMultisigIsmFactory": "0x3C330D4A2e2b8443AFaB8E326E64ab4251B7Eae0",
"staticMessageIdMultisigIsmFactory": "0x12Df53079d399a47e9E730df095b712B0FDFA791",
"storageGasOracle": "0xD3805207b65d99C075ceA938Fa7c0587026a5DF5",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x1df063280C4166AF9a725e3828b4dAC6c7113B08",
"staticMerkleRootWeightedMultisigIsmFactory": "0xb5163440d5EBbdC23bC7A091466EB5a621093BFe",
"staticMessageIdWeightedMultisigIsmFactory": "0x01c0752455282BC139A325e479c6121E060a7bBd"
},
"avalanche": {
"aggregationHook": "0x0165a22BA489F7DA37DAf6397781777D9FCB5708",
"blockExplorers": [
{
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/43114/etherscan/api",
"family": "routescan",
"name": "SnowTrace",
"url": "https://snowtrace.io"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 2,
"reorgPeriod": 3
},
"chainId": 43114,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Avalanche",
"domainId": 43114,
"domainRoutingIsm": "0x9f68F961ba2dF53b1cB3EbCC0b08e89790C6E2f6",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x28F7907911C7E321c596686AE6D1F20516450037",
"fallbackRoutingHook": "0x61D15D571D5f7A9eF0D1938f072f430bBF024747",
"gasCurrencyCoinGeckoId": "avalanche-2",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-avalanche.safe.global/",
"index": {
"from": 36874693
},
"interchainAccountIsm": "0x27a3233c05C1Df7c163123301D14bE9349E3Cb48",
"interchainAccountRouter": "0xa82a0227e6d6db53AF4B264A852bfF91C6504a51",
"interchainGasPaymaster": "0x95519ba800BBd0d34eeAE026fEc620AD978176C0",
"interchainSecurityModule": "0x57576C0A653d3E9697E16f331ef8aBd8f9c9f64e",
"mailbox": "0xFf06aFcaABaDDd1fb08371f9ccA15D73D51FeBD6",
"merkleTreeHook": "0x84eea61D679F42D92145fA052C89900CBAccE95A",
"name": "avalanche",
"nativeToken": {
"decimals": 18,
"name": "Avalanche",
"symbol": "AVAX"
},
"pausableHook": "0x239eB860770F1C48ABAC9bE9825d20e3E7c018df",
"pausableIsm": "0xd76080269C641e1adb786b72ae60Ddac3b6b8ed0",
"protocol": "ethereum",
"protocolFee": "0xEc4AdA26E51f2685279F37C8aE62BeAd8212D597",
"proxyAdmin": "0xd7CF8c05fd81b8cA7CfF8E6C49B08a9D63265c9B",
"rpcUrls": [
{
"http": "https://rpc.ankr.com/avalanche"
},
{
"http": "https://api.avax.network/ext/bc/C/rpc",
"pagination": {
"maxBlockRange": 100000,
"minBlockNumber": 6765067
}
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x3bF6Ac986C7Af9A9Ac356C0e99C0041EFd8D96e7",
"staticAggregationIsm": "0xe7a61510EA7197281b49e5bdf1798608d5132595",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0xa5E13796eB7d2EDCc88012c8cfF90D69B51FcF9f",
"staticMerkleRootMultisigIsmFactory": "0x896cF1D1B66cD211633eDd589fF158E8Cfaf9B54",
"staticMessageIdMultisigIsmFactory": "0x8819D653DF5b1FC0DdB32189a2704E471AF8483c",
"storageGasOracle": "0x175821F30AdCAA4bbB72Ce98eF76C2E0De2C3f21",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x9Cad0eC82328CEE2386Ec14a12E81d070a27712f",
"staticMerkleRootWeightedMultisigIsmFactory": "0xEdF170Da58598955e9a63DA43885842108969129",
"staticMessageIdWeightedMultisigIsmFactory": "0xf44bae1e60bD5B895B2c5bAfF26C49B7e324E36C",
"technicalStack": "other"
},
"base": {
"aggregationHook": "0x13f3d4B0Ee0a713430fded9E18f7fb6c91A6E41F",
"blockExplorers": [
{
"apiUrl": "https://api.basescan.org/api",
"family": "etherscan",
"name": "BaseScan",
"url": "https://basescan.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 10
},
"chainId": 8453,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Base",
"domainId": 8453,
"domainRoutingIsm": "0x80C8F6394c0FcF7bAB16ac08b85484361eCe5888",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"fallbackRoutingHook": "0x4Eb82Ee35b0a1c1d776E3a3B547f9A9bA6FCC9f2",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-base.safe.global/",
"index": {
"from": 5695475
},
"interchainAccountIsm": "0x223F7D3f27E6272266AE4B5B91Fd5C7A2d798cD8",
"interchainAccountRouter": "0x4767D22117bBeeb295413000B620B93FD8522d53",
"interchainGasPaymaster": "0xc3F23848Ed2e04C0c6d41bd7804fa8f89F940B94",
"interchainSecurityModule": "0x4EC3B7A1E41032C7b557fBb5c7FEbB255D23d41E",
"mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"merkleTreeHook": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"name": "base",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x46fa3A5780e5B90Eaf34BDED554d5353B5ABE9E7",
"pausableIsm": "0x2AF32cF8e3Cf42d221eDa0c843818fA5ee129E27",
"protocol": "ethereum",
"protocolFee": "0x99ca8c74cE7Cfa9d72A51fbb05F9821f5f826b3a",
"proxyAdmin": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"rpcUrls": [
{
"http": "https://base.publicnode.com/"
},
{
"http": "https://mainnet.base.org"
},
{
"http": "https://base.blockpi.network/v1/rpc/public"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x77bE0b5aE400675063Ce2B2B0d692D9341f4b193",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"storageGasOracle": "0xBF12ef4B9f307463D3FB59c3604F294dDCe287E2",
"testRecipient": "0xb7C9307fE90B9AB093c6D3EdeE3259f5378D5f03",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x182E8d7c5F1B06201b102123FC7dF0EaeB445a7B",
"staticMerkleRootWeightedMultisigIsmFactory": "0x414B67F62b143d6db6E9b633168Dd6fd4DA20642",
"staticMessageIdWeightedMultisigIsmFactory": "0xcfacC141f090E5441D8F274659D43ec20F748b19",
"technicalStack": "opstack"
},
"blast": {
"aggregationHook": "0x012278333Ce0A845AE9bD7302867a59Bd5D3635d",
"blockExplorers": [
{
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/81457/etherscan/api",
"family": "routescan",
"name": "Blast Explorer",
"url": "https://blastexplorer.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 81457,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Blast",
"domainId": 81457,
"domainRoutingIsm": "0x0296D16d371a49F631143612020138896b3eA421",
"domainRoutingIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"fallbackRoutingHook": "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-blast.safe.global",
"index": {
"from": 2496427
},
"interchainAccountIsm": "0xe93f2f409ad8B5000431D234472973fe848dcBEC",
"interchainAccountRouter": "0x2f4Eb04189e11Af642237Da62d163Ab714614498",
"interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9",
"interchainSecurityModule": "0x91c650094f876498B544cFbF47bDf4AD5762571f",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
"name": "blast",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xE0C452DDA7506f0F4dE5C8C1d383F7aD866eA4F0",
"pausableIsm": "0x4C97D35c668EE5194a13c8DE8Afc18cce40C9F28",
"protocol": "ethereum",
"protocolFee": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"rpcUrls": [
{
"http": "https://rpc.blast.io"
},
{
"http": "https://rpc.ankr.com/blast"
}
],
"staticAggregationHookFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticAggregationIsm": "0x208263bB303B2a737642fB13C765F106a2591be8",
"staticAggregationIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMerkleRootMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMessageIdMultisigIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"storageGasOracle": "0xBDa330Ea8F3005C421C8088e638fBB64fA71b9e0",
"technicalStack": "opstack",
"testRecipient": "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72",
"staticMerkleRootWeightedMultisigIsmFactory": "0x8Ea50255C282F89d1A14ad3F159437EE5EF0507f",
"staticMessageIdWeightedMultisigIsmFactory": "0x06De94EfBE80A2804c5FDE2e7C4278a10575A272"
},
"bob": {
"aggregationHook": "0x87893ae9DF41fF6e41a7c982AA884edDd8770840",
"blockExplorers": [
{
"apiUrl": "https://explorer.gobob.xyz/api",
"family": "blockscout",
"name": "BOB Explorer",
"url": "https://explorer.gobob.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 60808,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "BOB",
"domainId": 60808,
"domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xF5165f115ba4E1Adc09f0EB392232D65F219806a",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction.safe.gobob.xyz",
"index": {
"from": 3225119
},
"interchainAccountIsm": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4",
"interchainAccountRouter": "0x5C02157068a52cEcfc98EDb6115DE6134EcB4764",
"interchainGasPaymaster": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05",
"interchainSecurityModule": "0xCE12fcDAA985D84CBb9e17EA81AFa23e5756ECf9",
"mailbox": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147",
"merkleTreeHook": "0x781bE492F1232E66990d83a9D3AC3Ec26f56DAfB",
"name": "bob",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xc22B646edf6c9A43d83fDBc8D5E1B3c6DAfACb83",
"pausableIsm": "0x4E1c88DD261BEe2941e6c1814597e30F53330428",
"protocol": "ethereum",
"protocolFee": "0x2E4B42D3d0FC105E7A729e0Ca757761A61258d14",
"proxyAdmin": "0x95878Fd41bC26f7045C0b98e381c22f010745A75",
"rpcUrls": [
{
"http": "https://rpc.gobob.xyz"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x132280A4110A22Cf2D7279AD33d875b445793948",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x2Fca7f6eC3d4A0408900f2BB30004d4616eE985E",
"technicalStack": "opstack",
"testRecipient": "0xe03dad16074BC5EEA9A9311257BF02Eb0B6AAA2b",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"staticMerkleRootWeightedMultisigIsmFactory": "0xb89c6ED617f5F46175E41551350725A09110bbCE",
"staticMessageIdWeightedMultisigIsmFactory": "0xa2401b57A8CCBF6AbD9b7e62e28811b2b523AB2B"
},
"bsc": {
"aggregationHook": "0x402Fc106576462a892355d69ACF03D46A888ae88",
"blockExplorers": [
{
"apiUrl": "https://api.bscscan.com/api",
"family": "etherscan",
"name": "BscScan",
"url": "https://bscscan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": "finalized"
},
"chainId": 56,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Binance Smart Chain",
"displayNameShort": "Binance",
"domainId": 56,
"domainRoutingIsm": "0xBc3Af0D4930502Ff0f6a8416a7a184c7BFFe19E7",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0xe6Af5720d34213C805C08e2470aea979e3F72F75",
"fallbackRoutingHook": "0x237E81f87F57Badad9e09f13CC676D986cA852e7",
"gasCurrencyCoinGeckoId": "binancecoin",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-bsc.safe.global/",
"index": {
"from": 32893043
},
"interchainAccountIsm": "0x9e22945bE593946618383B108CC5bce09eBA4C26",
"interchainAccountRouter": "0x32A07c1B7a7fe8D4A0e44B0181873aB9d64C16c1",
"interchainGasPaymaster": "0x78E25e7f84416e69b9339B0A6336EB6EFfF6b451",
"interchainSecurityModule": "0x08b98B5a7ef4AF12c87Efb6848AC56F13072Acc1",
"mailbox": "0x2971b9Aec44bE4eb673DF1B88cDB57b96eefe8a4",
"merkleTreeHook": "0xFDb9Cd5f9daAA2E4474019405A328a88E7484f26",
"name": "bsc",
"nativeToken": {
"decimals": 18,
"name": "BNB",
"symbol": "BNB"
},
"pausableHook": "0x7DBdAd1b4A922B65d37d7258a4227b6658344b7f",
"pausableIsm": "0x25dB01caDf91CfD2f7e6dD829Ce81698217F9151",
"protocol": "ethereum",
"protocolFee": "0xA8Aa5f14a5463a78E45CC068F11c867949F3E367",
"proxyAdmin": "0x65993Af9D0D3a64ec77590db7ba362D6eB78eF70",
"rpcUrls": [
{
"http": "https://rpc.ankr.com/bsc"
},
{
"http": "https://bsc.drpc.org"
},
{
"http": "https://bscrpc.com"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xe70E86a7D1e001D419D71F960Cb6CaD59b6A3dB6",
"staticAggregationIsm": "0xfA360ff588623A026BF19A1801F2A8F1f045fa33",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x38B3878c4fb44d201DA924c4a04bae3EE728c065",
"staticMerkleRootMultisigIsmFactory": "0xfADBc81Ca8A957F1Bf7c78bCc575b28DBDE042b6",
"staticMessageIdMultisigIsmFactory": "0x4B1d8352E35e3BDE36dF5ED2e73C24E35c4a96b7",
"storageGasOracle": "0x91d23D603d60445411C06e6443d81395593B7940",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x7024078130D9c2100fEA474DAD009C2d1703aCcd",
"staticMerkleRootWeightedMultisigIsmFactory": "0x6f72BF0018a93689D9CD6BF59C7AAeA66F578Fc1",
"staticMessageIdWeightedMultisigIsmFactory": "0x058C7458193f1b28e2bF7547E3f7a6A719Fc0f59",
"technicalStack": "other",
"transactionOverrides": {
"gasPrice": 3000000000
}
},
"celo": {
"aggregationHook": "0xc65890329066FB20c339Bc5C22f1756e9D3a4fF5",
"blockExplorers": [
{
"apiUrl": "https://api.celoscan.io/api",
"family": "etherscan",
"name": "CeloScan",
"url": "https://celoscan.io"
},
{
"apiUrl": "https://explorer.celo.org/mainnet/api",
"family": "blockscout",
"name": "Blockscout",
"url": "https://explorer.celo.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 5,
"reorgPeriod": 0
},
"chainId": 42220,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Celo",
"domainId": 42220,
"domainRoutingIsm": "0xf18E32428dad0802C5D6F723cB80A6Da889777c4",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x2A2c22B0a8615ad24839fA6Af302E896Af32d1a3",
"fallbackRoutingHook": "0xDC98a856fb9112894c2fE32267DA8bF35645FAF3",
"gasCurrencyCoinGeckoId": "celo",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-celo.safe.global/",
"index": {
"from": 22102340
},
"interchainAccountIsm": "0xB732c83aeE29596E3163Da2260710eAB67Bc0B29",
"interchainAccountRouter": "0x27a6cAe33378bB6A6663b382070427A01fc9cB37",
"interchainGasPaymaster": "0x571f1435613381208477ac5d6974310d88AC7cB7",
"interchainSecurityModule": "0x75EEa329FAD5680f386d586Ac453b62e858C1CA8",
"mailbox": "0x50da3B3907A08a24fe4999F4Dcf337E8dC7954bb",
"merkleTreeHook": "0x04dB778f05854f26E67e0a66b740BBbE9070D366",
"name": "celo",
"nativeToken": {
"decimals": 18,
"name": "Celo",
"symbol": "CELO"
},
"pausableHook": "0x80672c5D9Fd26B235654C24adc1CFcDeb8d15115",
"pausableIsm": "0x6Bc4437ce69696C9461Cbc89582c259AC8847A58",
"protocol": "ethereum",
"protocolFee": "0x89886d431f9c3eEE64DCD6dAbA3f7D689D98D899",
"proxyAdmin": "0x90f9a2E9eCe93516d65FdaB726a3c62F5960a1b9",
"rpcUrls": [
{
"http": "https://forno.celo.org"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xc3745652EFB8555A8b064A0EA78d295133d326D2",
"staticAggregationIsm": "0x99e8E56Dce3402D6E09A82718937fc1cA2A9491E",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x1722dd970a1F56040712129f5Eeb76B003fd7500",
"staticMerkleRootMultisigIsmFactory": "0x4C96a1abc44dc846775CE702C9E9BE821D3b487c",
"staticMessageIdMultisigIsmFactory": "0xaB402f227e892Ef37C105bf06619c0fa106a1fB2",
"storageGasOracle": "0xD9A9966E7dA9a7f0032bF449FB12696a638E673C",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xCeF677b65FDaA6804d4403083bb12B8dB3991FE1",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0f05deB9c5931c3F87209674B6d4c6df74F6DCBc",
"staticMessageIdWeightedMultisigIsmFactory": "0x58924b11A3B03D533192Dd5a92bc358F5a970E34",
"technicalStack": "other"
},
"cheesechain": {
"aggregationHook": "0x8007d1e60991fB9BE1be26f70A7cE284fdE7da97",
"blockExplorers": [
{
"apiUrl": "https://fetascan.xyz/api",
"family": "blockscout",
"name": "Fetascan",
"url": "https://fetascan.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 30,
"reorgPeriod": 1
},
"chainId": 383353,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "CheeseChain",
"domainId": 383353,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x03E20381530F2D50A0c9Ef153C19E74695c03433",
"gasCurrencyCoinGeckoId": "cheese-2",
"index": {
"from": 50650
},
"interchainAccountIsm": "0x4Eb82Ee35b0a1c1d776E3a3B547f9A9bA6FCC9f2",
"interchainAccountRouter": "0xEF9A332Ec1fD233Bf9344A58be56ff9E104B4f60",
"interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"interchainSecurityModule": "0x15f859523466132580AB74Fd27c920CE5372a1b0",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD",
"name": "cheesechain",
"nativeToken": {
"decimals": 18,
"name": "Cheese",
"symbol": "CHEESE"
},
"pausableHook": "0x7b75b29caD47e10146e29BBf7BD9025e021a7023",
"pausableIsm": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42",
"protocol": "ethereum",
"protocolFee": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://cheesechain.calderachain.xyz/http"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xD3bd8f20e169364d14c7dBFE698258D780FC71e3",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xe4057c5B0c43Dc18E36b08C39B419F190D29Ac2d",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x4848d54987ffc732aD313827cdC25DF2eedD79d8",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a",
"staticMerkleRootWeightedMultisigIsmFactory": "0x148CF67B8A242c1360bb2C93fCe203EC4d4f9B56",
"staticMessageIdWeightedMultisigIsmFactory": "0xcd849e612Aaa138f03698C3Edb42a34117BFF631",
"gnosisSafeTransactionServiceUrl": "https://prod.cheese.transaction.keypersafe.xyz/"
},
"cyber": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [
{
"apiUrl": "https://api.socialscan.io/cyber",
"family": "other",
"name": "Cyber Mainnet Explorer",
"url": "https://cyberscan.co"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 7560,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Cyber",
"domainId": 7560,
"domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 4842212
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xf563C8347b0b03542d1027e0450166A9E56Ce4b0",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "cyber",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"protocol": "ethereum",
"protocolFee": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.cyber.co"
},
{
"http": "https://cyber.alt.technology"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x5F3C25e6AfDC6953fF1c7a661963D5a54E239A8D",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92df6bb7ba89ce4d6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x989B7307d266151BE763935C856493D968b2affF",
"staticMessageIdWeightedMultisigIsmFactory": "0x71388C9E25BE7b229B5d17Df7D4DB3F7DA7C962d",
"interchainAccountIsm": "0x67F36550b73B731e5b2FC44E4F8f250d89c87bD6",
"interchainAccountRouter": "0x7B032cBB00AD7438E802A66D8b64761A06E5df22",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "opstack"
},
"degenchain": {
"aggregationHook": "0xDC995884ec53b6Bc809ed614f5E92084600002ed",
"blockExplorers": [
{
"apiUrl": "https://explorer.degen.tips/api/eth-rpc",
"family": "blockscout",
"name": "Degen Chain Explorer",
"url": "https://explorer.degen.tips"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 10,
"reorgPeriod": 5
},
"chainId": 666666666,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Degen",
"domainId": 666666666,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "degen-base",
"index": {
"from": 23783929
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xc6282b9525b43E373BdE5B8C018a486502552B73",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "degenchain",
"nativeToken": {
"decimals": 18,
"name": "Degen",
"symbol": "DEGEN"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.degen.tips"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xE89fF24e1979F6AbD6b71b733cc62d1289d193c4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x71388C9E25BE7b229B5d17Df7D4DB3F7DA7C962d",
"staticMessageIdWeightedMultisigIsmFactory": "0x3E969bA938E6A993eeCD6F65b0dd8712B07dFe59",
"interchainAccountIsm": "0xD8aF449f8fEFbA2064863DCE5aC248F8B232635F",
"interchainAccountRouter": "0x3881c3e945CBB89ae67c43E82f570baDF1c6EA94",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"eclipsemainnet": {
"blockExplorers": [
{
"apiUrl": "https://explorer.eclipse.xyz/api",
"family": "other",
"name": "Eclipse Explorer",
"url": "https://explorer.eclipse.xyz/"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 0.4,
"reorgPeriod": 0
},
"chainId": 1408864445,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Eclipse",
"domainId": 1408864445,
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 1,
"mode": "sequence",
"chunk": 100
},
"interchainGasPaymaster": "ABb3i11z7wKoGCfeRQNQbVYWjAm7jG7HzZnDLV4RKRbK",
"mailbox": "EitxJuv2iBjsg2d7jVy2LDC1e2zBrx4GB5Y9h2Ko3A9Y",
"merkleTreeHook": "EitxJuv2iBjsg2d7jVy2LDC1e2zBrx4GB5Y9h2Ko3A9Y",
"name": "eclipsemainnet",
"nativeToken": {
"decimals": 9,
"name": "Ether",
"symbol": "ETH"
},
"protocol": "sealevel",
"rpcUrls": [
{
"http": "https://mainnetbeta-rpc.eclipse.xyz"
}
],
"validatorAnnounce": "Hqnn593pqDZWLy6bKZ4NbY767wFhUNBShDrLktuQa3Q2",
"interchainSecurityModule": "BgG35GxoaMgmiam3EJzcwivwQ2DTYGPTLfUCg7bhiH6V",
"technicalStack": "other"
},
"endurance": {
"aggregationHook": "0x62c39B0500760c46Ae9Ae312A30f63445dc24C3a",
"blockExplorers": [
{
"apiUrl": "https://explorer-endurance.fusionist.io/api",
"family": "blockscout",
"name": "Endurance Explorer",
"url": "https://explorer-endurance.fusionist.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 12,
"reorgPeriod": 15
},
"chainId": 648,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Endurance",
"domainId": 648,
"domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x473884010F0C1742DA8Ad01E7E295624B931076b",
"gasCurrencyCoinGeckoId": "endurance",
"gnosisSafeTransactionServiceUrl": "https://safewallet.fusionist.io/cgw/api",
"index": {
"from": 952917
},
"interchainAccountIsm": "0xCeafc098e5c3c7768b9229Be2FEC275862A81Abd",
"interchainAccountRouter": "0xed9a722c543883FB7e07E78F3879762DE09eA7D5",
"interchainGasPaymaster": "0xB30EAB08aa87138D57168D0e236850A530f49921",
"interchainSecurityModule": "0x48Be1A244EbFEe8E66D220004f93e2aa42CC3463",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xC831271c1fB212012811a91Dd43e5926C1020563",
"name": "endurance",
"nativeToken": {
"decimals": 18,
"name": "Fusionist",
"symbol": "ACE"
},
"pausableHook": "0xaE7BCf37D4541d3CFc46c1459829c1246E11aE08",
"pausableIsm": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"protocol": "ethereum",
"protocolFee": "0xcf678903c003651DB0bb933820259A16ea9d95e4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc-endurance.fusionist.io"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x20eB7a6367F962A6bB3B6eB54111A1fD073Bf0DA",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xe243Fb51d91c5DE62afAbE44F7Ed2D4DC51668C6",
"testRecipient": "0xD670c00C0Cad3D32436d7cF270e739772314A8CE",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x3c7653dD0Ec21A833f99293CDC17495CE249532c",
"staticMerkleRootWeightedMultisigIsmFactory": "0xc441521bA37EaCd9af4f319CcdA27E9D48f74281",
"staticMessageIdWeightedMultisigIsmFactory": "0x730f8a4128Fa8c53C777B62Baa1abeF94cAd34a9",
"technicalStack": "other"
},
"ethereum": {
"aggregationHook": "0xb87AC8EA4533AE017604E44470F7c1E550AC6F10",
"blockExplorers": [
{
"apiUrl": "https://api.etherscan.io/api",
"family": "etherscan",
"name": "Etherscan",
"url": "https://etherscan.io"
},
{
"apiUrl": "https://eth.blockscout.com/api",
"family": "blockscout",
"name": "Blockscout",
"url": "https://blockscout.com/eth/mainnet"
}
],
"blocks": {
"confirmations": 2,
"estimateBlockTime": 13,
"reorgPeriod": 15
},
"chainId": 1,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Ethereum",
"domainId": 1,
"domainRoutingIsm": "0xBA328338044e0C0AFd0591FB6E5e2F83C4e8F742",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x28fA9552F19039b450498B0d8e5DEAe0d0aAc559",
"fallbackRoutingHook": "0x571f1435613381208477ac5d6974310d88AC7cB7",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-mainnet.safe.global/",
"index": {
"from": 18422581
},
"interchainAccountIsm": "0x292C614ED53DaaDBf971521bc2C652d1ca51cB47",
"interchainAccountRouter": "0x5E532F7B610618eE73C2B462978e94CB1F7995Ce",
"interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611",
"interchainSecurityModule": "0x0DCb0e2ceDB8828Ab1809d742C3621c7FE169E5B",
"mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239",
"merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA",
"name": "ethereum",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x3A66Dc852e56d3748838b3C27CF381105b83705b",
"pausableIsm": "0xDC98a856fb9112894c2fE32267DA8bF35645FAF3",
"protocol": "ethereum",
"protocolFee": "0x8B05BF30F6247a90006c5837eA63C7905D79e6d8",
"proxyAdmin": "0x75EE15Ee1B4A75Fa3e2fDF5DF3253c25599cc659",
"rpcUrls": [
{
"http": "https://ethereum.publicnode.com"
},
{
"http": "https://cloudflare-eth.com"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x6D2555A8ba483CcF4409C39013F5e9a3285D3C9E",
"staticAggregationIsm": "0x5447cdC0f4B1Afd827BF9d2F6b6cE7668d5dc284",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x46FA191Ad972D9674Ed752B69f9659A0d7b22846",
"staticMerkleRootMultisigIsmFactory": "0x47e8aF9e30C32Ab91060ED587894288786761B45",
"staticMessageIdMultisigIsmFactory": "0xfA21D9628ADce86531854C2B7ef00F07394B0B69",
"storageGasOracle": "0xc9a103990A8dB11b4f627bc5CD1D0c2685484Ec5",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xCe74905e51497b4adD3639366708b821dcBcff96",
"staticMerkleRootWeightedMultisigIsmFactory": "0xA2502bF73e5313c1bf48E47C887cdcbf2640FA41",
"staticMessageIdWeightedMultisigIsmFactory": "0x4272124Fba59CbA076D85375895f94B6a3485c3E",
"technicalStack": "other"
},
"fraxtal": {
"aggregationHook": "0xD7ff06cDd83642D648baF0d36f77e79349120dA4",
"blockExplorers": [
{
"apiUrl": "https://api.fraxscan.com/api",
"family": "etherscan",
"name": "Fraxscan",
"url": "https://fraxscan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 252,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Fraxtal",
"domainId": 252,
"domainRoutingIsm": "0x0CA20946c1b7367Bd47C0a35E8feD23a4Ff59B9a",
"domainRoutingIsmFactory": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"fallbackRoutingHook": "0xC077A0Cc408173349b1c9870C667B40FE3C01dd7",
"gasCurrencyCoinGeckoId": "frax-ether",
"gnosisSafeTransactionServiceUrl": "https://transaction-frax.safe.optimism.io",
"index": {
"from": 5350807
},
"interchainAccountIsm": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF",
"interchainAccountRouter": "0xbed53B5C5BCE9433f25A2A702e6df13E22d84Ae9",
"interchainGasPaymaster": "0x2Fca7f6eC3d4A0408900f2BB30004d4616eE985E",
"interchainSecurityModule": "0xF80aaED3e93c02ceEE812cCAe6d15BDB68e62F4D",
"mailbox": "0x2f9DB5616fa3fAd1aB06cB2C906830BA63d135e3",
"merkleTreeHook": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147",
"name": "fraxtal",
"nativeToken": {
"decimals": 18,
"name": "Frax Ether",
"symbol": "frxETH"
},
"pausableHook": "0x4E1c88DD261BEe2941e6c1814597e30F53330428",
"pausableIsm": "0x26f32245fCF5Ad53159E875d5Cae62aEcf19c2d4",
"protocol": "ethereum",
"protocolFee": "0xD1E267d2d7876e97E217BfE61c34AB50FEF52807",
"proxyAdmin": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"rpcUrls": [
{
"http": "https://rpc.frax.com"
},
{
"http": "https://fraxtal.drpc.org"
}
],
"staticAggregationHookFactory": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationIsm": "0xcA26D50602efA9d835b01A142Ae218f59aa60433",
"staticAggregationIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticMerkleRootMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0x5060eCD5dFAD300A90592C04e504600A7cdcF70b",
"testRecipient": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x1956848601549de5aa0c887892061fA5aB4f6fC4",
"staticMerkleRootWeightedMultisigIsmFactory": "0x7947b7Fe737B4bd1D3387153f32148974066E591",
"staticMessageIdWeightedMultisigIsmFactory": "0x1A41a365A693b6A7aED1a46316097d290f569F22",
"technicalStack": "opstack"
},
"fusemainnet": {
"aggregationHook": "0xF4135554ED2c60dB9c1166933797164C43ABb6E2",
"blockExplorers": [
{
"apiUrl": "https://explorer.fuse.io/api",
"family": "etherscan",
"name": "FuseExplorer",
"url": "https://explorer.fuse.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 5,
"reorgPeriod": 19
},
"chainId": 122,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Fuse",
"domainId": 122,
"domainRoutingIsm": "0x9c6d97AF7b4541f65C0EADf639202285Bb67b2bF",
"domainRoutingIsmFactory": "0x67A445C9320DCb6F600dc4505851FD1354961A3D",
"fallbackRoutingHook": "0x8C3e1794018a589c9E9226b8543105fCb6cC88C4",
"gasCurrencyCoinGeckoId": "fuse-network-token",
"gnosisSafeTransactionServiceUrl": "https://transaction-fuse.safe.fuse.io",
"index": {
"from": 30585739
},
"interchainAccountIsm": "0x9629c28990F11c31735765A6FD59E1E1bC197DbD",
"interchainAccountRouter": "0x2351FBe24C1212F253b7a300ff0cBCFd97952a19",
"interchainGasPaymaster": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainSecurityModule": "0x58f85b68c664017247E6A65290409953a10adbd8",
"mailbox": "0x3071D4DA6020C956Fe15Bfd0a9Ca8D4574f16696",
"merkleTreeHook": "0xfBc08389224d23b79cb21cDc16c5d42F0ad0F57f",
"name": "fusemainnet",
"nativeToken": {
"decimals": 18,
"name": "FUSE",
"symbol": "FUSE"
},
"pausableHook": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"pausableIsm": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"protocol": "ethereum",
"protocolFee": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"proxyAdmin": "0x6A7398A6a0fB842725afa0A5F1641FC6C9FF89cf",
"rpcUrls": [
{
"http": "https://rpc.fuse.io"
},
{
"http": "https://fuse.drpc.org"
},
{
"http": "https://fuse.liquify.com"
},
{
"http": "https://fuse-pokt.nodies.app"
}
],
"staticAggregationHookFactory": "0x40Ca055683d9aA603f73EDcb62874a1BaAa1d6dA",
"staticAggregationIsm": "0xdE9DF68d672a5965Fca2bF17B24a673983c642c5",
"staticAggregationIsmFactory": "0xc965292958794f59ec3e9538738dD252873F07CC",
"staticMerkleRootMultisigIsmFactory": "0x55E4F0bc6b7Bb493D50839A8592e7ad8d5e93cf7",
"staticMessageIdMultisigIsmFactory": "0xDd1CddEd982e4d271d4D6Bc4cdE8d4F3338733B5",
"storageGasOracle": "0x61374178e45F65fF9D6252d017Cd580FC60B7654",
"testRecipient": "0x83475ca5bEB2Eaa59A2FF48a0544ebaa4a32c2de",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60bB6D060393D3C206719A7bD61844cC82891cfB",
"staticMerkleRootWeightedMultisigIsmFactory": "0xe522A5DcA58e3ab7fEd2bf25DA3E8d90c14083a8",
"staticMessageIdWeightedMultisigIsmFactory": "0x53642476e24E28c3218E8Da44eDEBB4adB9DE13e",
"technicalStack": "other"
},
"gnosis": {
"aggregationHook": "0xdD1FA1C12496474c1dDC67a658Ba81437F818861",
"blockExplorers": [
{
"apiUrl": "https://api.gnosisscan.io/api",
"family": "etherscan",
"name": "GnosisScan",
"url": "https://gnosisscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 5,
"reorgPeriod": 5
},
"chainId": 100,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Gnosis",
"domainId": 100,
"domainRoutingIsm": "0x83873DB8B4982091D0781B4eDF108DCb98075C39",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0xbB5Df000113e767dE11343A16f83De733e5bCC0F",
"fallbackRoutingHook": "0x24f5E353dD03E103Ba2372F7D6FC0cf3A66f849c",
"gasCurrencyCoinGeckoId": "xdai",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-gnosis-chain.safe.global/",
"index": {
"from": 30620793
},
"interchainAccountIsm": "0x07E2062A1bC66a2C1d05cb5C3870a4AF86e0056E",
"interchainAccountRouter": "0xBE70Ab882D1F7E37e04a70CDd9Ec23b37a234064",
"interchainGasPaymaster": "0xDd260B99d302f0A3fF885728c086f729c06f227f",
"interchainSecurityModule": "0x4845d050F06482960435499e88286808c181F913",
"mailbox": "0xaD09d78f4c6b9dA2Ae82b1D34107802d380Bb74f",
"merkleTreeHook": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645",
"name": "gnosis",
"nativeToken": {
"decimals": 18,
"name": "xDai",
"symbol": "xDai"
},
"pausableHook": "0xf728C884De5275a608dEC222dACd0f2BF2E23AB6",
"pausableIsm": "0x223F7D3f27E6272266AE4B5B91Fd5C7A2d798cD8",
"protocol": "ethereum",
"protocolFee": "0x9c2214467Daf9e2e1F45b36d08ce0b9C65BFeA88",
"proxyAdmin": "0x81a92A1a272cb09d7b4970b07548463dC7aE0cB7",
"rpcUrls": [
{
"http": "https://rpc.gnosischain.com",
"pagination": {
"maxBlockRange": 10000,
"minBlockNumber": 25997478
}
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xbC8AA096dabDf4A0200BB9f8D4Cbb644C3D86d7B",
"staticAggregationIsm": "0xe640167B9a283C8b4039fA33f3ac7be6e7E788c5",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x11EF91d17c5ad3330DbCa709a8841743d3Af6819",
"staticMerkleRootMultisigIsmFactory": "0x8E273260EAd8B72A085B19346A676d355740e875",
"staticMessageIdMultisigIsmFactory": "0x603f46cc520d2fc22957b81e206408590808F02F",
"storageGasOracle": "0x5E01d8F34b629E3f92d69546bbc4142A7Adee7e9",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x87ED6926abc9E38b9C7C19f835B41943b622663c",
"staticMerkleRootWeightedMultisigIsmFactory": "0xA37ce588515668632D9025272859D2E5bD3210BB",
"staticMessageIdWeightedMultisigIsmFactory": "0x5B7365640c82F402C43A3961F3fD34Ae31f52931",
"technicalStack": "other"
},
"inevm": {
"aggregationHook": "0xe0dDb5dE7D52918237cC1Ae131F29dcAbcb0F62B",
"blockExplorers": [
{
"apiUrl": "https://inevm.calderaexplorer.xyz/api",
"family": "blockscout",
"name": "Caldera inEVM Explorer",
"url": "https://inevm.calderaexplorer.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 3
},
"chainId": 2525,
"customHook": "0xA376b27212D608324808923Add679A2c9FAFe9Da",
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Injective EVM",
"displayNameShort": "inEVM",
"domainId": 2525,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xf8dba46ff9d8ef650052c89ca2df793fabc375f9",
"gasCurrencyCoinGeckoId": "injective-protocol",
"index": {
"from": 37
},
"interchainAccountIsm": "0x708E002637792FDC031E6B62f23DD60014AC976a",
"interchainAccountRouter": "0xfB8cea1c7F45608Da30655b50bbF355D123A4358",
"interchainGasPaymaster": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"interchainSecurityModule": "0xf7CaC1C661fe307CD4Eadb08EE5E64bb34623c11",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0972954923a1e2b2aAb04Fa0c4a0797e5989Cd65",
"name": "inevm",
"nativeToken": {
"decimals": 18,
"name": "Injective",
"symbol": "INJ"
},
"pausableHook": "0xBDa330Ea8F3005C421C8088e638fBB64fA71b9e0",
"pausableIsm": "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa",
"protocol": "ethereum",
"protocolFee": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://inevm.calderachain.xyz/http"
},
{
"http": "https://mainnet.rpc.inevm.com/http"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x3052aD50De54aAAc5D364d80bBE681d29e924597",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x6119E37Bd66406A1Db74920aC79C15fB8411Ba76",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x28291a7062afA569104bEd52F7AcCA3dD2FafD11",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x15ab173bDB6832f9b64276bA128659b0eD77730B",
"staticMerkleRootWeightedMultisigIsmFactory": "0x8cFBC2F871477126597716FF92773B557014B20e",
"staticMessageIdWeightedMultisigIsmFactory": "0x45192cd669Fa8BeE012d7ea1300EF3b305277FF6"
},
"injective": {
"bech32Prefix": "inj",
"blockExplorers": [
{
"apiUrl": "https://apis.mintscan.io/v1/injective",
"family": "other",
"name": "Mintscan",
"url": "https://www.mintscan.io/injective"
}
],
"blocks": {
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 10
},
"canonicalAsset": "inj",
"chainId": "injective-1",
"contractAddressBytes": 20,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"displayName": "Injective",
"domainId": 6909546,
"gasCurrencyCoinGeckoId": "injective-protocol",
"gasPrice": {
"amount": "700000000",
"denom": "inj"
},
"grpcUrls": [
{
"http": "https://injective-grpc.goldenratiostaking.net:443"
}
],
"index": {
"chunk": 25,
"from": 58419500
},
"interchainGasPaymaster": "0x27ae52298e5b53b34b7ae0ca63e05845c31e1f59",
"mailbox": "0x0f7fb53961d70687e352aa55cb329ca76edc0c19",
"merkleTreeHook": "0x568ad3638447f07def384969f4ea39fae3802962",
"name": "injective",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"nativeToken": {
"decimals": 18,
"denom": "inj",
"name": "Injective",
"symbol": "INJ"
},
"protocol": "cosmos",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"restUrls": [
{
"http": "https://sentry.lcd.injective.network:443"
}
],
"rpcUrls": [
{
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"http": "https://sentry.tm.injective.network:443"
}
],
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"slip44": 118,
"validatorAnnounce": "0x1fb225b2fcfbe75e614a1d627de97ff372242eed",
"technicalStack": "other"
},
"kroma": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [
{
"apiUrl": "https://blockscout.kroma.network/api",
"family": "blockscout",
"name": "Kroma Explorer",
"url": "https://blockscout.kroma.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 255,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Kroma",
"domainId": 255,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 14616307
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xf6AB62267aA88f7219CB9d77e361687e090b224F",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "kroma",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x662771d29DFf0d7C36bB9BB6d4241a02e77585d9",
"protocol": "ethereum",
"protocolFee": "0x9c44E6b8F0dB517C2c3a0478caaC5349b614F912",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc-kroma.rockx.com"
},
{
"http": "https://api.kroma.network"
},
{
"http": "https://1rpc.io/kroma"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xe274f228f87c0D72241CF9aAC15d91e3630aE6f6",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x9024A3902B542C87a5C4A2b3e15d60B2f087Dc3E",
"staticMessageIdWeightedMultisigIsmFactory": "0x749848D7b783A328638C3ea74AcFcfb73c977CbE",
"interchainAccountIsm": "0xd64d126941EaC2Cf53e0E4E8146cC70449b60D73",
"interchainAccountRouter": "0x1A4F09A615aA4a35E5a146DC2fa19975bebF21A5",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "opstack"
},
"linea": {
"aggregationHook": "0x43fF73dF1E170D076D9Ed30d4C6922A9D34322dE",
"blockExplorers": [
{
"apiUrl": "https://api.lineascan.build/api",
"family": "etherscan",
"name": "LineaScan",
"url": "https://lineascan.build"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 59144,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Linea",
"domainId": 59144,
"domainRoutingIsm": "0x6faCF71D804964Ca62f16e56DE74d7dF38FdC3F0",
"domainRoutingIsmFactory": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"fallbackRoutingHook": "0x4E1c88DD261BEe2941e6c1814597e30F53330428",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-linea.safe.global",
"index": {
"from": 5154574
},
"interchainAccountIsm": "0xdcA646C56E7768DD11654956adE24bfFf9Ba4893",
"interchainAccountRouter": "0xD59dA396F162Ed93a41252Cebb8d5DD4F093238C",
"interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28",
"interchainSecurityModule": "0x914E4A88Be1e835b17B6f2F259861989fCB27978",
"mailbox": "0x02d16BC51af6BfD153d67CA61754cF912E82C4d9",
"merkleTreeHook": "0xC077A0Cc408173349b1c9870C667B40FE3C01dd7",
"name": "linea",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x5060eCD5dFAD300A90592C04e504600A7cdcF70b",
"pausableIsm": "0x01aA8200936B475762Ee28D38B43a6cFe9076E52",
"protocol": "ethereum",
"protocolFee": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
"proxyAdmin": "0x7f50C5776722630a0024fAE05fDe8b47571D7B39",
"rpcUrls": [
{
"http": "https://rpc.linea.build"
},
{
"http": "https://linea.blockpi.network/v1/rpc/public"
},
{
"http": "https://1rpc.io/linea"
},
{
"http": "https://linea.drpc.org"
}
],
"staticAggregationHookFactory": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationIsm": "0xF8aD4EB8aBA13ae546B8D01501c63e4543Ff0660",
"staticAggregationIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticMerkleRootMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0x781bE492F1232E66990d83a9D3AC3Ec26f56DAfB",
"testRecipient": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05",
"staticMerkleRootWeightedMultisigIsmFactory": "0x11df2f96bC60DfE5A2ab193AD0FCC0a0336F22d0",
"staticMessageIdWeightedMultisigIsmFactory": "0xb0772086edF20278501bb2aF8D8efDe4B71C73Ce",
"technicalStack": "other"
},
"lisk": {
"aggregationHook": "0xDC995884ec53b6Bc809ed614f5E92084600002ed",
"blockExplorers": [
{
"apiUrl": "https://blockscout.lisk.com/api/eth-rpc",
"family": "blockscout",
"name": "Lisk Explorer",
"url": "https://blockscout.lisk.com"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 1135,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Lisk",
"domainId": 1135,
"domainRoutingIsm": "0x55d6f15ce95B7570d215bE0306706d39877a64d0",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 4195553
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xEED58BC374386596a848856aDCD07f597B70e2d9",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "lisk",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.api.lisk.com"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x36d5F5b369639489c75D6B522eA2465041d2f79B",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x71388C9E25BE7b229B5d17Df7D4DB3F7DA7C962d",
"staticMessageIdWeightedMultisigIsmFactory": "0x3E969bA938E6A993eeCD6F65b0dd8712B07dFe59",
"interchainAccountIsm": "0xD8aF449f8fEFbA2064863DCE5aC248F8B232635F",
"interchainAccountRouter": "0x3881c3e945CBB89ae67c43E82f570baDF1c6EA94",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "opstack"
},
"lukso": {
"aggregationHook": "0xeCBe91B90ab862aa26E5a241D13d1746D24C74A1",
"blockExplorers": [
{
"apiUrl": "https://explorer.execution.mainnet.lukso.network/api",
"family": "blockscout",
"name": "LUKSO Mainnet Explorer",
"url": "https://explorer.execution.mainnet.lukso.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 12,
"reorgPeriod": 15
},
"chainId": 42,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "LUKSO",
"domainId": 42,
"domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xeed3478B08d5618ad15fE494093A011832b995be",
"gasCurrencyCoinGeckoId": "lukso-token-2",
"index": {
"from": 3088760
},
"interchainGasPaymaster": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"interchainSecurityModule": "0xf660731c69aF0E1C441bEE544595dbBEE652ebb6",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"name": "lukso",
"nativeToken": {
"decimals": 18,
"name": "LUKSO",
"symbol": "LYX"
},
"pausableHook": "0x232471495586baF1aCc4FD930B18302AEa3B1b35",
"pausableIsm": "0xF8DbA46fF9D8ef650052c89CA2Df793FaBc375F9",
"protocol": "ethereum",
"protocolFee": "0x31894E7a734540B343d67E491148EB4FC9f7A45B",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.mainnet.lukso.network"
},
{
"http": "https://rpc.lukso.sigmacore.io"
},
{
"http": "https://42.rpc.thirdweb.com"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x51C6A5106EF680d11e8fD9EE1d090c07fdaD2e3D",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x5F954cA945671e48466680eA815727948Ca340ef",
"testRecipient": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"validatorAnnounce": "0x3C2b535a49c6827DF0b8e94467e6922c99E3c092",
"staticMerkleRootWeightedMultisigIsmFactory": "0x148CF67B8A242c1360bb2C93fCe203EC4d4f9B56",
"staticMessageIdWeightedMultisigIsmFactory": "0xcd849e612Aaa138f03698C3Edb42a34117BFF631",
"interchainAccountIsm": "0xd64d126941EaC2Cf53e0E4E8146cC70449b60D73",
"interchainAccountRouter": "0x1A4F09A615aA4a35E5a146DC2fa19975bebF21A5",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "other"
},
"mantapacific": {
"aggregationHook": "0x8464aF853363B8d6844070F68b0AB34Cb6523d0F",
"blockExplorers": [
Cosmos grpc fallbackprovider (#3139) ### Description Implements grpc fallback provider logic for cosmos - initially tried implementing the fallback provider deprioritization logic at middleware level like in the EVM. The difference between ethers and cosmrs is that in the latter, middleware can only live at the transport layer (`tower` crate level). - based on this github [issue](https://github.com/hyperium/tonic/issues/733), that actually doesn't look possible, because the http::Request type isn't `Clone` so it can't be submitted to multiple providers - ended up implementing the fallback provider at the application layer, by keeping an array of grpc channels - There is now a `call` method in `hyperlane_core::FallbackProvider` which I'm actually really happy with. This method handles the fallbackprovider-specific logic by taking in an async closure, running it on each provider, and iterating providers if the closure call fails. In `grpc.rs` you can see how this is slightly verbose but I think it's quite manageable. The only part that bugs me is having to duplicate `Pin::from(Box::from(future))`, but that's need afaict because the regular closure returns an anonymous type - adds `grpcUrls` and `customGrpcUrls` config items - tests the cosmos fallback provider e2e ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues - Fixes: https://github.com/hyperlane-xyz/issues/issues/998 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
10 months ago
{
"apiUrl": "https://pacific-explorer.manta.network/api",
"family": "blockscout",
"name": "Manta Pacific Explorer",
"url": "https://pacific-explorer.manta.network"
Cosmos grpc fallbackprovider (#3139) ### Description Implements grpc fallback provider logic for cosmos - initially tried implementing the fallback provider deprioritization logic at middleware level like in the EVM. The difference between ethers and cosmrs is that in the latter, middleware can only live at the transport layer (`tower` crate level). - based on this github [issue](https://github.com/hyperium/tonic/issues/733), that actually doesn't look possible, because the http::Request type isn't `Clone` so it can't be submitted to multiple providers - ended up implementing the fallback provider at the application layer, by keeping an array of grpc channels - There is now a `call` method in `hyperlane_core::FallbackProvider` which I'm actually really happy with. This method handles the fallbackprovider-specific logic by taking in an async closure, running it on each provider, and iterating providers if the closure call fails. In `grpc.rs` you can see how this is slightly verbose but I think it's quite manageable. The only part that bugs me is having to duplicate `Pin::from(Box::from(future))`, but that's need afaict because the regular closure returns an anonymous type - adds `grpcUrls` and `customGrpcUrls` config items - tests the cosmos fallback provider e2e ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues - Fixes: https://github.com/hyperlane-xyz/issues/issues/998 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
10 months ago
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 169,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Manta Pacific",
"displayNameShort": "Manta",
"domainId": 169,
"domainRoutingIsm": "0xDEed16fe4b1c9b2a93483EDFf34C77A9b57D31Ff",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147",
"fallbackRoutingHook": "0xD1E267d2d7876e97E217BfE61c34AB50FEF52807",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction.safe.manta.network",
"index": {
"from": 437300
},
"interchainAccountIsm": "0x8Ea50255C282F89d1A14ad3F159437EE5EF0507f",
"interchainAccountRouter": "0x693A4cE39d99e46B04cb562329e3F0141cA17331",
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"interchainSecurityModule": "0x4cD0894d9277e62906c788c2F39Ab04610e577B7",
"isTestnet": false,
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
"name": "mantapacific",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
"pausableIsm": "0x6119B76720CcfeB3D256EC1b91218EEfFD6756E1",
"protocol": "ethereum",
"protocolFee": "0xd83A4F747fE80Ed98839e05079B1B7Fe037b1638",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"rpcUrls": [
{
"http": "https://pacific-rpc.manta.network/http"
},
{
"http": "https://manta.nirvanalabs.xyz/mantapublic"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticAggregationIsm": "0x845A3feB4BcdC32a457c4051F67d3950FC6Fd1d1",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticMerkleRootMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"storageGasOracle": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"testRecipient": "0x4E1c88DD261BEe2941e6c1814597e30F53330428",
"testTokenRecipient": "0x5060eCD5dFAD300A90592C04e504600A7cdcF70b",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0A5d831c09204888B8791BF4E9c49445aD54f2C5",
"staticMessageIdWeightedMultisigIsmFactory": "0xc11f8Cf2343d3788405582F65B8af6A4F7a6FfC8",
"technicalStack": "opstack"
},
"mantle": {
"aggregationHook": "0x76b396EaCBF3580B80Ee34C94e780a1Dee76EC72",
"blockExplorers": [
{
"apiUrl": "https://explorer.mantle.xyz/api",
"family": "blockscout",
"name": "Mantle Mainnet Explorer",
"url": "https://explorer.mantle.xyz"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 2,
"reorgPeriod": 2
},
"chainId": 5000,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Mantle",
"domainId": 5000,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xdB670e1a1e312BF17425b08cE55Bdf2cD8F8eD54",
"gasCurrencyCoinGeckoId": "mantle",
"gnosisSafeTransactionServiceUrl": "https://transaction.multisig.mantle.xyz",
"index": {
"from": 65590958
},
"interchainAccountIsm": "0xe039DA3A0071BEd087A12660D7b03cf669c7776E",
"interchainAccountRouter": "0x45285463352c53a481e882cD5E2AF2E25BBdAd0D",
"interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28",
"interchainSecurityModule": "0xA5c6193F340F05feD2064a9e56Bb7b3c6242E21E",
"mailbox": "0x398633D19f4371e1DB5a8EFE90468eB70B1176AA",
"merkleTreeHook": "0x5332D1AC0A626D265298c14ff681c0A8D28dB86d",
"name": "mantle",
"nativeToken": {
"decimals": 18,
"name": "Mantle",
"symbol": "MNT"
},
"pausableHook": "0x9fA986ACB22953c504Fcf5985DFA476d481C3b1B",
"pausableIsm": "0x83c2DB237e93Ce52565AB110124f78fdf159E3f4",
"protocol": "ethereum",
"protocolFee": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
"proxyAdmin": "0x14c3CEee8F431aE947364f43429a98EA89800238",
"rpcUrls": [
{
"http": "https://rpc.mantle.xyz"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xeacA9Ff0Cc6dBFc541c567deD2Fc46bA2012b4a9",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xf9DbC8776Bc2812c4DBEc45383A1783Ac758Fb55",
"technicalStack": "opstack",
"testRecipient": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x1956848601549de5aa0c887892061fA5aB4f6fC4",
"staticMerkleRootWeightedMultisigIsmFactory": "0xAAeb91195C025C9D35F8FF70e13049D8cD25703D",
"staticMessageIdWeightedMultisigIsmFactory": "0x7eFF14440AbE077dBb05C7668079Bc1cD2CD9bd0"
},
"merlin": {
"aggregationHook": "0x68c48C397DBADdC05c9dd469CF6f9DC0dBE745D8",
"blockExplorers": [
{
"apiUrl": "https://scan.merlinchain.io/api",
"family": "other",
"name": "Merlin Explorer",
"url": "https://scan.merlinchain.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 4200,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Merlin",
"domainId": 4200,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x55E4F0bc6b7Bb493D50839A8592e7ad8d5e93cf7",
"gasCurrencyCoinGeckoId": "merlin-chain-bridged-wrapped-btc-merlin",
"index": {
"from": 13523607
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xF16b870563cbb181A53D5e8152cAAa3bF4c356D6",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "merlin",
"nativeToken": {
"decimals": 18,
"name": "Bitcoin",
"symbol": "BTC"
},
"pausableHook": "0xDd1CddEd982e4d271d4D6Bc4cdE8d4F3338733B5",
"pausableIsm": "0x632b4F32d65F7b25B37a27C57dD510f8e4a58Bf9",
"protocol": "ethereum",
"protocolFee": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.merlinchain.io"
},
{
"http": "https://merlin.blockpi.network/v1/rpc/public"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xc965292958794f59ec3e9538738dD252873F07CC",
"testRecipient": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"validatorAnnounce": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"staticMerkleRootWeightedMultisigIsmFactory": "0xF15D70941dE2Bf95A23d6488eBCbedE0a444137f",
"staticMessageIdWeightedMultisigIsmFactory": "0xD7EcB0396406682a27E87F7946c25Ac531140959",
"interchainAccountIsm": "0xA8A311B69f688c1D9928259D872C31ca0d473642",
"interchainAccountRouter": "0x9e8b689e83d929cb8c2d9166E55319a4e6aA83B7",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "polygoncdk"
},
"metis": {
"aggregationHook": "0xDC995884ec53b6Bc809ed614f5E92084600002ed",
"blockExplorers": [
{
"apiUrl": "https://andromeda-explorer.metis.io/api/eth-rpc",
"family": "blockscout",
"name": "Metis Andromeda Explorer",
"url": "https://andromeda-explorer.metis.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 5,
"reorgPeriod": 5
},
"chainId": 1088,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Metis Andromeda",
"domainId": 1088,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "metis-token",
"index": {
"from": 17966274
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x015c05e7bCeAB0D16912667cC03282C6276aC7d7",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "metis",
"nativeToken": {
"decimals": 18,
"name": "Metis",
"symbol": "METIS"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://andromeda.metis.io/?owner=1088"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x64946Bc95d9b12aBd7CF02507D5E2b709670eD48",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"technicalStack": "opstack",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0xcd849e612Aaa138f03698C3Edb42a34117BFF631",
"staticMessageIdWeightedMultisigIsmFactory": "0xb129828B9EDa48192D0B2db35D0E40dCF51B3594",
"interchainAccountIsm": "0x1A4F09A615aA4a35E5a146DC2fa19975bebF21A5",
"interchainAccountRouter": "0xb2674E213019972f937CCFc5e23BF963D915809e",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"mint": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [
{
"apiUrl": "https://explorer.mintchain.io/api",
"family": "blockscout",
"name": "Mint Explorer",
"url": "https://explorer.mintchain.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 185,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Mint",
"domainId": 185,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction-mint.safe.optimism.io",
"index": {
"from": 3752032
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xe5E2224EaF5488Cbc992a35C828Ae0006dFbfE27",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "mint",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"protocol": "ethereum",
"protocolFee": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.mintchain.io"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x64946Bc95d9b12aBd7CF02507D5E2b709670eD48",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0xcd849e612Aaa138f03698C3Edb42a34117BFF631",
"staticMessageIdWeightedMultisigIsmFactory": "0xb129828B9EDa48192D0B2db35D0E40dCF51B3594",
"interchainAccountIsm": "0x1A4F09A615aA4a35E5a146DC2fa19975bebF21A5",
"interchainAccountRouter": "0xb2674E213019972f937CCFc5e23BF963D915809e",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "opstack"
},
"mode": {
"aggregationHook": "0x80D80cfBa98dD2d456ECd43Dcc1f852D5C4EeD7a",
"blockExplorers": [
{
"apiUrl": "https://explorer.mode.network/api",
"family": "blockscout",
"name": "Mode Explorer",
"url": "https://explorer.mode.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 34443,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Mode",
"domainId": 34443,
"domainRoutingIsm": "0xB6F0f1267B01C27326F61a4B4fe2c73751802685",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction-mode.safe.optimism.io",
"index": {
"from": 6817759
},
"interchainAccountIsm": "0xa377b8269e0A47cdd2fD5AAeAe860b45623c6d82",
"interchainAccountRouter": "0x6e1B9f776bd415d7cC3C7458A5f0d801016918f8",
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
"interchainSecurityModule": "0xBE3E3bAe7b14098111dC0bBD0dFce251217E386A",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
"name": "mode",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882",
"pausableIsm": "0xe243Fb51d91c5DE62afAbE44F7Ed2D4DC51668C6",
"protocol": "ethereum",
"protocolFee": "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://mainnet.mode.network"
},
{
"http": "https://mode.drpc.org"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x6BdA2074b7edCE8c4e4cD3D35517267468Aed93F",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
"technicalStack": "opstack",
"testRecipient": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x48083C69f5a42c6B69ABbAd48AE195BD36770ee2",
"staticMerkleRootWeightedMultisigIsmFactory": "0xf4eDb63976d4AB444359f84D4379c8975461120C",
"staticMessageIdWeightedMultisigIsmFactory": "0xf9609bB22847e0DB5F6fB8f95b84D25A19b46ac5"
},
"moonbeam": {
"aggregationHook": "0x23cca255aE83F57F39EAf9D14fB9FdaDF22D5863",
"blockExplorers": [
{
"apiUrl": "https://api-moonbeam.moonscan.io/api",
"family": "etherscan",
"name": "MoonScan",
"url": "https://moonscan.io"
}
],
"blocks": {
"confirmations": 2,
"estimateBlockTime": 12,
"reorgPeriod": "finalized"
},
"chainId": 1284,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Moonbeam",
"domainId": 1284,
"domainRoutingIsm": "0x7Faa23CEdA03364A79e05259e07D5E358E7400F7",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x8061Af3A459093540d17823D651BC5E2A92669a7",
"fallbackRoutingHook": "0x6C2D6eA0969F7Aa0A850CCA88c7BFACa563B2361",
"gasCurrencyCoinGeckoId": "moonbeam",
"gnosisSafeTransactionServiceUrl": "https://transaction.multisig.moonbeam.network",
"index": {
"from": 4719713
},
"interchainAccountIsm": "0x79b3730CE3685f65802aF1771319992bA960EB9D",
"interchainAccountRouter": "0xc4482f66191754a8629D35289043C4EB0285F10E",
"interchainGasPaymaster": "0x14760E32C0746094cF14D97124865BC7F0F7368F",
"interchainSecurityModule": "0x0F016E98B570D263cb5E37948bF4D92F328fcA4A",
"mailbox": "0x094d03E751f49908080EFf000Dd6FD177fd44CC3",
"merkleTreeHook": "0x87403b85f6f316e7ba91ba1fa6C3Fb7dD4095547",
"name": "moonbeam",
"nativeToken": {
"decimals": 18,
"name": "Moonbeam",
"symbol": "GLMR"
},
"pausableHook": "0xe28f2AEEB42ee83CAd068D9A9a449c8b868C137f",
"pausableIsm": "0x58062b26193B28000Cd991Df767f3A2674502de8",
"protocol": "ethereum",
"protocolFee": "0xCd3e29A9D293DcC7341295996a118913F7c582c0",
"proxyAdmin": "0x6A9cdA3dd1F593983BFd142Eb35e6ce4137bd5ce",
"rpcUrls": [
{
"http": "https://rpc.api.moonbeam.network"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x59cC3E7A49DdC4893eB8754c7908f96072A7DbE8",
"staticAggregationIsm": "0xDAAfa04d38d95f5B8418786AE0F7ee5B962ee92B",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x40c6Abcb6A2CdC8882d4bEcaC47927005c7Bb8c2",
"staticMerkleRootMultisigIsmFactory": "0xE2f485bc031Feb5a4C41C1967bf028653d75f0C3",
"staticMessageIdMultisigIsmFactory": "0x84Df48F8f241f11d0fA302d09d73030429Bd9C73",
"storageGasOracle": "0x448b7ADB0dA36d41AA2AfDc9d63b97541A7b3819",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x8c1001eBee6F25b31863A55EadfF149aF88B356F",
"staticMerkleRootWeightedMultisigIsmFactory": "0x13B09a1d80e93E03221e1F393B588C28a5dE9B69",
"staticMessageIdWeightedMultisigIsmFactory": "0x1E14479A04786900F32c916c11eE1EEf81B5a6bA",
"technicalStack": "polkadotsubstrate",
"transactionOverrides": {
"maxFeePerGas": 350000000000,
"maxPriorityFeePerGas": 50000000000
}
},
"neutron": {
"bech32Prefix": "neutron",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"blockExplorers": [
{
"apiUrl": "https://apis.mintscan.io/v1/neutron",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"family": "other",
"name": "Mintscan",
"url": "https://www.mintscan.io/neutron"
}
],
"blocks": {
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 1
},
"canonicalAsset": "untrn",
"chainId": "neutron-1",
"contractAddressBytes": 32,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"displayName": "Neutron",
"domainId": 1853125230,
"gasCurrencyCoinGeckoId": "neutron-3",
"gasPrice": {
Update IGP gas oracles with new heuristics, get Cosmos gas prices from registry (#3662) ### Description The original and main motivation of this PR was to feel confident when running `deploy.ts -m igp` off of main. Prior to this, running it off main could result in misconfiguring gas oracles, particularly when it came to non-EVM remotes. See https://github.com/hyperlane-xyz/issues/issues/1178 for some context. This PR does a number of things: - Fetches Cosmos gas prices from the Cosmos registry - the `gasPrices.json` now lets you specify the decimals relating to the amount in there. There are 2 reasons for this: it's easier for us to deal with gwei values for EVM chains (as we often end up manually changing these instead of just relying on the script). The second reason is covered in the next bullet - Handles decimals when it comes to gas prices. The existing tooling assumed gas prices would always be denominated in wei. An extra weird situation arises with non-EVM chains: chains like Neutron have gas prices that are quotes in the smallest denomination (ie the equivalent of "wei" for NTRN), but the gas price is not an integer and is very small, e.g. `0.0053`. This poses issues because the IGP contracts require the gas price that's configured onchain to be an integer. Simply rounding up from 0.0053 to 1 results in almost 2 orders of magnitude difference :(. So the solution here is to have some logic that accommodates really tiny gas prices by scaling up the configured gas price and scaling down the configured token exchange rate. - Applies some "non-linear" gas pricing heuristics. See https://github.com/hyperlane-xyz/issues/issues/1204 and https://discord.com/channels/935678348330434570/935678739663192184/1232293417309044818 for some context - Running `update-agent-config.ts` will fetch gas prices for Cosmos chains from the Cosmos registry and ensure they're accurate ### Drive-by changes Some logging messages when applying IGP gas oracle changes to make it more clear what the change actually does ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3386 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3484 - Fixes https://github.com/hyperlane-xyz/issues/issues/1178 - Fixes https://github.com/hyperlane-xyz/issues/issues/1206 - Fixes https://github.com/hyperlane-xyz/issues/issues/1204 ### Backward compatibility Fully backward compatible ### Testing Ran deploy.ts for the IGP on all chains! --------- Co-authored-by: nambrot <nambrot@googlemail.com>
7 months ago
"amount": "0.0053",
"denom": "untrn"
},
"grpcUrls": [
{
"http": "http://grpc-kralum.neutron-1.neutron.org:80"
}
],
"index": {
"chunk": 5,
"from": 4000000
},
"interchainGasPaymaster": "0x738a4454e066c3bcb48cb0f03dca1c69b3c3d5ffa4f4470096083f0680a169ac",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"isTestnet": false,
"mailbox": "0x848426d50eb2104d5c6381ec63757930b1c14659c40db8b8081e516e7c5238fc",
"merkleTreeHook": "0xcd30a0001cc1f436c41ef764a712ebabc5a144140e3fd03eafe64a9a24e4e27c",
"name": "neutron",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"nativeToken": {
"decimals": 6,
"denom": "untrn",
"name": "Neutron",
"symbol": "NTRN"
},
"protocol": "cosmos",
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"restUrls": [
{
"http": "https://rest-lb.neutron.org"
}
],
"rpcUrls": [
{
"http": "https://rpc-arch.mainnet.neutron.tm.p2p.org"
},
{
"http": "https://rpc-kralum.neutron-1.neutron.org"
}
],
"signer": {
"key": "0x5486418967eabc770b0fcb995f7ef6d9a72f7fc195531ef76c5109f44f51af26",
"prefix": "neutron",
"type": "cosmosKey"
},
fix: use secret RPC urls in infra, apply environment-specific registry overrides (#3875) ### Description A while back, it seems secret RPC URLs stopped being used by monorepo services (see https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3179/files#diff-ba3b7bea2b5c046acd88d25ed382df875b49d77e061f2ef8347ffcc741c0353eR34). This adds them back. Some things to note on the approach: - Sadly, due to the way some of the infra config generation works, we're forced to use synchronous interfaces for getting chain metadata in a bunch of places. This is why `getRegistry` returns a `FileSystemRegistry`, which is a `SynchronousRegistry`. - Applying secrets / overrides requires us to do things async for two reasons -- one is just that fetching from GCP secrets is an async operation, the other is that a `MergedRegistry` is not a `SynchronousRegistry`. The approach I've taken is that there are two ways of getting a registry - using `getRegistry` will give the synchronous version that can continue to be used by our sync config generation, but it won't have any environment-specific overrides (tx overrides or secrets). To get an async registry with environment-specific overrides, the `getRegistry` function on the EnvironmentConfig is used. - Overrides are now more succinct as the merging happens later in the pipeline ### Drive-by changes - Started moving away from using the gcloud CLI under the hood for GCP operations and toward using the GCP secret SDK - Updated the mainnet3 key funder to fix an incident, but will follow up with a fresh deploy once this is mergd ### Related issues - These are the code changes for https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3774, but I'll follow up with fresh deploys for the monorepo services ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Connor McEwen <connor.mcewen@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com>
6 months ago
"slip44": 118,
"validatorAnnounce": "0xf3aa0d652226e21ae35cd9035c492ae41725edc9036edf0d6a48701b153b90a0",
"technicalStack": "other"
},
"optimism": {
"aggregationHook": "0x4ccC6d8eB79f2a1EC9bcb0f211fef7907631F91f",
"blockExplorers": [
{
"apiUrl": "https://api-optimistic.etherscan.io/api",
"family": "etherscan",
"name": "Etherscan",
"url": "https://optimistic.etherscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 10
},
"chainId": 10,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Optimism",
"domainId": 10,
"domainRoutingIsm": "0xDFfFCA9320E2c7530c61c4946B4c2376A1901dF2",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0xD2e905108c5e44dADA680274740f896Ea96Cf2Fb",
"fallbackRoutingHook": "0xD4b132C6d4AA93A4247F1A91e1ED929c0572a43d",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-optimism.safe.global/",
"index": {
"from": 111290758
},
"interchainAccountIsm": "0x2c46BF14641d00549ECa4779BF5CBf91602C1DEd",
"interchainAccountRouter": "0x03D6cC17d45E9EA27ED757A8214d1F07F7D901aD",
"interchainGasPaymaster": "0xD8A76C4D91fCbB7Cc8eA795DFDF870E48368995C",
"interchainSecurityModule": "0x3f8b6df0282D9fAF0d12752cD40166298A67f29B",
"mailbox": "0xd4C1905BB1D26BC93DAC913e13CaCC278CdCC80D",
"merkleTreeHook": "0x68eE9bec9B4dbB61f69D9D293Ae26a5AACb2e28f",
"name": "optimism",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xf753CA2269c8A7693ce1808b5709Fbf36a65D47A",
"pausableIsm": "0xD84D8114cCfa5c2403E56aBf754da529430704F0",
"protocol": "ethereum",
"protocolFee": "0xD71Ff941120e8f935b8b1E2C1eD72F5d140FF458",
"proxyAdmin": "0xE047cb95FB3b7117989e911c6afb34771183fC35",
"rpcUrls": [
{
"http": "https://mainnet.optimism.io"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x15DEeAB8dECDe553bb0B1F9C00984cbcae1af3D7",
"staticAggregationIsm": "0xdF6316DF574974110DCC94BB4E520B09Fe3CbEf9",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x7491843F3A5Ba24E0f17a22645bDa04A1Ae2c584",
"staticMerkleRootMultisigIsmFactory": "0xCA6Cb9Bc3cfF9E11003A06617cF934B684Bc78BC",
"staticMessageIdMultisigIsmFactory": "0xAa4Be20E9957fE21602c74d7C3cF5CB1112EA9Ef",
"storageGasOracle": "0x27e88AeB8EA4B159d81df06355Ea3d20bEB1de38",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x30f5b08e01808643221528BB2f7953bf2830Ef38",
"staticMerkleRootWeightedMultisigIsmFactory": "0x313b18228236bf89fc67cca152c62f1896eEa362",
"staticMessageIdWeightedMultisigIsmFactory": "0x3A2e96403d076e9f953166A9E4c61bcD9D164CFe",
"technicalStack": "opstack"
},
"osmosis": {
"bech32Prefix": "osmo",
"blockExplorers": [
{
"apiUrl": "https://apis.mintscan.io/v1/osmosis",
"family": "other",
"name": "Mintscan",
"url": "https://www.mintscan.io/osmosis"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 1
},
"canonicalAsset": "uosmo",
"chainId": "osmosis-1",
"contractAddressBytes": 32,
"deployer": {
"name": "Mitosis",
"url": "https://mitosis.org"
},
"displayName": "Osmosis",
"domainId": 875,
"gasCurrencyCoinGeckoId": "osmosis",
"gasPrice": {
"amount": "0.025",
"denom": "uosmo"
},
"grpcUrls": [
{
"http": "https://osmosis-grpc.publicnode.com:443"
}
],
"index": {
"chunk": 10,
"from": 14389169
},
"interchainGasPaymaster": "0xd20a9dcf61939fc2fe6ad501b9457b1029b3cc7ab12ed72675ea2e10d831ee5d",
"isTestnet": false,
"mailbox": "0x9493e39d85dd038022f97d88aba6bff98d98f9a016b4f2e498bf1d9898420172",
"merkleTreeHook": "0x8920e062ee5ed8afccbc155d13ea9049296399ee41403655864fcd243edc7388",
"name": "osmosis",
"nativeToken": {
"decimals": 6,
"denom": "uosmo",
"name": "Osmosis",
"symbol": "OSMO"
},
"protocol": "cosmos",
"restUrls": [
{
"http": "https://osmosis-rest.publicnode.com"
}
],
"rpcUrls": [
{
"http": "https://osmosis-rpc.publicnode.com"
}
],
"signer": {
"key": "0x5486418967eabc770b0fcb995f7ef6d9a72f7fc195531ef76c5109f44f51af26",
"prefix": "osmo",
"type": "cosmosKey"
},
"slip44": 118,
"validatorAnnounce": "0xaf867da5b09a20ee49161d57f99477c0c42d100f34eb53da0d2eb7fc6c257235",
"technicalStack": "other"
},
"polygon": {
"aggregationHook": "0x34dAb05650Cf590088bA18aF9d597f3e081bCc47",
"blockExplorers": [
{
"apiUrl": "https://api.polygonscan.com/api",
"family": "etherscan",
"name": "PolygonScan",
"url": "https://polygonscan.com"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 2,
"reorgPeriod": "finalized"
},
"chainId": 137,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Polygon",
"domainId": 137,
"domainRoutingIsm": "0xBcb9d74E1D2549fc1939023433aaAB11587bc338",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x0d0E816eE4557689d34fAd5885C53b9393C1D9fA",
"fallbackRoutingHook": "0xca4cCe24E7e06241846F5EA0cda9947F0507C40C",
"gasCurrencyCoinGeckoId": "polygon-ecosystem-token",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-polygon.safe.global/",
"index": {
"from": 49108065
},
"interchainAccountIsm": "0xBAC4529cdfE7CCe9E858BF706e41F8Ed096C1BAd",
"interchainAccountRouter": "0xF163949AD9F88977ebF649D0461398Ca752E64B9",
"interchainGasPaymaster": "0x0071740Bf129b05C4684abfbBeD248D80971cce2",
"interchainSecurityModule": "0x40249639D8b148EBD66FE5b110DEbcE2fa06D683",
"mailbox": "0x5d934f4e2f797775e53561bB72aca21ba36B96BB",
"merkleTreeHook": "0x73FbD25c3e817DC4B4Cd9d00eff6D83dcde2DfF6",
"name": "polygon",
"nativeToken": {
"decimals": 18,
"name": "Polygon Ecosystem Token",
"symbol": "POL"
},
"pausableHook": "0x748040afB89B8FdBb992799808215419d36A0930",
"pausableIsm": "0x6741e91fFDC31c7786E3684427c628dad06299B0",
"protocol": "ethereum",
"protocolFee": "0xF8F3629e308b4758F8396606405989F8D8C9c578",
"proxyAdmin": "0xC4F7590C5d30BE959225dC75640657954A86b980",
"rpcUrls": [
{
"http": "https://polygon-bor.publicnode.com"
},
{
"http": "https://polygon-rpc.com"
},
{
"http": "https://rpc.ankr.com/polygon"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xFeeB86e70e4a640cDd29636CCE19BD6fe8628135",
"staticAggregationIsm": "0xe289bD204Dbb4F3aaFA27Dbe5751C71e101CFD80",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x81AdDD9Ca89105063DaDEBd5B4408551Ce850E22",
"staticMerkleRootMultisigIsmFactory": "0xa9E0E18E78b098c2DE36c42E4DDEA13ce214c592",
"staticMessageIdMultisigIsmFactory": "0xEa5Be2AD66BB1BA321B7aCf0A079fBE304B09Ca0",
"storageGasOracle": "0xA3a24EC5670F1F416AB9fD554FcE2f226AE9D7eB",
"testRecipient": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35",
"testTokenRecipient": "0x85ac1164878e017b67660a74ff1f41f3D05C02Bb",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x454E1a1E1CA8B51506090f1b5399083658eA4Fc5",
"staticMerkleRootWeightedMultisigIsmFactory": "0x07CE1B0cFfa436AE2fb7Fbd7318648774FdA53f9",
"staticMessageIdWeightedMultisigIsmFactory": "0x9e22945bE593946618383B108CC5bce09eBA4C26",
"technicalStack": "other",
"transactionOverrides": {
"maxFeePerGas": 800000000000,
"maxPriorityFeePerGas": 50000000000
}
},
"polygonzkevm": {
"aggregationHook": "0x8464aF853363B8d6844070F68b0AB34Cb6523d0F",
"blockExplorers": [
{
"apiUrl": "https://api-zkevm.polygonscan.com/api",
"family": "etherscan",
"name": "PolygonScan",
"url": "https://zkevm.polygonscan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 10,
"reorgPeriod": 5
},
"chainId": 1101,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Polygon zkEVM",
"displayNameShort": "zkEVM",
"domainId": 1101,
"domainRoutingIsm": "0x8b6862a784f634F4C8E1cbb04c9DA3dB637B7EaA",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0xe4057c5B0c43Dc18E36b08C39B419F190D29Ac2d",
"fallbackRoutingHook": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-zkevm.safe.global/",
"index": {
"from": 6577743
},
"interchainAccountIsm": "0xc1198e241DAe48BF5AEDE5DCE49Fe4A6064cF7a7",
"interchainAccountRouter": "0x20a0A32a110362920597F72974E1E0d7e25cA20a",
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"interchainSecurityModule": "0xAaBb015A97a49eCEa506A3D7b831BFF8458B7421",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
"name": "polygonzkevm",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xc2FbB9411186AB3b1a6AFCCA702D1a80B48b197c",
"pausableIsm": "0x784b9D0f4eF9fb8444DfB5d24AB221C9D1A85395",
"protocol": "ethereum",
"protocolFee": "0xd83A4F747fE80Ed98839e05079B1B7Fe037b1638",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"rpcUrls": [
{
"http": "https://zkevm-rpc.com"
},
{
"http": "https://rpc.ankr.com/polygon_zkevm"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticAggregationIsm": "0xAe7d2FA2aFc57Ce9F05930d403673A267b3efE50",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticMerkleRootMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"storageGasOracle": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"testRecipient": "0xD127D4549cb4A5B2781303a4fE99a10EAd13263A",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9",
"staticMerkleRootWeightedMultisigIsmFactory": "0xc24f3ba8619Fe9db9b95fB616D6945779669e591",
"staticMessageIdWeightedMultisigIsmFactory": "0x882Ad0CcB25CDf928e2a9C899F23eC033C4113f7",
"technicalStack": "polygoncdk",
"transactionOverrides": {
"gasPrice": 1000000000
}
},
"proofofplay": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [
{
"apiUrl": "https://explorer.apex.proofofplay.com/api/eth-rpc",
"family": "blockscout",
"name": "Proof of Play Apex Explorer",
"url": "https://explorer.apex.proofofplay.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 5
},
"chainId": 70700,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Proof of Play Apex",
"domainId": 70700,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 32018468
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x015c05e7bCeAB0D16912667cC03282C6276aC7d7",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "proofofplay",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"protocol": "ethereum",
"protocolFee": "0x73db9c7430548f399e335f3424e8d56080e9010c",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.apex.proofofplay.com"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xB0525d808721426c56377469B92db16857384deF",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0xcd849e612Aaa138f03698C3Edb42a34117BFF631",
"staticMessageIdWeightedMultisigIsmFactory": "0xb129828B9EDa48192D0B2db35D0E40dCF51B3594",
"interchainAccountIsm": "0x1A4F09A615aA4a35E5a146DC2fa19975bebF21A5",
"interchainAccountRouter": "0xb2674E213019972f937CCFc5e23BF963D915809e",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"real": {
"aggregationHook": "0x32B06f415955B35d77AF855b9ec77381485D763c",
"blockExplorers": [
{
"apiUrl": "https://explorer.re.al/api/eth-rpc",
"family": "blockscout",
"name": "re.al Explorer",
"url": "https://explorer.re.al"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 30,
"reorgPeriod": 0
},
"chainId": 111188,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "re.al",
"domainId": 111188,
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0xDd1CddEd982e4d271d4D6Bc4cdE8d4F3338733B5",
"gasCurrencyCoinGeckoId": "real-ether",
"index": {
"from": 363159
},
"interchainGasPaymaster": "0x3071D4DA6020C956Fe15Bfd0a9Ca8D4574f16696",
"interchainSecurityModule": "0xbFA199Fae108dF18860D847c881EF5F8a7745e85",
"mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"merkleTreeHook": "0x55E4F0bc6b7Bb493D50839A8592e7ad8d5e93cf7",
"name": "real",
"nativeToken": {
"decimals": 18,
"name": "Real Ether",
"symbol": "reETH"
},
"pausableHook": "0xc965292958794f59ec3e9538738dD252873F07CC",
"pausableIsm": "0xB9712fAbFaDb3624Dc12B6b261FEB76F8F8278aE",
"protocol": "ethereum",
"protocolFee": "0x59C2dB903937EbE55B59c3415FD55e970FF5f2DC",
"proxyAdmin": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"rpcUrls": [
{
"http": "https://real.drpc.org"
}
],
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x682B8D8414C93a9D392162d867DFBb509c08F718",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"storageGasOracle": "0x40Ca055683d9aA603f73EDcb62874a1BaAa1d6dA",
"technicalStack": "arbitrumnitro",
"testRecipient": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"validatorAnnounce": "0x5F954cA945671e48466680eA815727948Ca340ef",
"staticMerkleRootWeightedMultisigIsmFactory": "0x662771d29DFf0d7C36bB9BB6d4241a02e77585d9",
"staticMessageIdWeightedMultisigIsmFactory": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"interchainAccountIsm": "0x9e8b689e83d929cb8c2d9166E55319a4e6aA83B7",
"interchainAccountRouter": "0xc0C2dB448fC2c84213394Fcb93a3C467e50ECa9E",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"redstone": {
"aggregationHook": "0x7bC13D23eD161E152a05c71D037b4642EA61B8eF",
"blockExplorers": [
{
"apiUrl": "https://explorer.redstone.xyz/api",
"family": "blockscout",
"name": "Redstone Explorer",
"url": "https://explorer.redstone.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 690,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Redstone",
"domainId": 690,
"domainRoutingIsm": "0x5D1e7D7c5B9e6dDC8439F67F10c578f2A1084f6F",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction-redstone.safe.optimism.io",
"index": {
"from": 1797579
},
"interchainAccountIsm": "0x5DA60220C5dDe35b7aE91c042ff5979047FA0785",
"interchainAccountRouter": "0x7a4d31a686A36285d68e14EDD53631417eB19603",
"interchainGasPaymaster": "0x2Fa570E83009eaEef3a1cbd496a9a30F05266634",
"interchainSecurityModule": "0xA3A88Cf5b9eB22a9a192d8fC592ac769B1EA150A",
"mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"merkleTreeHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
"name": "redstone",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
"pausableIsm": "0xD53Fdbb7537aCa82bAf7cCA7204088f15b52796a",
"protocol": "ethereum",
"protocolFee": "0x26f32245fCF5Ad53159E875d5Cae62aEcf19c2d4",
"proxyAdmin": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"rpcUrls": [
{
"http": "https://rpc.redstonechain.com"
}
],
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x3Bb9244a2aBBb710c933e8D82Ff8F0C200F3c036",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"storageGasOracle": "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa",
"testRecipient": "0x1Ab68dC4f7b6cfcd00218D4b761b7F3b5a724555",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
"staticMerkleRootWeightedMultisigIsmFactory": "0x794Fe7970EE45945b0ad2667f99A5bBc9ddfB5d7",
"staticMessageIdWeightedMultisigIsmFactory": "0x7B8AA8f23Ab6B0757eC6FC71894211376D9335b0",
"technicalStack": "opstack"
},
"sanko": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [
{
"apiUrl": "https://explorer.sanko.xyz/api/eth-rpc",
"family": "blockscout",
"name": "Sanko Explorer",
"url": "https://explorer.sanko.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 15,
"reorgPeriod": 1
},
"chainId": 1996,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Sanko",
"domainId": 1996,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "dream-machine-token",
"index": {
"from": 937117
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xAA379b1f1B425b8174e1bF1614A40845053A86cF",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "sanko",
"nativeToken": {
"decimals": 18,
"name": "Dream Machine Token",
"symbol": "DMT"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"protocol": "ethereum",
"protocolFee": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://mainnet.sanko.xyz"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x203B8cEe54c0875d7b3384722636B5Ef4A4D81f7",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x749848D7b783A328638C3ea74AcFcfb73c977CbE",
"staticMessageIdWeightedMultisigIsmFactory": "0x148CF67B8A242c1360bb2C93fCe203EC4d4f9B56",
"interchainAccountIsm": "0x5DA60220C5dDe35b7aE91c042ff5979047FA0785",
"interchainAccountRouter": "0x7a4d31a686A36285d68e14EDD53631417eB19603",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"scroll": {
"aggregationHook": "0x9Bc0FAf446E128a618A88a2F28960Fb2Ca169faE",
"blockExplorers": [
{
"apiUrl": "https://api.scrollscan.com/api",
"family": "etherscan",
"name": "Scroll Explorer",
"url": "https://scrollscan.com/"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 17
},
"chainId": 534352,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Scroll",
"domainId": 534352,
"domainRoutingIsm": "0x4d02AfFc3F030c887e2f914B8B67E0B845e034fD",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0xe03dad16074BC5EEA9A9311257BF02Eb0B6AAA2b",
"fallbackRoutingHook": "0xDa7cECb05C4aeB02c1aFDE277d4306a2da7Bd762",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://safe-transaction-scroll.safe.global",
"index": {
"chunk": 999,
"from": 271840
},
"interchainAccountIsm": "0x32af5Df81fEd5E26119F6640FBB13f3d63a94CDe",
"interchainAccountRouter": "0x0B48a744698ba8dFa514742dFEB6728f52fD66f7",
"interchainGasPaymaster": "0xBF12ef4B9f307463D3FB59c3604F294dDCe287E2",
"interchainSecurityModule": "0x2C63D8BA06b341E73392E4d6ef069064D6fE4CDc",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x6119E37Bd66406A1Db74920aC79C15fB8411Ba76",
"name": "scroll",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x4Eb82Ee35b0a1c1d776E3a3B547f9A9bA6FCC9f2",
"pausableIsm": "0x11Fa12DBaCe771E293e19743feA342e378C6341F",
"protocol": "ethereum",
"protocolFee": "0xc3F23848Ed2e04C0c6d41bd7804fa8f89F940B94",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://scroll.blockpi.network/v1/rpc/public"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xAC0F1820F1F3fEd26293B8714464ca431824f823",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x481171eb1aad17eDE6a56005B7F1aB00C581ef13",
"testRecipient": "0x674f4698d063cE4C0d604c88dD7D542De72f327f",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xd83A4F747fE80Ed98839e05079B1B7Fe037b1638",
"staticMerkleRootWeightedMultisigIsmFactory": "0xcb0D04010584AA5244b5826c990eeA4c16BeAC8C",
"staticMessageIdWeightedMultisigIsmFactory": "0x609707355a53d2aAb6366f48E2b607C599D26B29",
"technicalStack": "other",
"transactionOverrides": {
"gasPrice": 200000000
}
},
"sei": {
"aggregationHook": "0x40514BD46C57455933Be8BAedE96C4F0Ba3507D6",
"blockExplorers": [
{
"apiUrl": "https://seitrace.com/pacific-1/api",
"family": "etherscan",
"name": "Seitrace",
"url": "https://seitrace.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 1
},
"chainId": 1329,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Sei",
"domainId": 1329,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xB3fCcD379ad66CED0c91028520C64226611A48c9",
"gasCurrencyCoinGeckoId": "sei-network",
"gnosisSafeTransactionServiceUrl": "https://transaction.sei-safe.protofire.io",
"index": {
"from": 80809403
},
"interchainAccountIsm": "0xf35dc7B9eE4Ebf0cd3546Bd6EE3b403dE2b9F5D6",
"interchainAccountRouter": "0xBcaedE97a98573A88242B3b0CB0A255F3f90d4d5",
"interchainGasPaymaster": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72",
"interchainSecurityModule": "0x9b8e185A2e166e6E2357d23b4626220C656aD8dF",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xca1b69fA4c4a7c7fD839bC50867c589592bcfe49",
"name": "sei",
"nativeToken": {
"decimals": 18,
"name": "Sei",
"symbol": "SEI"
},
"pausableHook": "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4",
"pausableIsm": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
"protocol": "ethereum",
"protocolFee": "0x83c2DB237e93Ce52565AB110124f78fdf159E3f4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://evm-rpc.sei-apis.com"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x596eCC936068AeBD836e79D530043b868569a61B",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x26f32245fCF5Ad53159E875d5Cae62aEcf19c2d4",
"testRecipient": "0xdB670e1a1e312BF17425b08cE55Bdf2cD8F8eD54",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x5332D1AC0A626D265298c14ff681c0A8D28dB86d",
"staticMerkleRootWeightedMultisigIsmFactory": "0xDf347f7602fFF536337c0B90cEC19CD6998427C4",
"staticMessageIdWeightedMultisigIsmFactory": "0x816CF11aDFF6De498823F739eAfe350E82ee845D",
"technicalStack": "other",
"transactionOverrides": {
"gasPrice": 101000000000
}
},
"solanamainnet": {
"blockExplorers": [
{
"apiUrl": "https://solscan.io",
"family": "other",
"name": "Solana Explorer",
"url": "https://solscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 0.4,
"reorgPeriod": 0
},
"chainId": 1399811149,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Solana",
"displayNameShort": "Sol",
"domainId": 1399811149,
"gasCurrencyCoinGeckoId": "solana",
"index": {
"from": 1,
"mode": "sequence",
"chunk": 100
},
"interchainGasPaymaster": "JAvHW21tYXE9dtdG83DReqU2b4LUexFuCbtJT5tF8X6M",
"mailbox": "E588QtVUvresuXq2KoNEwAmoifCzYGpRBdHByN9KQMbi",
"merkleTreeHook": "E588QtVUvresuXq2KoNEwAmoifCzYGpRBdHByN9KQMbi",
"name": "solanamainnet",
"nativeToken": {
"decimals": 9,
"name": "Solana",
"symbol": "SOL"
},
"protocol": "sealevel",
"rpcUrls": [
{
"http": "https://api.mainnet-beta.solana.com"
}
],
"validatorAnnounce": "pRgs5vN4Pj7WvFbxf6QDHizo2njq2uksqEUbaSghVA8",
"interchainSecurityModule": "372D5YP7jMYUgYBXTVJ7BZtzKv1mq1J6wvjSFLNTRreC",
"technicalStack": "other"
},
"taiko": {
"aggregationHook": "0x1175A31f66C5e3d0ce0ca3B7F80Abe72c6FcE272",
"blockExplorers": [
{
"apiUrl": "https://api.taikoscan.io/api",
"family": "etherscan",
"name": "Taikoscan",
"url": "https://taikoscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 12,
"reorgPeriod": 5
},
"chainId": 167000,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Taiko",
"domainId": 167000,
"domainRoutingIsm": "0x5D1e7D7c5B9e6dDC8439F67F10c578f2A1084f6F",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x79B1257BDBCaeF98Da685A7c225b6e61a119Cb7a",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction.safe.taiko.xyz",
"index": {
"from": 98997
},
"interchainAccountIsm": "0xAE557e108b3336130370aC74836f1356B4b30Cf2",
"interchainAccountRouter": "0x1F8CF09F060A2AE962c0Bb1F92e209a1E7b0E10B",
"interchainGasPaymaster": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42",
"interchainSecurityModule": "0x68Ea629559Df7041adCf61569576023695C4A76b",
"mailbox": "0x28EFBCadA00A7ed6772b3666F3898d276e88CAe3",
"merkleTreeHook": "0x6A55822cf11f9fcBc4c75BC2638AfE8Eb942cAdd",
"name": "taiko",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0xD1E267d2d7876e97E217BfE61c34AB50FEF52807",
"pausableIsm": "0xD670c00C0Cad3D32436d7cF270e739772314A8CE",
"protocol": "ethereum",
"protocolFee": "0x4006E7434086E7f2548582cfD5ff5Ebb0e44839d",
"proxyAdmin": "0x398633D19f4371e1DB5a8EFE90468eB70B1176AA",
"rpcUrls": [
{
"http": "https://rpc.mainnet.taiko.xyz"
}
],
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0xBa2C27984b3Bd991b1CA8C26ce91E07A7208b472",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"storageGasOracle": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
"technicalStack": "other",
"testRecipient": "0x5fC427653b175F6De5A494DE17d1c7636d7E7965",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4",
"staticMerkleRootWeightedMultisigIsmFactory": "0xdf4aA3905e0391C7763e33CB6A08fFa97221D49B",
"staticMessageIdWeightedMultisigIsmFactory": "0x72246331d057741008751AB3976a8297Ce7267Bc"
},
"tangle": {
"aggregationHook": "0xDC995884ec53b6Bc809ed614f5E92084600002ed",
"blockExplorers": [
{
"apiUrl": "https://explorer.tangle.tools/api",
"family": "blockscout",
"name": "Tangle EVM Explorer",
"url": "https://explorer.tangle.tools"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 6,
"reorgPeriod": "finalized"
},
"chainId": 5845,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Tangle",
"domainId": 5845,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "tangle-network",
"index": {
"from": 1678063
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xAA379b1f1B425b8174e1bF1614A40845053A86cF",
"isTestnet": false,
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "tangle",
"nativeToken": {
"decimals": 18,
"name": "Tangle Network Token",
"symbol": "TNT"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.tangle.tools"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xB0525d808721426c56377469B92db16857384deF",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x148CF67B8A242c1360bb2C93fCe203EC4d4f9B56",
"staticMessageIdWeightedMultisigIsmFactory": "0xcd849e612Aaa138f03698C3Edb42a34117BFF631",
"interchainAccountIsm": "0x45285463352c53a481e882cD5E2AF2E25BBdAd0D",
"interchainAccountRouter": "0x67F36550b73B731e5b2FC44E4F8f250d89c87bD6",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "polkadotsubstrate"
},
"viction": {
"aggregationHook": "0x5c7890FAf9c99dC55926F00d624D7Bc6D7ac6834",
"blockExplorers": [
{
"apiUrl": "https://www.vicscan.xyz/api",
"family": "other",
"name": "Vicscan",
"url": "https://www.vicscan.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 3
},
"chainId": 88,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Viction",
"domainId": 88,
"domainRoutingIsm": "0x477145b11E1a71fEb658d96A0E27F19495121504",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"gasCurrencyCoinGeckoId": "tomochain",
"index": {
"chunk": 999,
"from": 73573878
},
"interchainAccountIsm": "0x551BbEc45FD665a8C95ca8731CbC32b7653Bc59B",
"interchainAccountRouter": "0xc11f8Cf2343d3788405582F65B8af6A4F7a6FfC8",
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"interchainSecurityModule": "0x00cd5A9d087E1a87779252487c35ba37C399808D",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
"name": "viction",
"nativeToken": {
"decimals": 18,
"name": "Viction",
"symbol": "VIC"
},
"pausableHook": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"pausableIsm": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"protocol": "ethereum",
"protocolFee": "0xd83A4F747fE80Ed98839e05079B1B7Fe037b1638",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://rpc.tomochain.com"
},
{
"http": "https://viction.blockpi.network/v1/rpc/public"
}
],
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x60586f0b79426f8F406C807a59c7b6478e8bBa0C",
Agent transaction overrides, ensure agent configs are updated in CI (#3563) ### Description - Adds some basic transaction overrides for Ethereum chains to be used by the agents. This follows the existing config schema in chain metadata that we have been using on the TS side for a while. The overrides are as follows: - `transactionOverrides.gasPrice` - if specified, non EIP-1559 txs are used, and they use this gasPrice - `transactionOverrides.gasLimit` - if specified, this takes precedence over any gas estimation that's done and is the gas limit that's used for txs. (This is pretty niche and I don't imagine we'll ever wanna use this internally, but happens to cover the use case described [here](https://discord.com/channels/935678348330434570/984123861144600587/1224617234580766741), which is nice to cover) - `transactionOverrides.maxFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxFeePerGas` - `transactionOverrides.maxPriorityFeePerGas` - if specified and if the chain supports EIP 1559 txs, is used for the `maxPriorityFeePerGas` - Updates some of the transaction overrides in mainnet3 / testnet4 to be more reasonable now that we'll be using them to submit transactions pretty frequently - Note that atm the transaction overrides are most easily applied to the agents via the config JSONs, and not via our K8s configuration. The upshot of this is if we wanna change a transaction override right now, the easiest way to do it will be to run `update-agent-config.ts` and then build a new image. Created https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3565 to track making this experience better - Part of this change means that it's more important to keep the `transactionOverrides` specified in the SDK / infra up to date with the agent config. So I ended up doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 along the way, which also required doing https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311. - To fix the issue with arbitrum blocks, we now require the index.from to be specified in the chain metadata if the chain's technical stack is arbitrum nitro - A new script, `update-agent-config.ts` is added, and it's ran for mainnet3 and testnet4 in CI to make sure there's no diff (similar idea to what we do with prettier) - Along the way I renamed mainnet3_config.json and testnet4_config.json to mainnet_config.json and testnet_config.json. This has been a source of confusion with ppl in the past - in v2 we named them without any numeric suffixes, so we now just do that again ### Drive-by changes - There's a drive-by to poll more frequently for pending transactions (2 seconds). The default is 7 seconds in Ethers, and for many chains that have really quick block times, this may be a way for us to speed up us learning that a transaction is included - Don't enforce gas on the inevm routes, looks like there's some weirdness there that was reported by Nam ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3562 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3325 - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3311 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests -->
8 months ago
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"testRecipient": "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84",
"testTokenRecipient": "0xe042D1fbDf59828dd16b9649Ede7abFc856F7a6c",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9",
"staticMerkleRootWeightedMultisigIsmFactory": "0x766fc1d3F6CFAE5A06Fe8D6b65a3012401Bd36Ba",
"staticMessageIdWeightedMultisigIsmFactory": "0x9f4012ba9368FBb95F56c2Fc2D956df803D8779e",
"technicalStack": "other"
},
"worldchain": {
"aggregationHook": "0x8007d1e60991fB9BE1be26f70A7cE284fdE7da97",
"blockExplorers": [
{
"apiUrl": "https://worldchain-mainnet-explorer.alchemy.com/api",
"family": "blockscout",
"name": "World Chain explorer",
"url": "https://worldchain-mainnet-explorer.alchemy.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 480,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "World Chain",
"domainId": 480,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x03E20381530F2D50A0c9Ef153C19E74695c03433",
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 1328243
},
"interchainAccountIsm": "0xCB9f90EE5d83Ea52ABd922BD70898f0155D54798",
"interchainAccountRouter": "0x473884010F0C1742DA8Ad01E7E295624B931076b",
"interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"interchainSecurityModule": "0x34aD800C9e56D75655680401B8c5140ce4cACDBa",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD",
"name": "worldchain",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x7b75b29caD47e10146e29BBf7BD9025e021a7023",
"pausableIsm": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42",
"protocol": "ethereum",
"protocolFee": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://worldchain-mainnet.g.alchemy.com/public"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xD3bd8f20e169364d14c7dBFE698258D780FC71e3",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xe4057c5B0c43Dc18E36b08C39B419F190D29Ac2d",
"testRecipient": "0x4848d54987ffc732aD313827cdC25DF2eedD79d8",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a",
"staticMerkleRootWeightedMultisigIsmFactory": "0xe8d5590F2e969F9d21f0132f2b596273f8a03Ef2",
"staticMessageIdWeightedMultisigIsmFactory": "0x9024A3902B542C87a5C4A2b3e15d60B2f087Dc3E",
"technicalStack": "opstack"
},
"xai": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [
{
"apiUrl": "https://explorer.xai-chain.net/api",
"family": "blockscout",
"name": "Xai Explorer",
"url": "https://explorer.xai-chain.net"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 5
},
"chainId": 660279,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Xai",
"domainId": 660279,
"domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "xai-blockchain",
"index": {
"from": 24395308
},
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0xd69d8FBC4d716d902f40d041596f024B705CE394",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "xai",
"nativeToken": {
"decimals": 18,
"name": "XAI Token",
"symbol": "XAI"
},
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"protocol": "ethereum",
"protocolFee": "0xe8d5590F2e969F9d21f0132f2b596273f8a03Ef2",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://xai-chain.net/rpc"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x5F3C25e6AfDC6953fF1c7a661963D5a54E239A8D",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x7b2e996742fA42d223652A344252B725D1bC428C",
"technicalStack": "arbitrumnitro",
"testRecipient": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"staticMerkleRootWeightedMultisigIsmFactory": "0x71388C9E25BE7b229B5d17Df7D4DB3F7DA7C962d",
"staticMessageIdWeightedMultisigIsmFactory": "0x3E969bA938E6A993eeCD6F65b0dd8712B07dFe59",
"interchainAccountIsm": "0xD8aF449f8fEFbA2064863DCE5aC248F8B232635F",
"interchainAccountRouter": "0x3881c3e945CBB89ae67c43E82f570baDF1c6EA94",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"xlayer": {
"aggregationHook": "0x8007d1e60991fB9BE1be26f70A7cE284fdE7da97",
"blockExplorers": [
{
"apiUrl": "https://www.oklink.com/api",
"family": "other",
"name": "X Layer Explorer",
"url": "https://www.oklink.com/xlayer"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 10,
"reorgPeriod": 5
},
"chainId": 196,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "XLayer",
"displayNameShort": "XLayer",
"domainId": 196,
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x03E20381530F2D50A0c9Ef153C19E74695c03433",
"gasCurrencyCoinGeckoId": "okb",
"gnosisSafeTransactionServiceUrl": "https://app.safe.global/welcome?chain=xlayer",
"index": {
"from": 3387690
},
"interchainAccountIsm": "0x29B37088724B745C0ABcE591449Cf042772160C2",
"interchainAccountRouter": "0x03cF708E42C89623bd83B281A56935cB562b9258",
"interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"interchainSecurityModule": "0xe88402C8346b055644E9dBBf6125131F73d89763",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD",
"name": "xlayer",
"nativeToken": {
"decimals": 18,
"name": "OKB",
"symbol": "OKB"
},
"pausableHook": "0x7b75b29caD47e10146e29BBf7BD9025e021a7023",
"pausableIsm": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42",
"protocol": "ethereum",
"protocolFee": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://xlayerrpc.okx.com"
},
{
"http": "https://rpc.xlayer.tech"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xD3bd8f20e169364d14c7dBFE698258D780FC71e3",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xe4057c5B0c43Dc18E36b08C39B419F190D29Ac2d",
"testRecipient": "0x4848d54987ffc732aD313827cdC25DF2eedD79d8",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a",
"staticMerkleRootWeightedMultisigIsmFactory": "0x168DFF0Ad2b180F3801883Fe5Ae56d7E7d91D5f4",
"staticMessageIdWeightedMultisigIsmFactory": "0x6Fb36672365C7c797028C400A61c58c0ECc53cD2",
"technicalStack": "polygoncdk"
},
"zetachain": {
"aggregationHook": "0x80D80cfBa98dD2d456ECd43Dcc1f852D5C4EeD7a",
"blockExplorers": [
{
"apiUrl": "https://explorer.zetachain.com",
"family": "other",
"name": "ZetaScan",
"url": "https://explorer.zetachain.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 6,
"reorgPeriod": 0
},
"chainId": 7000,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "ZetaChain",
"domainId": 7000,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
"gasCurrencyCoinGeckoId": "zetachain",
"gnosisSafeTransactionServiceUrl": "https://transaction.safe.zetachain.com",
"index": {
"from": 3068132
},
"interchainAccountIsm": "0x2b6d3F7d28B5EC8C3C028fBCAdcf774D9709Dd29",
"interchainAccountRouter": "0x3AdCBc94ab8C48EC52D06dc65Bb787fD1981E3d5",
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
"interchainSecurityModule": "0xA20Df62dEC7B82ea026CDcaD99774cB667F75d88",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
"name": "zetachain",
"nativeToken": {
"decimals": 18,
"name": "ZetaChain",
"symbol": "ZETA"
},
"pausableHook": "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882",
"pausableIsm": "0x7b75b29caD47e10146e29BBf7BD9025e021a7023",
"protocol": "ethereum",
"protocolFee": "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [
{
"http": "https://zetachain-evm.blockpi.network/v1/rpc/public"
},
{
"http": "https://zetachain-mainnet.g.allthatnode.com/archive/evm"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x7CB2dbE36aF0C0893B1B3502358Bc3697343559c",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
"testRecipient": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x48083C69f5a42c6B69ABbAd48AE195BD36770ee2",
"staticMerkleRootWeightedMultisigIsmFactory": "0xF645AeA0b8D26c9DBdfdeF2DEe59F845715BE32F",
"staticMessageIdWeightedMultisigIsmFactory": "0x0ed553e7e5D55535457d1E778Ba96cF839c18442",
"technicalStack": "other"
},
"zircuit": {
"aggregationHook": "0x198e8c938EC00Da143e772628c7958DD97B7c2A6",
"blockExplorers": [
{
"apiUrl": "https://explorer.zircuit.com/api/contractVerifyHardhat",
"family": "etherscan",
"name": "Zircuit Eplorer",
"url": "https://explorer.zircuit.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 48900,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Zircuit",
"domainId": 48900,
"domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xDa7cECb05C4aeB02c1aFDE277d4306a2da7Bd762",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction.safe.zircuit.com",
"index": {
"from": 1511458
},
"interchainGasPaymaster": "0x03cF708E42C89623bd83B281A56935cB562b9258",
"interchainSecurityModule": "0x9f5eFA37Aa96676A634eDbBd2E2132a75557a19e",
"mailbox": "0xc2FbB9411186AB3b1a6AFCCA702D1a80B48b197c",
"merkleTreeHook": "0x4C97D35c668EE5194a13c8DE8Afc18cce40C9F28",
"name": "zircuit",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x4Eb82Ee35b0a1c1d776E3a3B547f9A9bA6FCC9f2",
"pausableIsm": "0xc2Da384799488B4e1E773d70a83346529145085B",
"protocol": "ethereum",
"protocolFee": "0xe243Fb51d91c5DE62afAbE44F7Ed2D4DC51668C6",
"proxyAdmin": "0xA5580D7Af50F3FD869EbEA51e352e2656F8DD5C2",
"rpcUrls": [
{
"http": "https://zircuit1-mainnet.p2pify.com"
},
{
"http": "https://zircuit1-mainnet.liquify.com"
},
{
"http": "https://zircuit-mainnet.drpc.org"
}
],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x0f58B192d64DAe7389502b1c3F4a8A0ddBeEC488",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"storageGasOracle": "0x46fa3A5780e5B90Eaf34BDED554d5353B5ABE9E7",
"testRecipient": "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD",
"validatorAnnounce": "0x5366362c41e34869BDa231061603E4356D66079D",
"staticMerkleRootWeightedMultisigIsmFactory": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"staticMessageIdWeightedMultisigIsmFactory": "0x61374178e45F65fF9D6252d017Cd580FC60B7654",
"interchainAccountIsm": "0xd386Bb418B61E296e1689C95AfE94A2E321a6eaD",
"interchainAccountRouter": "0x51545389E04c2Ac07d98A40b85d29B480a2AF6ce",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "opstack"
},
"zoramainnet": {
"aggregationHook": "0x1e7115a7E45804C81C77caFF37f2BA421f32a0b4",
"blockExplorers": [
{
"apiUrl": "https://explorer.zora.energy/api",
"family": "blockscout",
"name": "Zora Explorer",
"url": "https://explorer.zora.energy"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 7777777,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Zora",
"domainId": 7777777,
"domainRoutingIsm": "0xe2BC89585C025E15Bb1a27A77990176C519d8fFe",
"domainRoutingIsmFactory": "0x32e77b20bf0cf034eB80ea9DD02De881016B01B3",
"fallbackRoutingHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"gasCurrencyCoinGeckoId": "ethereum",
"gnosisSafeTransactionServiceUrl": "https://transaction-zora.safe.optimism.io",
"index": {
"from": 17180113
},
"interchainAccountIsm": "0xb2674E213019972f937CCFc5e23BF963D915809e",
"interchainAccountRouter": "0x11b76D93a9D39Eb51F54eBf5566308640cDe882b",
"interchainGasPaymaster": "0x18B0688990720103dB63559a3563f7E8d0f63EDb",
"interchainSecurityModule": "0xB4F0a46314954446aeEb27254569510226ecd3c2",
"mailbox": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"merkleTreeHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"name": "zoramainnet",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"pausableHook": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"pausableIsm": "0x5090dF2FBDa7127c7aDa41f60B79F5c55D380Dd8",
"protocol": "ethereum",
"protocolFee": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"proxyAdmin": "0x632b4F32d65F7b25B37a27C57dD510f8e4a58Bf9",
"rpcUrls": [
{
"http": "https://rpc.zora.energy"
}
],
"staticAggregationHookFactory": "0xc4Da6b5451B2FFa70a4FDE761B72f7AbB1EDb770",
"staticAggregationIsm": "0x2C60156861f4C4358A4AF1c9a53Fa4207cf6A37E",
"staticAggregationIsmFactory": "0x721a6221493a9247c84Cb8b2Af8d5E078Cd4E364",
"staticMerkleRootMultisigIsmFactory": "0x2E7A93286E723F4D115B81f787b55Fe6c4f9231e",
"staticMessageIdMultisigIsmFactory": "0xC9c5A345b45Cf634CE71401Ec194b6688EA12c1e",
"storageGasOracle": "0xF1854214392864c628A16930E73B699f7a51b3EE",
"testRecipient": "0x6119B76720CcfeB3D256EC1b91218EEfFD6756E1",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"staticMerkleRootWeightedMultisigIsmFactory": "0x33AA12b4e8E79cA551Ca9D1F2eC7d2cE02129dd4",
"staticMessageIdWeightedMultisigIsmFactory": "0xB31553F20D7b06Eb8Eaefe29376146e1d276d091",
"technicalStack": "opstack"
},
"astar": {
"blockExplorers": [
{
"apiUrl": "https://astar.blockscout.com/api",
"family": "blockscout",
"name": "Astar Explorer",
"url": "https://astar.blockscout.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 13,
"reorgPeriod": "finalized"
},
"chainId": 592,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Astar",
"domainId": 592,
"gasCurrencyCoinGeckoId": "astar",
"name": "astar",
"nativeToken": {
"decimals": 18,
"name": "Astar",
"symbol": "ASTR"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://evm.astar.network"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x4b1EF66EB03743D243dca2024af3B6C4BB2afCAC",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"index": {
"from": 6898609
},
"interchainAccountIsm": "0xd01A3E167d59FF98c983E83BAa5da0C3e0ADe726",
"interchainAccountRouter": "0x5090dF2FBDa7127c7aDa41f60B79F5c55D380Dd8",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "polkadotsubstrate"
},
"astarzkevm": {
"blockExplorers": [
{
"apiUrl": "https://astar-zkevm.explorer.startale.com/api",
"family": "blockscout",
"name": "Astar zkEVM Explorer",
"url": "https://astar-zkevm.explorer.startale.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 3776,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Astar zkEVM",
"domainId": 3776,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "astarzkevm",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.startale.com/astar-zkevm"
},
{
"http": "https://astar-zkevm-rpc.dwellir.com"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x55bD770A3220A745B62600e3BEE6e6F944948c5B",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xC49aF4965264FA7BB6424CE37aA06773ad177224",
"validatorAnnounce": "0x59C2dB903937EbE55B59c3415FD55e970FF5f2DC",
"index": {
"from": 5253856
},
"interchainAccountIsm": "0xa35cbc2d169284580d82AecED883d0800aa7fbfC",
"interchainAccountRouter": "0x7621e04860F0bDe63311db9D5D8b589AD3458A1f",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "polygoncdk"
},
"bitlayer": {
"blockExplorers": [
{
"apiUrl": "https://api.btrscan.com/scan/api",
"family": "other",
"name": "Bitlayer Explorer",
"url": "https://www.btrscan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 20
},
"chainId": 200901,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Bitlayer",
"domainId": 200901,
"gasCurrencyCoinGeckoId": "bitcoin",
"name": "bitlayer",
"nativeToken": {
"decimals": 18,
"name": "Bitcoin",
"symbol": "BTC"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.bitlayer.org"
},
{
"http": "https://rpc.bitlayer-rpc.com"
},
{
"http": "https://rpc.ankr.com/bitlayer"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x2D78569De74146D7CDB5A8aabD8Bd451Da641c92",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"index": {
"from": 4162791
},
"interchainAccountIsm": "0xa97ec3E58cBd60199dcFDd6396431BE85c2E363e",
"interchainAccountRouter": "0xA0a44cB8Bc0f7EDe788b0Cd29524A5b14fED7b45",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "other"
},
"coredao": {
"blockExplorers": [
{
"apiUrl": "https://scan.coredao.org/api",
"family": "other",
"name": "Core Explorer",
"url": "https://scan.coredao.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 21
},
"chainId": 1116,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Core",
"domainId": 1116,
"gasCurrencyCoinGeckoId": "coredaoorg",
"name": "coredao",
"nativeToken": {
"decimals": 18,
"name": "CoreDAO",
"symbol": "CORE"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.coredao.org"
},
{
"http": "https://core.public.infstones.com"
},
{
"http": "https://rpc.ankr.com/core"
},
{
"http": "https://core.drpc.org"
},
{
"http": "https://rpc-core.icecreamswap.com"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x574A030c4636De291C42537d1dc0B9079318F839",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"index": {
"from": 17154537
},
"interchainAccountIsm": "0x87bDFaBbCC36D8B1aEdA871Cd54b2e86C7a4d597",
"interchainAccountRouter": "0xd01A3E167d59FF98c983E83BAa5da0C3e0ADe726",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "other"
},
"dogechain": {
"blockExplorers": [
{
"apiUrl": "https://explorer.dogechain.dog/api",
"family": "blockscout",
"name": "Dogechain Explorer",
"url": "https://explorer.dogechain.dog"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 2000,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Dogechain",
"domainId": 2000,
"gasCurrencyCoinGeckoId": "dogecoin",
"name": "dogechain",
"nativeToken": {
"decimals": 18,
"name": "Dogecoin",
"symbol": "DOGE"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.dogechain.dog"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x376F482e4dF14f7d497Ee5bF827Cf7BC7688F9DD",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"index": {
"from": 31903424
},
"interchainAccountIsm": "0x87bDFaBbCC36D8B1aEdA871Cd54b2e86C7a4d597",
"interchainAccountRouter": "0xd01A3E167d59FF98c983E83BAa5da0C3e0ADe726",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "polygoncdk"
},
"flare": {
"blockExplorers": [
{
"apiUrl": "https://flare-explorer.flare.network/api",
"family": "blockscout",
"name": "Flare Explorer",
"url": "https://flare-explorer.flare.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 3
},
"chainId": 14,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Flare",
"domainId": 14,
"gasCurrencyCoinGeckoId": "flare-networks",
"name": "flare",
"nativeToken": {
"decimals": 18,
"name": "Flare",
"symbol": "FLR"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://flare-api.flare.network/ext/C/rpc"
},
{
"http": "https://flare.solidifi.app/ext/C/rpc"
},
{
"http": "https://flare.rpc.thirdweb.com"
},
{
"http": "https://rpc.ankr.com/flare"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x53245370532d36e57B2Ef87fAF7Fb389A88aC57e",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"index": {
"from": 28949565
},
"interchainAccountIsm": "0xc2Da384799488B4e1E773d70a83346529145085B",
"interchainAccountRouter": "0x87bDFaBbCC36D8B1aEdA871Cd54b2e86C7a4d597",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "other"
},
"molten": {
"blockExplorers": [
{
"apiUrl": "https://molten.calderaexplorer.xyz/api",
"family": "blockscout",
"name": "Caldera Molten Explorer",
"url": "https://molten.calderaexplorer.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 30,
"reorgPeriod": 0
},
"chainId": 360,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Molten",
"domainId": 360,
"gasCurrencyCoinGeckoId": "molten-2",
"index": {
"from": 4707345
},
"name": "molten",
"nativeToken": {
"decimals": 18,
"name": "Molten",
"symbol": "MOLTEN"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://molten.calderachain.xyz/http"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0xe8b432a77F1195bD7F27d54f0D354D25E014c1DE",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"interchainAccountIsm": "0x87bDFaBbCC36D8B1aEdA871Cd54b2e86C7a4d597",
"interchainAccountRouter": "0xd01A3E167d59FF98c983E83BAa5da0C3e0ADe726",
"timelockController": "0x0000000000000000000000000000000000000000"
},
"shibarium": {
"blockExplorers": [
{
"apiUrl": "https://shibariumscan.io/api",
"family": "blockscout",
"name": "Shibarium Explorer",
"url": "https://shibariumscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 5,
"reorgPeriod": "finalized"
},
"chainId": 109,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Shibarium",
"domainId": 109,
"gasCurrencyCoinGeckoId": "bone-shibaswap",
"name": "shibarium",
"nativeToken": {
"decimals": 18,
"name": "Bone ShibaSwap",
"symbol": "BONE"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://www.shibrpc.com"
},
{
"http": "https://rpc.shibrpc.com"
}
],
"aggregationHook": "0x9aA6A7525Aa42f861AB07F8556654971dd4525ED",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xc401e251CCa7A364114504A994D6fC7cb1c243AB",
"interchainGasPaymaster": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"interchainSecurityModule": "0x60DE73a356E9bEFBC73Ca55799ab4AE18d9f0574",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"pausableHook": "0x5Ed813B8b41f25c8002B01A72bbDBe6A0232Fe27",
"pausableIsm": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"protocolFee": "0x8AB7A6FaC052518A39628497735C855a2Beb515B",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x78A31fF00D79158c22C09DC6D7Fa7188e21925E4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"testRecipient": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"validatorAnnounce": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"index": {
"from": 6519337
},
"interchainAccountIsm": "0xA0a44cB8Bc0f7EDe788b0Cd29524A5b14fED7b45",
"interchainAccountRouter": "0xf3dFf6747E7FC74B431C943961054B7BF6309d8a",
"timelockController": "0x0000000000000000000000000000000000000000",
"technicalStack": "other"
},
"everclear": {
"blockExplorers": [
{
"apiUrl": "https://scan.everclear.org/api",
"family": "blockscout",
"name": "Everclear Explorer",
"url": "https://scan.everclear.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 2
},
"chainId": 25327,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Everclear",
"domainId": 25327,
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 37
},
"name": "everclear",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.everclear.raas.gelato.cloud"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0x14F6CA3B04f077AF26922B7957B89b32F8C842a9",
"domainRoutingIsm": "0xDEed16fe4b1c9b2a93483EDFf34C77A9b57D31Ff",
"domainRoutingIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"fallbackRoutingHook": "0x3C2b535a49c6827DF0b8e94467e6922c99E3c092",
"interchainAccountIsm": "0xcd9D3744512F07AE844c40E27912092d7c503565",
"interchainAccountRouter": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"interchainGasPaymaster": "0xb58257cc81E47EC72fD38aE16297048de23163b4",
"interchainSecurityModule": "0x099c96B148fC39c449884D7ABEC6837e51BF7fA9",
"mailbox": "0x7f50C5776722630a0024fAE05fDe8b47571D7B39",
"merkleTreeHook": "0xCC3D1659D50461d27a2F025dDb2c9B06B584B7e1",
"pausableHook": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"pausableIsm": "0xA38D1D7F217A52A27b0e6BF50E0a9ddAD05798C0",
"protocolFee": "0xC49aF4965264FA7BB6424CE37aA06773ad177224",
"proxyAdmin": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"staticAggregationHookFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticAggregationIsm": "0x47F57D08d01544Ed082152B73807A9D39305Fac6",
"staticAggregationIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticMerkleRootMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticMessageIdMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMessageIdWeightedMultisigIsmFactory": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"storageGasOracle": "0xf8344D85a1429708e0BE6724218E938087e596DF",
"testRecipient": "0xF15D70941dE2Bf95A23d6488eBCbedE0a444137f",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xC88bAD76EC7acD9fd3b9Bb264f7f5C18097c5710"
},
"oortmainnet": {
"blockExplorers": [
{
"apiUrl": "https://mainnet-scan.oortech.com/api",
"family": "other",
"name": "Oort Olympus Explorer",
"url": "https://mainnet-scan.oortech.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 0
},
"chainId": 970,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Oort",
"domainId": 970,
"gasCurrencyCoinGeckoId": "oort",
"name": "oortmainnet",
"nativeToken": {
"decimals": 18,
"name": "Oort",
"symbol": "OORT"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet-rpc.oortech.com"
}
],
"aggregationHook": "0x90F9ac2201bCC0fA177955175708eCB5963f0eCA",
"domainRoutingIsm": "0x4101B9B755FC58FcEA156e70B42a38CFF8A46F77",
"domainRoutingIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"fallbackRoutingHook": "0x168DFF0Ad2b180F3801883Fe5Ae56d7E7d91D5f4",
"interchainAccountIsm": "0xc23BaF5Eb5848D19701BbE7f139645e6bd58a319",
"interchainAccountRouter": "0x7c58Cadcc2b60ACF794eE1843488d6f5703f76BE",
"interchainGasPaymaster": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"interchainSecurityModule": "0x6aF9a16aa08e3ae6B3Cd898407dEfCF1de469783",
"mailbox": "0xb129828B9EDa48192D0B2db35D0E40dCF51B3594",
"merkleTreeHook": "0x3E969bA938E6A993eeCD6F65b0dd8712B07dFe59",
"pausableHook": "0x6Fb36672365C7c797028C400A61c58c0ECc53cD2",
"pausableIsm": "0x989B7307d266151BE763935C856493D968b2affF",
"protocolFee": "0xfdefdDc8E153d5E0463d7E193F79A3714be16021",
"proxyAdmin": "0x148CF67B8A242c1360bb2C93fCe203EC4d4f9B56",
"staticAggregationHookFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticAggregationIsm": "0xdc2da0D5d7A69fa86366235E426ff4a0E214cC60",
"staticAggregationIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMerkleRootMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootWeightedMultisigIsmFactory": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticMessageIdMultisigIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticMessageIdWeightedMultisigIsmFactory": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"storageGasOracle": "0x2c61Cda929e4e2174cb10cd8e2724A9ceaD62E67",
"testRecipient": "0x58556AaeB2e3829d52EE5E711D44735412efA43B",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x6f77d5Ef273C38CC19d1d02352785F52565A1A6c",
"index": {
"from": 26847587
},
"technicalStack": "other"
},
"stride": {
"bech32Prefix": "stride",
"blockExplorers": [
{
"apiUrl": "https://apis.mintscan.io/v1/stride",
"family": "other",
"name": "Mintscan",
"url": "https://www.mintscan.io/stride"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 5,
"reorgPeriod": 1
},
"chainId": "stride-1",
"deployer": {
"name": "Stride Labs",
"url": "https://www.stride.zone"
},
"displayName": "Stride",
"domainId": 745,
"gasCurrencyCoinGeckoId": "stride",
"grpcUrls": [
{
"http": "https://stride-grpc.publicnode.com:443"
}
],
"isTestnet": false,
"name": "stride",
"nativeToken": {
"decimals": 6,
"denom": "ustrd",
"name": "Stride",
"symbol": "STRD"
},
"protocol": "cosmos",
"restUrls": [
{
"http": "https://stride-api.polkachu.com"
}
],
"rpcUrls": [
{
"http": "https://stride-rpc.polkachu.com"
}
],
"slip44": 118,
"interchainGasPaymaster": "0x602D5BF31F85FE90BF812A5EE6E2CC8CF6998A687125CABEDD120983CB88DA54",
"mailbox": "0x89945750e089d84581f194e1947a58480b335f18386ad4f761f05feebf5e2454",
"merkleTreeHook": "0x7ab4a8c3ba5371e34cd8d5dc584e0d924504fc21c3cbf41c3f64d436176bf007",
"validatorAnnounce": "0xf57d954bf3ddb5f1032a0e020a99e931215cf83ceb4de987c781488065aaae0d",
"gasPrice": {
"denom": "ustrd",
"amount": "0.005"
},
"canonicalAsset": "ustrd",
"contractAddressBytes": 32,
"index": {
"from": 9152000,
"chunk": 5
}
},
"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",
"aggregationHook": "0x9C16FBa8b0c8a356E0f4398f524ae73Fd5a677B6",
"domainRoutingIsm": "0xDEed16fe4b1c9b2a93483EDFf34C77A9b57D31Ff",
"domainRoutingIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"fallbackRoutingHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"interchainAccountIsm": "0x6119B76720CcfeB3D256EC1b91218EEfFD6756E1",
"interchainAccountRouter": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"interchainGasPaymaster": "0x18B0688990720103dB63559a3563f7E8d0f63EDb",
"interchainSecurityModule": "0x03426Cf05E862B4702391Ff7E005E7cDB71cC789",
"mailbox": "0x7f50C5776722630a0024fAE05fDe8b47571D7B39",
"merkleTreeHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"pausableHook": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"pausableIsm": "0x5090dF2FBDa7127c7aDa41f60B79F5c55D380Dd8",
"protocolFee": "0x61374178e45F65fF9D6252d017Cd580FC60B7654",
"proxyAdmin": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"staticAggregationHookFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticAggregationIsm": "0x9FF3f38DED52D74EF4b666A7A09BcB5F38d6D272",
"staticAggregationIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticMerkleRootMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticMessageIdMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMessageIdWeightedMultisigIsmFactory": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"storageGasOracle": "0xF1854214392864c628A16930E73B699f7a51b3EE",
"testRecipient": "0x783EC5e105234a570eB90f314284E5dBe53bdd90",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96"
},
"arbitrumnova": {
"blockExplorers": [
{
"apiUrl": "https://api-nova.arbiscan.io/api",
"family": "etherscan",
"name": "Arbiscan Nova",
"url": "https://nova.arbiscan.io/"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 42170,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Arbitrum Nova",
"domainId": 42170,
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 78794208
},
"name": "arbitrumnova",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://nova.arbitrum.io/rpc"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0xD70e68A8CBEff2349b3F0455B45d58D555256633",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53"
},
"b3": {
"blockExplorers": [
{
"apiUrl": "https://explorer.b3.fun/api",
"family": "blockscout",
"name": "B3 Explorer",
"url": "https://explorer.b3.fun"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 5
},
"chainId": 8333,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "B3",
"domainId": 8333,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "b3",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet-rpc.b3.fun"
}
],
"technicalStack": "opstack",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0xD91a9416ffd488eEfFD8F3E1dF884d54eaD87673",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"from": 7504261
}
},
"fantom": {
"blockExplorers": [
{
"apiUrl": "https://api.ftmscan.com/api",
"family": "etherscan",
"name": "FTMScan",
"url": "https://ftmscan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 250,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Fantom Opera",
"domainId": 250,
"gasCurrencyCoinGeckoId": "fantom",
"name": "fantom",
"nativeToken": {
"decimals": 18,
"name": "Fantom",
"symbol": "FTM"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpcapi.fantom.network"
},
{
"http": "https://fantom-rpc.publicnode.com"
},
{
"http": "https://fantom-pokt.nodies.app"
},
{
"http": "https://rpc.fantom.network"
},
{
"http": "https://rpc2.fantom.network"
},
{
"http": "https://rpc3.fantom.network"
}
],
"technicalStack": "other",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0xC601666Ca22649b20d642c0eb36047d265928D04",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"from": 95635171
}
},
"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",
"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",
"aggregationHook": "0x836E1b748cac2FAc6264Baf2bF83cd9a79b723C6",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"interchainAccountIsm": "0x783EC5e105234a570eB90f314284E5dBe53bdd90",
"interchainAccountRouter": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"interchainGasPaymaster": "0xf3dFf6747E7FC74B431C943961054B7BF6309d8a",
"interchainSecurityModule": "0x1738cd8652a324DD9781D5Ce0f609827761D48dA",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x5090dF2FBDa7127c7aDa41f60B79F5c55D380Dd8",
"pausableHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"pausableIsm": "0x7621e04860F0bDe63311db9D5D8b589AD3458A1f",
"protocolFee": "0x8C3e1794018a589c9E9226b8543105fCb6cC88C4",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xfa19BfEcB4fed2e0268ee5008a11cD946DcC13c3",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"testRecipient": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x61374178e45F65fF9D6252d017Cd580FC60B7654",
"displayNameShort": "Gravity"
},
"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",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0x9e92E451b71378aBf1cd4769f34528af9C0e97Fd",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"chunk": 999,
"from": 64597391
}
},
"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",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0xD91a9416ffd488eEfFD8F3E1dF884d54eaD87673",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"from": 167871545
}
},
"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",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0x330063B36D40D1d77DBAd7e9552b97433f281090",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"from": 94151
}
},
"orderly": {
"blockExplorers": [
{
"apiUrl": "https://explorer.orderly.network/api",
"family": "blockscout",
"name": "Orderly L2 Explorer",
"url": "https://explorer.orderly.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 291,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Orderly L2",
"domainId": 291,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "orderly",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.orderly.network"
},
{
"http": "https://l2-orderly-mainnet-0.t.conduit.xyz"
}
],
"technicalStack": "opstack",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0xD70e68A8CBEff2349b3F0455B45d58D555256633",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"from": 16635646
}
},
"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",
"aggregationHook": "0xcFD1c5b1357539566edC273aDaae19CA5e359c42",
"domainRoutingIsm": "0x494415e823236A05c608D6b777bC80082cED6A2E",
"domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"fallbackRoutingHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"interchainAccountIsm": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainAccountRouter": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"interchainGasPaymaster": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"interchainSecurityModule": "0x0197F4a7ED6db49Ad345214C710206aCfFBA241a",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x6963480b05EB58f4d624B014ab92e9aD4d21df6D",
"pausableHook": "0xD0dca420feFda68537695A8D887080eeF4030AF7",
"pausableIsm": "0x696df5e79C4f1bd5F8D587Ba8946361d9B029d4B",
"protocolFee": "0x13E83ac41e696856B6996263501fB3225AD5E6F5",
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"staticAggregationHookFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"staticAggregationIsm": "0x92772a801db50044a9D5078CC35CD63CEcD7B424",
"staticAggregationIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticMerkleRootMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMerkleRootWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"staticMessageIdMultisigIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMessageIdWeightedMultisigIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"storageGasOracle": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"testRecipient": "0xcDA455DfD9C938451BfaFC6FF0D497c8C0469C96",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x60B8d195f1b2EcaC26d54b95C69E6399cFD64b53",
"index": {
"from": 3158644
}
},
"zeronetwork": {
"blockExplorers": [
{
"apiUrl": "https://zero-network.calderaexplorer.xyz/verification/contract_verification",
"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",
"domainRoutingIsm": "0x307A9dBD1df2329c3c597aF6853de60660baFFb5",
"domainRoutingIsmFactory": "0x0000000000000000000000000000000000000000",
"fallbackDomainRoutingHook": "0x671836d35BB15E21ECc92c4936F0e3131efe12B4",
"fallbackRoutingHook": "0x671836d35BB15E21ECc92c4936F0e3131efe12B4",
"interchainGasPaymaster": "0x318FbdB17d4e743aBF3183658a4730777101B75C",
"interchainSecurityModule": "0x307A9dBD1df2329c3c597aF6853de60660baFFb5",
"mailbox": "0xd7b351D2dE3495eA259DD10ab4b9300A378Afbf3",
"merkleTreeHook": "0x55379421409961Ef129738c24261379ef8A547Df",
"proxyAdmin": "0x72e2A678442Edc65f14476A0E4c94312C0469f4A",
"staticAggregationHookFactory": "0x0000000000000000000000000000000000000000",
"staticAggregationIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMerkleRootMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMessageIdMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMessageIdWeightedMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"storageGasOracle": "0xe85d65f04D1562f8571d57326d6798e4584aa254",
"testRecipient": "0xC18bE7ac43334F501fd9622877160b085215dECC",
"validatorAnnounce": "0xB2F0e411B46AbE3248dAFB5e89aDB5b8404F45DF",
"index": {
"from": 475
},
"gnosisSafeTransactionServiceUrl": "https://prod.zeronet-mainnet.transaction.keypersafe.xyz"
},
"zksync": {
"blockExplorers": [
{
"apiUrl": "https://zksync2-mainnet-explorer.zksync.io/contract_verification",
"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",
"domainRoutingIsm": "0xec650696FDAE2355A928520AD7d6491c6072cf7f",
"domainRoutingIsmFactory": "0x0000000000000000000000000000000000000000",
"fallbackDomainRoutingHook": "0xe4e98Cc5D0318aBFD2adA8A3C6817b727063F500",
"fallbackRoutingHook": "0xe4e98Cc5D0318aBFD2adA8A3C6817b727063F500",
"interchainGasPaymaster": "0xf44AdA86a1f765A938d404699B8070Dd47bD2431",
"interchainSecurityModule": "0xec650696FDAE2355A928520AD7d6491c6072cf7f",
"mailbox": "0x6bD0A2214797Bc81e0b006F7B74d6221BcD8cb6E",
"merkleTreeHook": "0x823500D69D77A52212DC93f8836E9c08581487eE",
"proxyAdmin": "0xD01274DC164D32F8595bE707F221375E68cE300C",
"staticAggregationHookFactory": "0x0000000000000000000000000000000000000000",
"staticAggregationIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMerkleRootMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMessageIdMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"staticMessageIdWeightedMultisigIsmFactory": "0x0000000000000000000000000000000000000000",
"storageGasOracle": "0x37f4afe769087738f0577A77ffA24abef6fCBF99",
"testRecipient": "0xD55078c54b0cEAa87Ba5c3fAeAC89861c69F636d",
"validatorAnnounce": "0x576aF402c97bFE452Dcc203B6c3f6F4EBC92A0f5",
"index": {
"from": 47325797
}
},
"alephzeroevmmainnet": {
"blockExplorers": [
{
"apiUrl": "https://evm-explorer.alephzero.org/api",
"family": "blockscout",
"name": "Aleph Zero Explorer",
"url": "https://evm-explorer.alephzero.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 41455,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Aleph Zero EVM",
"displayNameShort": "Aleph Zero EVM",
"domainId": 1000041455,
"gasCurrencyCoinGeckoId": "aleph-zero",
"index": {
"from": 4243354
},
"name": "alephzeroevmmainnet",
"nativeToken": {
"decimals": 18,
"name": "AZERO",
"symbol": "AZERO"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.alephzero.raas.gelato.cloud"
},
{
"http": "https://alephzero.drpc.org"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0xf16Df460D719daCb71dBE79632Bc8d68766742Eb",
"domainRoutingIsm": "0x9b0759e8Aec446f77ec4b7Ec20B1883d785139A4",
"domainRoutingIsmFactory": "0xD127D4549cb4A5B2781303a4fE99a10EAd13263A",
"fallbackRoutingHook": "0xE7487b4DF583c63D6841997ab56324D0a825e7F4",
"interchainAccountIsm": "0x4d264424905535E97396Db83bd553D0d73A4EF9d",
"interchainAccountRouter": "0x26A29486480BD74f9B830a9B8dB33cb43C40f496",
"interchainGasPaymaster": "0x9c2214467Daf9e2e1F45b36d08ce0b9C65BFeA88",
"interchainSecurityModule": "0x28Ce6b8aB49e37f2B386056bB7D9779Ecc89f4EE",
"mailbox": "0x5bdADEAD721Eb4C4038fF7c989E3C7BbBA302435",
"merkleTreeHook": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645",
"pausableHook": "0xC8E323036AAFB4B4201e7B640E79C4Db285A3FC8",
"pausableIsm": "0x9c64f327F0140DeBd430aab3E2F1d6cbcA921227",
"protocolFee": "0xc6835e52C1b976F1ebC71Bc8919738E02849FdA9",
"proxyAdmin": "0x730f8a4128Fa8c53C777B62Baa1abeF94cAd34a9",
"staticAggregationHookFactory": "0x8a5524a1b898fe848819ff675c577b5c7F224684",
"staticAggregationIsm": "0x3c23D983112Ab87662A1227678ba1f3483E03dFe",
"staticAggregationIsmFactory": "0x34b67302583A8Faa7c490A2D85463838D3045ce6",
"staticMerkleRootMultisigIsmFactory": "0xC4275763D7b621eb732847957012F1fb35C90BB8",
"staticMerkleRootWeightedMultisigIsmFactory": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF",
"staticMessageIdMultisigIsmFactory": "0xB96eEdf9608a62C7EbCA30b60aE9cd26C90A6264",
"staticMessageIdWeightedMultisigIsmFactory": "0xc441521bA37EaCd9af4f319CcdA27E9D48f74281",
"storageGasOracle": "0xDd260B99d302f0A3fF885728c086f729c06f227f",
"testRecipient": "0x561BcA8D862536CD9C88f332C1A1Da0fC8F96e40",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x2e542a3DF4fde491faa77da05eD48377aca9E44e"
},
"chilizmainnet": {
"blockExplorers": [
{
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/88888/etherscan/api",
"family": "routescan",
"name": "Chiliscan",
"url": "https://chiliscan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 9
},
"chainId": 88888,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Chiliz",
"domainId": 1000088888,
"gasCurrencyCoinGeckoId": "chiliz",
"name": "chilizmainnet",
"nativeToken": {
"decimals": 18,
"name": "Chiliz",
"symbol": "CHZ"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.ankr.com/chiliz"
},
{
"http": "https://chiliz.publicnode.com"
}
],
"technicalStack": "other",
"aggregationHook": "0x219c20baA25f296DC83B0Fa8F0B2aFc951625C20",
"domainRoutingIsm": "0xdAEe23c103419600F3B96f4DbA3858d4a1c3eaaf",
"domainRoutingIsmFactory": "0x2f0E57527Bb37E5E064EF243fad56CCE6241906c",
"fallbackRoutingHook": "0x3CBCa631A797fd4c6332Cd4435C92065AFb57ef8",
"interchainAccountIsm": "0x545E289B88c6d97b74eC0B96e308cae46Bf5f832",
"interchainAccountRouter": "0x4ef363Da5bb09CC6aeA16973786963d0C8820778",
"interchainGasPaymaster": "0x561BcA8D862536CD9C88f332C1A1Da0fC8F96e40",
"interchainSecurityModule": "0x5Cd2d33b51b3394A14C11ea79E5E0Ba6bCC81e83",
"mailbox": "0x248aDe14C0489E20C9a7Fea5F86DBfC3702208eF",
"merkleTreeHook": "0x9c2214467Daf9e2e1F45b36d08ce0b9C65BFeA88",
"pausableHook": "0x2f536FB7a37bd817Af644072a904Ddc02Dae429f",
"pausableIsm": "0x2b79328DA089E89A9E9c08732b56dd31F01011Db",
"protocolFee": "0x01EBa6D613DC09Cb899aF1e8E8a747416d7250ad",
"proxyAdmin": "0x48C427782Bc1e9ecE406b3e277481b28ABcBdf03",
"staticAggregationHookFactory": "0xDc1508844B99C606E16C2Ae87f33c373edD4B0F6",
"staticAggregationIsm": "0xfE0c963aDF971956BbeD320995d6b34db087C0A4",
"staticAggregationIsmFactory": "0x5bdADEAD721Eb4C4038fF7c989E3C7BbBA302435",
"staticMerkleRootMultisigIsmFactory": "0x730f8a4128Fa8c53C777B62Baa1abeF94cAd34a9",
"staticMerkleRootWeightedMultisigIsmFactory": "0xA8A311B69f688c1D9928259D872C31ca0d473642",
"staticMessageIdMultisigIsmFactory": "0xbed53B5C5BCE9433f25A2A702e6df13E22d84Ae9",
"staticMessageIdWeightedMultisigIsmFactory": "0x1c6f404800bA49Ed581af734eA0d25c0c7d017B2",
"storageGasOracle": "0x87ED6926abc9E38b9C7C19f835B41943b622663c",
"testRecipient": "0xE67Dc24970B482579923551Ede52BD35a2858989",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x16625230dD6cFe1B2bec3eCaEc7d43bA3A902CD6",
"index": {
"from": 18075501
},
"transactionOverrides": {
"maxPriorityFeePerGas": 1000000000
}
},
"flame": {
"blockExplorers": [
{
"apiUrl": "https://explorer.flame.astria.org/api",
"family": "blockscout",
"name": "Astria Flame Explorer",
"url": "https://explorer.flame.astria.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 253368190,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Flame",
"domainId": 253368190,
"gasCurrencyCoinGeckoId": "celestia",
"name": "flame",
"nativeToken": {
"decimals": 18,
"name": "Celestia",
"symbol": "TIA"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.flame.astria.org"
}
],
"technicalStack": "other",
"aggregationHook": "0xf6D7BE913f90A4fB02a248837409ee208e10C647",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xf3dFf6747E7FC74B431C943961054B7BF6309d8a",
"interchainAccountIsm": "0x60bB6D060393D3C206719A7bD61844cC82891cfB",
"interchainAccountRouter": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainGasPaymaster": "0x61374178e45F65fF9D6252d017Cd580FC60B7654",
"interchainSecurityModule": "0xE97f143373BA2f424a67FC3fc5cf7EfE2095aF0A",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0xEe08043cf22c80b27BF24d19999231dF4a3fC256",
"pausableHook": "0x145566181A18E23bB6a8A3eC6D87765542A7F754",
"pausableIsm": "0x2F619Ac5122689180AeBB930ADccdae215d538a9",
"protocolFee": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x7c6A51101Ba76EC1f358C11d349fbEd9486B62Ee",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0x18B0688990720103dB63559a3563f7E8d0f63EDb",
"testRecipient": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"index": {
"from": 395313
}
},
"flowmainnet": {
"blockExplorers": [
{
"apiUrl": "https://evm.flowscan.io/api",
"family": "blockscout",
"name": "EVM on Flow Explorer",
"url": "https://evm.flowscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 25
},
"chainId": 747,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "EVM on Flow",
"domainId": 1000000747,
"gasCurrencyCoinGeckoId": "flow",
"isTestnet": false,
"name": "flowmainnet",
"nativeToken": {
"decimals": 18,
"name": "Flow",
"symbol": "FLOW"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet.evm.nodes.onflow.org"
}
],
"technicalStack": "other",
"aggregationHook": "0xB66fd84619eDd59822c5748DCB4F1F78B7D8093D",
"domainRoutingIsm": "0xa2d4E4dF4972d5196c45bD7f9287827a712Dd27a",
"domainRoutingIsmFactory": "0x693A4cE39d99e46B04cb562329e3F0141cA17331",
"fallbackRoutingHook": "0x5CF4ce6Be17CaB6d86d724804e2f1f5040205594",
"interchainAccountIsm": "0xcdc31BA959DE8C035A03167ebAE1961208CDf172",
"interchainAccountRouter": "0x349831a180eE4265008C5FFB9465Ff97c1CF0028",
"interchainGasPaymaster": "0x6AA10748a036a49Cb290C0e12B77319b76792D5E",
"interchainSecurityModule": "0xBB7E1A95C63cc745b6e51127d04e9a957966591e",
"mailbox": "0xd9Cc2e652A162bb93173d1c44d46cd2c0bbDA59D",
"merkleTreeHook": "0x2783D98CC073dbcDa90241C804d16982D3d75821",
"pausableHook": "0x3bb2D0a828f7dD91bA786091F421f6d7cF376445",
"pausableIsm": "0x96c418BaB57953765B97532c494125F9b2e2B38D",
"protocolFee": "0xBF06C01ded09132B3e08467430bACdD0f9DaDe19",
"proxyAdmin": "0x5dfcCe8da81B542426211C99fCCfeD647e9AA496",
"staticAggregationHookFactory": "0x20a0A32a110362920597F72974E1E0d7e25cA20a",
"staticAggregationIsm": "0x806342559EBD943f259cFCf606aad7c50DE81f42",
"staticAggregationIsmFactory": "0x06De94EfBE80A2804c5FDE2e7C4278a10575A272",
"staticMerkleRootMultisigIsmFactory": "0xc1198e241DAe48BF5AEDE5DCE49Fe4A6064cF7a7",
"staticMerkleRootWeightedMultisigIsmFactory": "0x006e07370A328A6F23FcE297FA800c8854f6a17e",
"staticMessageIdMultisigIsmFactory": "0x8Ea50255C282F89d1A14ad3F159437EE5EF0507f",
"staticMessageIdWeightedMultisigIsmFactory": "0x68714834d97e398BE899016D140ACF0743d9Dc6A",
"storageGasOracle": "0xa2554A53890c0E769e3fa8b9A0b7e72F6A617367",
"testRecipient": "0xa7028308Ff277DB5851a95d82ED5C5256bB721F2",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x5C6699c133A583d389Ba7e0bDD4993e2e63fA804",
"index": {
"from": 6777659
},
"transactionOverrides": {
"gasPrice": 100000000
}
},
"immutablezkevmmainnet": {
"blockExplorers": [
{
"apiUrl": "https://explorer.immutable.com/api/eth-rpc",
"family": "blockscout",
"name": "Immutable Explorer",
"url": "https://explorer.immutable.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 20
},
"chainId": 13371,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Immutable zkEVM",
"domainId": 1000013371,
"gasCurrencyCoinGeckoId": "immutable-x",
"name": "immutablezkevmmainnet",
"nativeToken": {
"decimals": 18,
"name": "Immutable",
"symbol": "IMX"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.immutable.com"
},
{
"http": "https://immutable.gateway.tenderly.co"
}
],
"technicalStack": "other",
"aggregationHook": "0x10b1F811a649A82250a98fDae5494E440B0A9F89",
"domainRoutingIsm": "0x34397CaA9e6c1A5EF6440E82C46a83D1ef779dcF",
"domainRoutingIsmFactory": "0xbed53B5C5BCE9433f25A2A702e6df13E22d84Ae9",
"fallbackRoutingHook": "0x2b79328DA089E89A9E9c08732b56dd31F01011Db",
"interchainAccountIsm": "0x545E289B88c6d97b74eC0B96e308cae46Bf5f832",
"interchainAccountRouter": "0x4ef363Da5bb09CC6aeA16973786963d0C8820778",
"interchainGasPaymaster": "0xc6835e52C1b976F1ebC71Bc8919738E02849FdA9",
"interchainSecurityModule": "0xc622B32Da6Bc983B7aE6Ea7253D39396512e5F70",
"mailbox": "0x1c6f404800bA49Ed581af734eA0d25c0c7d017B2",
"merkleTreeHook": "0xdAa1B65547fB969c9ff5678956AB2FF9771B883D",
"pausableHook": "0xA0e0829DA397CcF55d5B779C31728f21Cb8219DF",
"pausableIsm": "0xC8E323036AAFB4B4201e7B640E79C4Db285A3FC8",
"protocolFee": "0xA166219dF110BDA97b91e65D4BB4Aae4159978b9",
"proxyAdmin": "0x2f0E57527Bb37E5E064EF243fad56CCE6241906c",
"staticAggregationHookFactory": "0x730f8a4128Fa8c53C777B62Baa1abeF94cAd34a9",
"staticAggregationIsm": "0x1941d3fA81a868e401a0C8E0a1443d59D3Ec04Fe",
"staticAggregationIsmFactory": "0xc441521bA37EaCd9af4f319CcdA27E9D48f74281",
"staticMerkleRootMultisigIsmFactory": "0xD127D4549cb4A5B2781303a4fE99a10EAd13263A",
"staticMerkleRootWeightedMultisigIsmFactory": "0x5bdADEAD721Eb4C4038fF7c989E3C7BbBA302435",
"staticMessageIdMultisigIsmFactory": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF",
"staticMessageIdWeightedMultisigIsmFactory": "0xDc1508844B99C606E16C2Ae87f33c373edD4B0F6",
"storageGasOracle": "0x9c2214467Daf9e2e1F45b36d08ce0b9C65BFeA88",
"testRecipient": "0x01EBa6D613DC09Cb899aF1e8E8a747416d7250ad",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x8c794a781327b819416E7b67908f1D22397f1E67",
"index": {
"from": 14336020
},
"transactionOverrides": {
"maxFeePerGas": 100000000000,
"maxPriorityFeePerGas": 100000000000
}
},
"lumia": {
"blockExplorers": [
{
"apiUrl": "https://explorer.lumia.org/api/eth-rpc",
"family": "blockscout",
"name": "Lumia Prism Explorer",
"url": "https://explorer.lumia.org"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 4,
"reorgPeriod": 5
},
"chainId": 994873017,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Lumia Prism",
"domainId": 994873017,
"gasCurrencyCoinGeckoId": "orion-protocol",
"name": "lumia",
"nativeToken": {
"decimals": 18,
"name": "Lumia",
"symbol": "LUMIA"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet-rpc.lumia.org"
}
],
"technicalStack": "polygoncdk",
"index": {
"from": 1923136
},
"interchainGasPaymaster": "0x9024A3902B542C87a5C4A2b3e15d60B2f087Dc3E",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0x9c44E6b8F0dB517C2c3a0478caaC5349b614F912",
"validatorAnnounce": "0x989B7307d266151BE763935C856493D968b2affF"
},
"metal": {
"blockExplorers": [
{
"apiUrl": "https://explorer.metall2.com/api",
"family": "blockscout",
"name": "Metal L2 Explorer",
"url": "https://explorer.metall2.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 1750,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Metal L2",
"domainId": 1000001750,
"gasCurrencyCoinGeckoId": "ethereum",
"isTestnet": false,
"name": "metal",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.metall2.com"
}
],
"technicalStack": "opstack",
"aggregationHook": "0x890C43b9A71750BE9331F0AB68b73ebaB0D6441a",
"domainRoutingIsm": "0x3F525c2bf9e2Ffc54D64B883FD960FD04874D2D1",
"domainRoutingIsmFactory": "0x34b67302583A8Faa7c490A2D85463838D3045ce6",
"fallbackRoutingHook": "0x50141343265C6f84315E5B27D64f1229AC86645F",
"interchainAccountIsm": "0x8c794a781327b819416E7b67908f1D22397f1E67",
"interchainAccountRouter": "0x16625230dD6cFe1B2bec3eCaEc7d43bA3A902CD6",
"interchainGasPaymaster": "0x2b79328DA089E89A9E9c08732b56dd31F01011Db",
"interchainSecurityModule": "0xFdd7f8b8CBe3612609Fe5bf0332B280182dcB74F",
"mailbox": "0x730f8a4128Fa8c53C777B62Baa1abeF94cAd34a9",
"merkleTreeHook": "0x9c64f327F0140DeBd430aab3E2F1d6cbcA921227",
"pausableHook": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645",
"pausableIsm": "0xb758e4dDE95fd7C323914c5B634D25fCb0316Ba1",
"protocolFee": "0x2f536FB7a37bd817Af644072a904Ddc02Dae429f",
"proxyAdmin": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF",
"staticAggregationHookFactory": "0xB96eEdf9608a62C7EbCA30b60aE9cd26C90A6264",
"staticAggregationIsm": "0xe05Bac82CeC0Ee8c66a29E37108E319A3B993539",
"staticAggregationIsmFactory": "0xC4275763D7b621eb732847957012F1fb35C90BB8",
"staticMerkleRootMultisigIsmFactory": "0x04bfb04fcC1C7A5B605C5fae444aC43ac0DdaC77",
"staticMerkleRootWeightedMultisigIsmFactory": "0x8a5524a1b898fe848819ff675c577b5c7F224684",
"staticMessageIdMultisigIsmFactory": "0x784b9D0f4eF9fb8444DfB5d24AB221C9D1A85395",
"staticMessageIdWeightedMultisigIsmFactory": "0xD127D4549cb4A5B2781303a4fE99a10EAd13263A",
"storageGasOracle": "0xE7487b4DF583c63D6841997ab56324D0a825e7F4",
"testRecipient": "0xc4D0b4ef01eD7091792fe3D4c039457719e2DC68",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xc6835e52C1b976F1ebC71Bc8919738E02849FdA9",
"index": {
"from": 9688791
}
},
"polynomialfi": {
"blockExplorers": [
{
"apiUrl": "https://polynomialscan.io/api",
"family": "routescan",
"name": "Polynomial Explorer",
"url": "https://polynomialscan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 8008,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Polynomial",
"domainId": 1000008008,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "polynomialfi",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.polynomial.fi"
}
],
"technicalStack": "opstack",
"aggregationHook": "0x7034eDf1fb187b33f3D44Ffd94Fb2B8432be0402",
"domainRoutingIsm": "0x8A82DE5b4EC1A4f1FAf86c74031c2D38B07e1E80",
"domainRoutingIsmFactory": "0xc441521bA37EaCd9af4f319CcdA27E9D48f74281",
"fallbackRoutingHook": "0xDd260B99d302f0A3fF885728c086f729c06f227f",
"interchainAccountIsm": "0xE67Dc24970B482579923551Ede52BD35a2858989",
"interchainAccountRouter": "0xDDE46032Baf4da13fDD79BF9dfbaA2749615C409",
"interchainGasPaymaster": "0x2f536FB7a37bd817Af644072a904Ddc02Dae429f",
"interchainSecurityModule": "0xcCe65dffEc65798B986969EE9A490AC096d0E54e",
"mailbox": "0x2f0E57527Bb37E5E064EF243fad56CCE6241906c",
"merkleTreeHook": "0xC8E323036AAFB4B4201e7B640E79C4Db285A3FC8",
"pausableHook": "0xdAa1B65547fB969c9ff5678956AB2FF9771B883D",
"pausableIsm": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645",
"protocolFee": "0x2e542a3DF4fde491faa77da05eD48377aca9E44e",
"proxyAdmin": "0x5bdADEAD721Eb4C4038fF7c989E3C7BbBA302435",
"staticAggregationHookFactory": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF",
"staticAggregationIsm": "0x848A33eE97898B1Dbd11DaCd0ff9101c71C4fabA",
"staticAggregationIsmFactory": "0xD127D4549cb4A5B2781303a4fE99a10EAd13263A",
"staticMerkleRootMultisigIsmFactory": "0x34b67302583A8Faa7c490A2D85463838D3045ce6",
"staticMerkleRootWeightedMultisigIsmFactory": "0x730f8a4128Fa8c53C777B62Baa1abeF94cAd34a9",
"staticMessageIdMultisigIsmFactory": "0x8a5524a1b898fe848819ff675c577b5c7F224684",
"staticMessageIdWeightedMultisigIsmFactory": "0xbed53B5C5BCE9433f25A2A702e6df13E22d84Ae9",
"storageGasOracle": "0x2b79328DA089E89A9E9c08732b56dd31F01011Db",
"testRecipient": "0xa1c3884EbE24Cccb120B2E98a55f85140563aa4C",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xA166219dF110BDA97b91e65D4BB4Aae4159978b9",
"index": {
"from": 6451460
}
},
"prom": {
"blockExplorers": [
{
"apiUrl": "https://prom-blockscout.eu-north-2.gateway.fm/api/eth-rpc",
"family": "blockscout",
"name": "Prom Explorer",
"url": "https://prom-blockscout.eu-north-2.gateway.fm"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 6,
"reorgPeriod": 5
},
"chainId": 227,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Prom",
"domainId": 227,
"gasCurrencyCoinGeckoId": "prometeus",
"name": "prom",
"nativeToken": {
"decimals": 18,
"name": "Prom",
"symbol": "PROM"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://prom-rpc.eu-north-2.gateway.fm"
}
],
"technicalStack": "polygoncdk",
"aggregationHook": "0x6ab6F297ff0c40115D6c663d21E936CAFFad0EEf",
"domainRoutingIsm": "0xF6C3854e195467625D3a9e50103751629b767cE5",
"domainRoutingIsmFactory": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"fallbackRoutingHook": "0x5C2D2fB7F948895cf57f4723167DDEe016A462D1",
"interchainAccountIsm": "0x20a0A32a110362920597F72974E1E0d7e25cA20a",
"interchainAccountRouter": "0x5b3EeADcc0E2d4284eA6816e2E503c24d30a9E54",
"interchainGasPaymaster": "0x282629Af1A2f9b8e2c5Cbc54C35C7989f21950c6",
"interchainSecurityModule": "0x7B891Aec2e7edA0215Be884f2396615a231A1502",
"mailbox": "0x5C02157068a52cEcfc98EDb6115DE6134EcB4764",
"merkleTreeHook": "0xf147bBD944C610F86DaE6C7668497D22932C1E4A",
"pausableHook": "0x872Bd98057931c8809927c6dE2ef39738a80Eb0C",
"pausableIsm": "0xEE2e85Df244e32d95d9f327D7a35Ba3d2d412225",
"protocolFee": "0x2A532fc8cF9a72142eA8753a0d2AB68098C19585",
"proxyAdmin": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"staticAggregationHookFactory": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"staticAggregationIsm": "0xa0bBd1258E803be00e6953840806A917E066D56c",
"staticAggregationIsmFactory": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"staticMerkleRootMultisigIsmFactory": "0xeE8C0E1EeBfFCC451a013336386eA53E42a44451",
"staticMerkleRootWeightedMultisigIsmFactory": "0x83475ca5bEB2Eaa59A2FF48a0544ebaa4a32c2de",
"staticMessageIdMultisigIsmFactory": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"staticMessageIdWeightedMultisigIsmFactory": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4",
"storageGasOracle": "0x33E0c225A54a0A86E9B267e90A90DE8CBb0fDB8f",
"testRecipient": "0x83f647970B213675412b76e1cCDB55D0e35365fD",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x5ae1ECA065aC8ee92Ce98E584fc3CE43070020e7",
"index": {
"from": 122243
}
},
"rarichain": {
"blockExplorers": [
{
"apiUrl": "https://mainnet.explorer.rarichain.org/api",
"family": "blockscout",
"name": "Rari Mainnet Explorer",
"url": "https://mainnet.explorer.rarichain.org"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 30,
"reorgPeriod": 0
},
"chainId": 1380012617,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "RARI Chain",
"domainId": 1000012617,
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 688784
},
"name": "rarichain",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet.rpc.rarichain.org/http"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0x1bf00e9883291F1bc25292799Dd5cE4fa3a00215",
"domainRoutingIsm": "0x43fEfD9323a9e71Df4cd9f32f1015efa4c906d10",
"domainRoutingIsmFactory": "0x5DdFCA27f9a308c1429A010C4daB291b5534a297",
"fallbackRoutingHook": "0x01EBa6D613DC09Cb899aF1e8E8a747416d7250ad",
"interchainAccountIsm": "0xf40eE9FF75Fa34910b7C4C8d68d4850B3bD184D3",
"interchainAccountRouter": "0xf6fB78dc009C1A4286c0E7d90C10c9E8906a62Ea",
"interchainGasPaymaster": "0xDDE46032Baf4da13fDD79BF9dfbaA2749615C409",
"interchainSecurityModule": "0xc09E4b2C7b3884609dded73571a27B8F6D05aA66",
"mailbox": "0x65dCf8F6b3f6a0ECEdf3d0bdCB036AEa47A1d615",
"merkleTreeHook": "0x8c794a781327b819416E7b67908f1D22397f1E67",
"pausableHook": "0x4d264424905535E97396Db83bd553D0d73A4EF9d",
"pausableIsm": "0xA166219dF110BDA97b91e65D4BB4Aae4159978b9",
"protocolFee": "0x8a733038eF4BbC314eE0F7595257D8d3799B6aA9",
"proxyAdmin": "0x4Ee9dEBB3046139661b51E17bdfD54Fd63211de7",
"staticAggregationHookFactory": "0x3cECBa60A580dE20CC57D87528953a00f4ED99EA",
"staticAggregationIsm": "0x72AafB2129B3cCCc9A89A1EEdCdF50D1Ccb4a3C8",
"staticAggregationIsmFactory": "0xc0C2dB448fC2c84213394Fcb93a3C467e50ECa9E",
"staticMerkleRootMultisigIsmFactory": "0xDf178647caB5e0222F4B53C57274FD2A03BEaed6",
"staticMerkleRootWeightedMultisigIsmFactory": "0xcb35B397B159AAE1fbfAcc86b782B036D0DA6b1D",
"staticMessageIdMultisigIsmFactory": "0x5e8a0fCc0D1DF583322943e01F02cB243e5300f6",
"staticMessageIdWeightedMultisigIsmFactory": "0x84444cE490233CFa76E3F1029bc166aa8c266907",
"storageGasOracle": "0x16625230dD6cFe1B2bec3eCaEc7d43bA3A902CD6",
"testRecipient": "0xCE8260c1b5cF2fAD15bb4B6542716b050Fdf35c9",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x38D361861d321B8B05de200c61B8F18740Daf4D8"
},
"rootstockmainnet": {
"blockExplorers": [
{
"apiUrl": "https://rootstock.blockscout.com/api",
"family": "blockscout",
"name": "Blockscout",
"url": "https://rootstock.blockscout.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 30,
"reorgPeriod": 4
},
"chainId": 30,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Rootstock",
"domainId": 1000000030,
"gasCurrencyCoinGeckoId": "rootstock",
"name": "rootstockmainnet",
"nativeToken": {
"decimals": 18,
"name": "Rootstock Smart Bitcoin",
"symbol": "RBTC"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.mainnet.rootstock.io/kXhXHf6TnnfW1POvr4UT0YUvujmuju-M"
},
{
"http": "https://public-node.rsk.co"
},
{
"http": "https://mycrypto.rsk.co"
}
],
"technicalStack": "other",
"aggregationHook": "0x97efE0C88EBEBB8382473233a4975fC6b23DCe25",
"domainRoutingIsm": "0xB6F0f1267B01C27326F61a4B4fe2c73751802685",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x282629Af1A2f9b8e2c5Cbc54C35C7989f21950c6",
"interchainAccountIsm": "0xd9Cc2e652A162bb93173d1c44d46cd2c0bbDA59D",
"interchainAccountRouter": "0x7279B1e11142078b8dC9e69620200f4C84FB8aaa",
"interchainGasPaymaster": "0x5ae1ECA065aC8ee92Ce98E584fc3CE43070020e7",
"interchainSecurityModule": "0xE367092A59d558a9Ee8894D12f4Fa363A168870e",
"mailbox": "0x96D51cc3f7500d501bAeB1A2a62BB96fa03532F8",
"merkleTreeHook": "0x086c3947F71BE98A0bDf4AB7239955e7542b0CbA",
"pausableHook": "0x9C6e8d989ea7F212e679191BEb44139d83ac927a",
"pausableIsm": "0x086A21A16eF1133BF58a09A77E2A9e07d3b95c1c",
"protocolFee": "0x8Ea50255C282F89d1A14ad3F159437EE5EF0507f",
"proxyAdmin": "0xe93f2f409ad8B5000431D234472973fe848dcBEC",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xE5bdba0070d0665F5f61847277b201bD29113347",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xa36172F79a248C24693a208b0CEF0e7D6FB995F0",
"testRecipient": "0x693A4cE39d99e46B04cb562329e3F0141cA17331",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x20a0A32a110362920597F72974E1E0d7e25cA20a",
"index": {
"from": 6878186
},
"transactionOverrides": {
"gasPrice": 70000000
}
},
"superpositionmainnet": {
"blockExplorers": [
{
"apiUrl": "https://explorer.superposition.so/api",
"family": "blockscout",
"name": "Superposition Explorer",
"url": "https://explorer.superposition.so/"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 60,
"reorgPeriod": 0
},
"chainId": 55244,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Superposition",
"domainId": 1000055244,
"gasCurrencyCoinGeckoId": "ethereum",
"index": {
"from": 2743
},
"name": "superpositionmainnet",
"nativeToken": {
"decimals": 18,
"name": "Ethereum",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.superposition.so"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0xB2acA8F6e1F26eDA3997263C9fcA214Ef1E571Ff",
"domainRoutingIsm": "0xab8178D8D0502Bef80177909a50F48b7c9269fde",
"domainRoutingIsmFactory": "0x1c6f404800bA49Ed581af734eA0d25c0c7d017B2",
"fallbackRoutingHook": "0x87ED6926abc9E38b9C7C19f835B41943b622663c",
"interchainAccountIsm": "0x8a733038eF4BbC314eE0F7595257D8d3799B6aA9",
"interchainAccountRouter": "0xCE8260c1b5cF2fAD15bb4B6542716b050Fdf35c9",
"interchainGasPaymaster": "0xa1c3884EbE24Cccb120B2E98a55f85140563aa4C",
"interchainSecurityModule": "0x5D26b61F665FabFF52D6f5260072dc20BC9b0652",
"mailbox": "0x5e8a0fCc0D1DF583322943e01F02cB243e5300f6",
"merkleTreeHook": "0x2f536FB7a37bd817Af644072a904Ddc02Dae429f",
"pausableHook": "0xc6835e52C1b976F1ebC71Bc8919738E02849FdA9",
"pausableIsm": "0x9c2214467Daf9e2e1F45b36d08ce0b9C65BFeA88",
"protocolFee": "0x16625230dD6cFe1B2bec3eCaEc7d43bA3A902CD6",
"proxyAdmin": "0x248aDe14C0489E20C9a7Fea5F86DBfC3702208eF",
"staticAggregationHookFactory": "0xA8A311B69f688c1D9928259D872C31ca0d473642",
"staticAggregationIsm": "0x0CFf4d26bF35E69DcdE55B161952656E40028a18",
"staticAggregationIsmFactory": "0x2f0E57527Bb37E5E064EF243fad56CCE6241906c",
"staticMerkleRootMultisigIsmFactory": "0x5bdADEAD721Eb4C4038fF7c989E3C7BbBA302435",
"staticMerkleRootWeightedMultisigIsmFactory": "0x48C427782Bc1e9ecE406b3e277481b28ABcBdf03",
"staticMessageIdMultisigIsmFactory": "0xDc1508844B99C606E16C2Ae87f33c373edD4B0F6",
"staticMessageIdWeightedMultisigIsmFactory": "0x9e8b689e83d929cb8c2d9166E55319a4e6aA83B7",
"storageGasOracle": "0xc4D0b4ef01eD7091792fe3D4c039457719e2DC68",
"testRecipient": "0x545E289B88c6d97b74eC0B96e308cae46Bf5f832",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x26A29486480BD74f9B830a9B8dB33cb43C40f496"
},
"boba": {
"blockExplorers": [
{
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/288/etherscan/api",
"family": "routescan",
"name": "bobascan",
"url": "https://bobascan.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 288,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Boba Mainnet",
"domainId": 288,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "boba",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet.boba.network"
}
],
"technicalStack": "opstack",
"aggregationHook": "0x4533B9ff84bE4f4009409414aF8b8e9c3f4F52a8",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0xC83054ee2eFB0B21A738E79b9B79216B8240A1C9",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"pausableIsm": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"protocolFee": "0x99fEFc1119E86Ee0153eb887cF8E8ab2d92A16e8",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"testRecipient": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xD743801ABB6c7664B623D8534C0f5AF8cD2F1C5e",
"index": {
"from": 10598389
}
},
"duckchain": {
"blockExplorers": [
{
"apiUrl": "https://scan.duckchain.io/api",
"family": "blockscout",
"name": "DuckChain Explorer",
"url": "https://scan.duckchain.io"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 1,
"reorgPeriod": 5
},
"chainId": 5545,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "DuckChain",
"domainId": 5545,
"gasCurrencyCoinGeckoId": "the-open-network",
"index": {
"from": 1149918
},
"name": "duckchain",
"nativeToken": {
"decimals": 18,
"name": "Toncoin",
"symbol": "TON"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.duckchain.io"
},
{
"http": "https://rpc-hk.duckchain.io"
}
],
"technicalStack": "arbitrumnitro",
"aggregationHook": "0x4533B9ff84bE4f4009409414aF8b8e9c3f4F52a8",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0xfc5Ebd43B46e9A8B876603D23E35c8809211686d",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"pausableIsm": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"protocolFee": "0x99fEFc1119E86Ee0153eb887cF8E8ab2d92A16e8",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"testRecipient": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xD743801ABB6c7664B623D8534C0f5AF8cD2F1C5e"
},
"superseed": {
"blockExplorers": [
{
"apiUrl": "https://explorer.superseed.xyz/api",
"family": "blockscout",
"name": "Superseed Explorer",
"url": "https://explorer.superseed.xyz"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 5330,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Superseed",
"domainId": 5330,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "superseed",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet.superseed.xyz"
}
],
"technicalStack": "opstack",
"aggregationHook": "0x4533B9ff84bE4f4009409414aF8b8e9c3f4F52a8",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0xC83054ee2eFB0B21A738E79b9B79216B8240A1C9",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"pausableIsm": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"protocolFee": "0x99fEFc1119E86Ee0153eb887cF8E8ab2d92A16e8",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"testRecipient": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xD743801ABB6c7664B623D8534C0f5AF8cD2F1C5e",
"index": {
"from": 3010957
}
},
"unichain": {
"blockExplorers": [
{
"apiUrl": "https://unichain.blockscout.com/api",
"family": "blockscout",
"name": "Unichain Explorer",
"url": "https://unichain.blockscout.com"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 1,
"reorgPeriod": 5
},
"chainId": 130,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Unichain",
"domainId": 130,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "unichain",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet.unichain.org"
}
],
"technicalStack": "opstack",
"aggregationHook": "0x4533B9ff84bE4f4009409414aF8b8e9c3f4F52a8",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0xaba2463875441032eF14B0EAfAe3c7754A92B56f",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"pausableIsm": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"protocolFee": "0x99fEFc1119E86Ee0153eb887cF8E8ab2d92A16e8",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"testRecipient": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xD743801ABB6c7664B623D8534C0f5AF8cD2F1C5e",
"index": {
"from": 1453239
}
},
"vana": {
"blockExplorers": [
{
"apiUrl": "https://vanascan.io/api/eth-rpc",
"family": "blockscout",
"name": "Vana Explorer",
"url": "https://vanascan.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 6,
"reorgPeriod": 5
},
"chainId": 1480,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Vana",
"domainId": 1480,
"gasCurrencyCoinGeckoId": "vana",
"name": "vana",
"nativeToken": {
"decimals": 18,
"name": "Vana",
"symbol": "VANA"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.vana.org"
}
],
"technicalStack": "other",
"aggregationHook": "0x4533B9ff84bE4f4009409414aF8b8e9c3f4F52a8",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0xaba2463875441032eF14B0EAfAe3c7754A92B56f",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
"pausableIsm": "0xc5D6aCaafBCcEC6D7fD7d92F4509befce641c563",
"protocolFee": "0x99fEFc1119E86Ee0153eb887cF8E8ab2d92A16e8",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"testRecipient": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0xD743801ABB6c7664B623D8534C0f5AF8cD2F1C5e",
"index": {
"from": 629917
}
},
"bsquared": {
"blockExplorers": [
{
"apiUrl": "https://explorer.bsquared.network/api",
"family": "etherscan",
"name": "B² Network Explorer",
"url": "https://explorer.bsquared.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 223,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "B² Network",
"domainId": 223,
"gasCurrencyCoinGeckoId": "bitcoin",
"name": "bsquared",
"nativeToken": {
"decimals": 18,
"name": "Bitcoin",
"symbol": "BTC"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.bsquared.network"
},
{
"http": "https://rpc.ankr.com/b2"
},
{
"http": "https://mainnet.b2-rpc.com"
},
{
"http": "https://b2-mainnet.alt.technology"
}
],
"technicalStack": "other",
"aggregationHook": "0x03D610d916D5D274e4A31c026fd6884281A35d9C",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x60bB6D060393D3C206719A7bD61844cC82891cfB",
"interchainAccountIsm": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainAccountRouter": "0x4D50044335dc1d4D26c343AdeDf6E47808475Deb",
"interchainGasPaymaster": "0x70EbA87Cd15616f32C736B3f3BdCfaeD0713a82B",
"interchainSecurityModule": "0xa1095E9076Ce5aC2Bf2325891bf92a07571A6AFa",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"pausableHook": "0x83475ca5bEB2Eaa59A2FF48a0544ebaa4a32c2de",
"pausableIsm": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"protocolFee": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x7dBb82188F553161d4B4ac3a2362Bff3a57e21D2",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4",
"testRecipient": "0x0F9d4704E1Fb25e416042524e594F1cEac6fF597",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"index": {
"from": 9687363
}
},
"lumiaprism": {
"blockExplorers": [
{
"apiUrl": "https://explorer.lumia.org/api/eth-rpc",
"family": "blockscout",
"name": "Lumia Prism Explorer",
"url": "https://explorer.lumia.org"
}
],
"blocks": {
"confirmations": 3,
"estimateBlockTime": 4,
"reorgPeriod": 5
},
"chainId": 994873017,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Lumia Prism",
"domainId": 1000073017,
"gasCurrencyCoinGeckoId": "lumia",
"name": "lumiaprism",
"nativeToken": {
"decimals": 18,
"name": "Lumia",
"symbol": "LUMIA"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://mainnet-rpc.lumia.org"
}
],
"technicalStack": "polygoncdk",
"aggregationHook": "0xB090349B613577E10A908D7A3ac822ac0310c8fe",
"domainRoutingIsm": "0x30f96591A3A57D76ad4c071fD857d4D1022e886b",
"domainRoutingIsmFactory": "0x8eC5f0239C77295452Ed899FDB851e785cA5FC31",
"fallbackRoutingHook": "0x850615dF99FEc6edffC77Ff246f604a6f7Df6a78",
"interchainAccountIsm": "0x31Bb27f6007C33acD1be83ACEd3164C60f8F7b13",
"interchainAccountRouter": "0xEeb5a99a75585fe137c83E7b62b74f87264A5481",
"interchainGasPaymaster": "0xb7C9307fE90B9AB093c6D3EdeE3259f5378D5f03",
"interchainSecurityModule": "0xc7d18fFAE0eD75c376aA2c662deD7Cd74f492182",
"mailbox": "0x0dF25A2d59F03F039b56E90EdC5B89679Ace28Bc",
"merkleTreeHook": "0xC88636fFdFAc7cb87b7A76310B7a62AF0A000595",
"pausableHook": "0x2AF32cF8e3Cf42d221eDa0c843818fA5ee129E27",
"pausableIsm": "0xd6ba5e6c82E173EC8FB1f6CD8b2b9C111A0982a7",
"protocolFee": "0x14891ce5AF49fb21182C1dc8B81853f3493B1B5B",
"proxyAdmin": "0x200183De44bf765ECB73cD62A74010EaaBC43146",
"staticAggregationHookFactory": "0xf40eE9FF75Fa34910b7C4C8d68d4850B3bD184D3",
"staticAggregationIsm": "0x3BCCc97eD209a7D8ad4A14e20f3A5C37Ff0eFaD4",
"staticAggregationIsmFactory": "0xD7777efaC7241E63f0c7708aA912AEd8CFAfee69",
"staticMerkleRootMultisigIsmFactory": "0xf376247BdE9763808034567E7E87c84970e81E8F",
"staticMerkleRootWeightedMultisigIsmFactory": "0x408F58D25003001C7e5F30259217F1040b8F5AaD",
"staticMessageIdMultisigIsmFactory": "0x280626Ea62fBB3C1A38641D5e735c1d0EE3F28cF",
"staticMessageIdWeightedMultisigIsmFactory": "0xf6fB78dc009C1A4286c0E7d90C10c9E8906a62Ea",
"storageGasOracle": "0x3c38fC01159E7BE0685653A0C896eA49F2BAa7c1",
"testRecipient": "0x128Ff1d24665d55f4b77B1FDbb6d8D0Ec4a0c0a1",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x803d2A87429E20d4B52266bF97Ca1c7e4f4F5Dfa",
"index": {
"from": 3144538
}
},
"swell": {
"blockExplorers": [
{
"apiUrl": "https://explorer.swellnetwork.io/api",
"family": "blockscout",
"name": "Swell Explorer",
"url": "https://explorer.swellnetwork.io"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 2,
"reorgPeriod": 5
},
"chainId": 1923,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "Swell",
"domainId": 1923,
"gasCurrencyCoinGeckoId": "ethereum",
"name": "swell",
"nativeToken": {
"decimals": 18,
"name": "Ether",
"symbol": "ETH"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://swell-mainnet.alt.technology"
}
],
"technicalStack": "opstack",
"aggregationHook": "0x2e4d4189a24fa484Aad5D7Cd6ebe3A80cDAAB068",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x70EbA87Cd15616f32C736B3f3BdCfaeD0713a82B",
"interchainAccountIsm": "0x28291a7062afA569104bEd52F7AcCA3dD2FafD11",
"interchainAccountRouter": "0xe9E3444DDD80c50276c0Fcf316026f6d7fEc2c47",
"interchainGasPaymaster": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainSecurityModule": "0xEa325c513Bd54A3d4a04D98843d0523B1477751D",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x5C02157068a52cEcfc98EDb6115DE6134EcB4764",
"pausableHook": "0x99fEFc1119E86Ee0153eb887cF8E8ab2d92A16e8",
"pausableIsm": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"protocolFee": "0x7CE76f5f0C469bBB4cd7Ea6EbabB54437A093127",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xEa325c513Bd54A3d4a04D98843d0523B1477751D",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0xCDeb368Db32ecCefaf7018e152DA9120565cb572",
"testRecipient": "0xBC53dACd8c0ac0d2bAC461479EAaf5519eCC8853",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x4D50044335dc1d4D26c343AdeDf6E47808475Deb",
"index": {
"from": 57794
}
}
},
"defaultRpcConsensusType": "fallback"
}