From d316772243c1b5ed8afdb8c6605a5f1db058b5da Mon Sep 17 00:00:00 2001 From: Paul Balaji <10051819+paulbalaji@users.noreply.github.com> Date: Wed, 3 Jul 2024 14:54:22 +0100 Subject: [PATCH] feat: deploy to BOB, Mantle, Taiko (#4051) resolves https://github.com/hyperlane-xyz/issues/issues/1289 - feat: deploy to BOB, Mantle, Taiko - drive-by: fix deploying to specific chain - drive-by: adding AVS operators for eth - drive-by: support non-evm remotes in mainnet3 core config --------- Signed-off-by: pbio <10051819+paulbalaji@users.noreply.github.com> --- .changeset/large-taxis-fly.md | 6 + .registryrc | 2 +- .../m20230309_000001_create_table_domain.rs | 24 + rust/config/mainnet_config.json | 214 +++- rust/hyperlane-core/src/chain.rs | 13 +- .../config/environments/mainnet3/agent.ts | 21 +- .../mainnet3/aw-validators/hyperlane.json | 9 + .../config/environments/mainnet3/chains.ts | 5 + .../config/environments/mainnet3/core.ts | 160 +-- .../mainnet3/core/verification.json | 60 ++ .../config/environments/mainnet3/funding.ts | 11 +- .../environments/mainnet3/gasPrices.json | 14 +- .../infra/config/environments/mainnet3/igp.ts | 4 +- .../config/environments/mainnet3/index.ts | 13 +- .../mainnet3/ism/verification.json | 940 +++++++++++++++++- .../config/environments/mainnet3/owners.ts | 6 +- .../mainnet3/supportedChainNames.ts | 3 + .../environments/mainnet3/tokenPrices.json | 55 +- .../environments/mainnet3/validators.ts | 36 + typescript/infra/scripts/deploy.ts | 2 +- typescript/infra/src/config/gas-oracle.ts | 3 + typescript/infra/src/deployment/deploy.ts | 8 +- typescript/sdk/src/consts/multisigIsm.ts | 29 + 23 files changed, 1450 insertions(+), 188 deletions(-) create mode 100644 .changeset/large-taxis-fly.md diff --git a/.changeset/large-taxis-fly.md b/.changeset/large-taxis-fly.md new file mode 100644 index 000000000..25325b1fd --- /dev/null +++ b/.changeset/large-taxis-fly.md @@ -0,0 +1,6 @@ +--- +'@hyperlane-xyz/infra': minor +'@hyperlane-xyz/sdk': minor +--- + +Deploy to bob, mantle, taiko diff --git a/.registryrc b/.registryrc index 826e14246..7fe52d367 100644 --- a/.registryrc +++ b/.registryrc @@ -1 +1 @@ -v2.1.1 +v2.2.1 diff --git a/rust/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs b/rust/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs index 578548e95..8ca95b27d 100644 --- a/rust/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs +++ b/rust/agents/scraper/migration/src/m20230309_000001_create_table_domain.rs @@ -62,6 +62,14 @@ const DOMAINS: &[RawDomain] = &[ is_test_net: false, is_deprecated: false, }, + RawDomain { + name: "bob", + token: "ETH", + domain: 60808, + chain_id: 60808, + is_test_net: false, + is_deprecated: false, + }, RawDomain { name: "bsc", token: "BNB", @@ -134,6 +142,14 @@ const DOMAINS: &[RawDomain] = &[ is_test_net: false, is_deprecated: false, }, + RawDomain { + name: "mantle", + token: "MNT", + domain: 5000, + chain_id: 5000, + is_test_net: false, + is_deprecated: false, + }, RawDomain { name: "mode", token: "ETH", @@ -214,6 +230,14 @@ const DOMAINS: &[RawDomain] = &[ is_test_net: true, is_deprecated: false, }, + RawDomain { + name: "taiko", + token: "ETH", + domain: 167000, + chain_id: 167000, + is_test_net: false, + is_deprecated: false, + }, RawDomain { name: "viction", token: "VIC", diff --git a/rust/config/mainnet_config.json b/rust/config/mainnet_config.json index 351e3c878..cfbbcb5aa 100644 --- a/rust/config/mainnet_config.json +++ b/rust/config/mainnet_config.json @@ -27,7 +27,7 @@ "from": 2507127 }, "interchainGasPaymaster": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA", - "interchainSecurityModule": "0xa10686c87d47C8b78c846E77BE2f96607C7c44F4", + "interchainSecurityModule": "0x609ad94304896607A6D81DB00d882245045B79da", "isTestnet": false, "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0x811808Dd29ba8B0FC6C0ec0b5537035E59745162", @@ -86,7 +86,7 @@ "interchainAccountIsm": "0xfa8bfcE55B3A0631dF38257615cEF7FCD3523A48", "interchainAccountRouter": "0xCD0CFFf6eFD943b4b81f2c15847730dbcD30e3aE", "interchainGasPaymaster": "0x3b6044acd6767f017e99318AA6Ef93b7B06A5a22", - "interchainSecurityModule": "0xd12C017529BE32c23150313F1E473B76e6B19773", + "interchainSecurityModule": "0x270b97f88B01fc436e5c8053C30A31d5a3Ca90E9", "mailbox": "0x979Ca5202784112f4738403dBec5D0F3B9daabB9", "merkleTreeHook": "0x748040afB89B8FdBb992799808215419d36A0930", "name": "arbitrum", @@ -152,7 +152,7 @@ "interchainAccountIsm": "0x786c26C1857032617c215f265509d6E44e44Bfe3", "interchainAccountRouter": "0xA967A6CE0e73fAf672843DECaA372511996E8852", "interchainGasPaymaster": "0x95519ba800BBd0d34eeAE026fEc620AD978176C0", - "interchainSecurityModule": "0xB7D96FcD923267640BcffC7c3F23530E6C7A4209", + "interchainSecurityModule": "0x899305387C0d8f0aA52C07E20f64D3Ea021B71A8", "mailbox": "0xFf06aFcaABaDDd1fb08371f9ccA15D73D51FeBD6", "merkleTreeHook": "0x84eea61D679F42D92145fA052C89900CBAccE95A", "name": "avalanche", @@ -218,7 +218,7 @@ "interchainAccountIsm": "0x861908E6c8F992537F557da5Fb5876836036b347", "interchainAccountRouter": "0xa85F9e4fdA2FFF1c07f2726a630443af3faDF830", "interchainGasPaymaster": "0xc3F23848Ed2e04C0c6d41bd7804fa8f89F940B94", - "interchainSecurityModule": "0xe7aaFbA826B0bDC60aD09b7b8cA8175c9A89cE0b", + "interchainSecurityModule": "0xc0021e56772fD4f0cEA3322a237116b6E8Ce7caE", "mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D", "merkleTreeHook": "0x19dc38aeae620380430C200a6E990D5Af5480117", "name": "base", @@ -280,7 +280,7 @@ "from": 2496427 }, "interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9", - "interchainSecurityModule": "0xdE516712D58166257E03254BD596CA726417a837", + "interchainSecurityModule": "0x91a6102E235B1e74914804Fb150E1A0542b98b8E", "mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7", "merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465", "name": "blast", @@ -309,6 +309,62 @@ "testRecipient": "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84", "validatorAnnounce": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72" }, + "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": 1 + }, + "chainId": 60808, + "displayName": "BOB", + "domainId": 60808, + "domainRoutingIsm": "0x93e62F2c9a89f8b1e62A3c726Bbf6BD1A7b7FA3e", + "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", + "fallbackRoutingHook": "0xF5165f115ba4E1Adc09f0EB392232D65F219806a", + "gasCurrencyCoinGeckoId": "ethereum", + "gnosisSafeTransactionServiceUrl": "https://transaction.safe.gobob.xyz", + "index": { + "from": 3225119 + }, + "interchainGasPaymaster": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05", + "interchainSecurityModule": "0x81900eC6CAfC44F418d2d763C3dA437014ddf5CD", + "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": "other", + "testRecipient": "0xe03dad16074BC5EEA9A9311257BF02Eb0B6AAA2b", + "validatorAnnounce": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503" + }, "bsc": { "aggregationHook": "0x402Fc106576462a892355d69ACF03D46A888ae88", "blockExplorers": [ @@ -339,7 +395,7 @@ "interchainAccountIsm": "0xB274Bbbc1df5f1d1763216A93d473fde6f5de043", "interchainAccountRouter": "0x4BBd67dC995572b40Dc6B3eB6CdE5185a5373868", "interchainGasPaymaster": "0x78E25e7f84416e69b9339B0A6336EB6EFfF6b451", - "interchainSecurityModule": "0x4C23e778aF68a54cb59A44581b90E78b35763C83", + "interchainSecurityModule": "0xA27bf8601a8952588b9561332597Ef8Af5029Bc4", "mailbox": "0x2971b9Aec44bE4eb673DF1B88cDB57b96eefe8a4", "merkleTreeHook": "0xFDb9Cd5f9daAA2E4474019405A328a88E7484f26", "name": "bsc", @@ -412,7 +468,7 @@ "interchainAccountIsm": "0x30a8DEc5318e2aAa9ad5b069fC606c4CfF6f5676", "interchainAccountRouter": "0x4ED23E3885e1651E62564F78817D91865beba575", "interchainGasPaymaster": "0x571f1435613381208477ac5d6974310d88AC7cB7", - "interchainSecurityModule": "0x1b90cCF49e45a87F751b344864e4246D1a57a100", + "interchainSecurityModule": "0xcb6658E0f2211730aB9c95A5c7159393a7f470EE", "mailbox": "0x50da3B3907A08a24fe4999F4Dcf337E8dC7954bb", "merkleTreeHook": "0x04dB778f05854f26E67e0a66b740BBbE9070D366", "name": "celo", @@ -477,7 +533,7 @@ "interchainAccountIsm": "0x609707355a53d2aAb6366f48E2b607C599D26B29", "interchainAccountRouter": "0x8dBae9B1616c46A20591fE0006Bf015E28ca5cC9", "interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611", - "interchainSecurityModule": "0x355F2c5532521ca6Df8A908641Ed69eD0619466d", + "interchainSecurityModule": "0x8b3674adc97Cb670B0D6A6155EBe879F6d75E3fD", "mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239", "merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA", "name": "ethereum", @@ -540,7 +596,7 @@ "from": 5350807 }, "interchainGasPaymaster": "0x2Fca7f6eC3d4A0408900f2BB30004d4616eE985E", - "interchainSecurityModule": "0xf1465DB845d0978e74d45EF195734b43bB739094", + "interchainSecurityModule": "0x3d8FbBbD14932249e98BA9d9FB42c078FbEaa4CF", "mailbox": "0x2f9DB5616fa3fAd1aB06cB2C906830BA63d135e3", "merkleTreeHook": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147", "name": "fraxtal", @@ -597,7 +653,7 @@ "interchainAccountIsm": "0x5a56dff3D92D635372718f86e6dF09C1129CFf53", "interchainAccountRouter": "0x5E59EBAedeB691408EBAcF6C37218fa2cFcaC9f2", "interchainGasPaymaster": "0xDd260B99d302f0A3fF885728c086f729c06f227f", - "interchainSecurityModule": "0x613D9ab2dd6cCFa2763d86FdEE3d96C4Ef4C2E96", + "interchainSecurityModule": "0xB4722A94aED7E8cf8adc1839F24b3e3329264Fd5", "mailbox": "0xaD09d78f4c6b9dA2Ae82b1D34107802d380Bb74f", "merkleTreeHook": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645", "name": "gnosis", @@ -661,7 +717,7 @@ "interchainAccountIsm": "0x31894E7a734540B343d67E491148EB4FC9f7A45B", "interchainAccountRouter": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd", "interchainGasPaymaster": "0x19dc38aeae620380430C200a6E990D5Af5480117", - "interchainSecurityModule": "0xC1a7a7b15d2B243f7c6Dbbdd6e8A2C2434cdf7BF", + "interchainSecurityModule": "0xa5fD5Ae4424dd6069a399492299eff6CD370Fc11", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0x0972954923a1e2b2aAb04Fa0c4a0797e5989Cd65", "name": "inevm", @@ -769,7 +825,7 @@ "from": 5154574 }, "interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28", - "interchainSecurityModule": "0xF8aD4EB8aBA13ae546B8D01501c63e4543Ff0660", + "interchainSecurityModule": "0xd03F639c5aaE951A3F7C83dBd5F39C824f7B891F", "mailbox": "0x02d16BC51af6BfD153d67CA61754cF912E82C4d9", "merkleTreeHook": "0xC077A0Cc408173349b1c9870C667B40FE3C01dd7", "name": "linea", @@ -827,7 +883,7 @@ "interchainAccountIsm": "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD", "interchainAccountRouter": "0x0f6fF770Eda6Ba1433C39cCf47d4059b254224Aa", "interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4", - "interchainSecurityModule": "0x83319BD846D54E49C850027191D094D5E9114339", + "interchainSecurityModule": "0xaC7C2a9bc61C9A7c2Fe426c51CC5800d2672d330", "isTestnet": false, "mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E", "merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112", @@ -858,6 +914,62 @@ "timelockController": "0x0000000000000000000000000000000000000000", "validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9" }, + "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": 1 + }, + "chainId": 5000, + "displayName": "Mantle", + "domainId": 5000, + "domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730", + "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", + "fallbackRoutingHook": "0xdB670e1a1e312BF17425b08cE55Bdf2cD8F8eD54", + "gasCurrencyCoinGeckoId": "mantle", + "gnosisSafeTransactionServiceUrl": "https://transaction.multisig.mantle.xyz", + "index": { + "from": 65590958 + }, + "interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28", + "interchainSecurityModule": "0x05A2E0C12177c6eDD95c805Ab27908d2Bf593466", + "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": "other", + "testRecipient": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05", + "validatorAnnounce": "0x1956848601549de5aa0c887892061fA5aB4f6fC4" + }, "mode": { "aggregationHook": "0x80D80cfBa98dD2d456ECd43Dcc1f852D5C4EeD7a", "blockExplorers": [ @@ -885,7 +997,7 @@ "from": 6817759 }, "interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d", - "interchainSecurityModule": "0xEe9443bc2Df7C10327077c605120CDd95e8Ca75F", + "interchainSecurityModule": "0x84CF2C35fB6b59a73aDe2B208585FeFBFE0A044F", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6", "name": "mode", @@ -942,7 +1054,7 @@ "interchainAccountIsm": "0x799eA6f430f5CA901b59335fFC2fA10531106009", "interchainAccountRouter": "0x6b142f596FFc761ac3fFaaC1ecaDe54f4EE09977", "interchainGasPaymaster": "0x14760E32C0746094cF14D97124865BC7F0F7368F", - "interchainSecurityModule": "0x3db9D7c5cD0Aa312AB1262C711C10DeBA8303388", + "interchainSecurityModule": "0x63f51e56DF09b10F8Cb8d5B1918152542aC04994", "mailbox": "0x094d03E751f49908080EFf000Dd6FD177fd44CC3", "merkleTreeHook": "0x87403b85f6f316e7ba91ba1fa6C3Fb7dD4095547", "name": "moonbeam", @@ -1069,7 +1181,7 @@ "interchainAccountIsm": "0x0389faCac114023C123E22F3E54394944cAbcb48", "interchainAccountRouter": "0x33Ef006E7083BB38E0AFe3C3979F4e9b84415bf1", "interchainGasPaymaster": "0xD8A76C4D91fCbB7Cc8eA795DFDF870E48368995C", - "interchainSecurityModule": "0x32Ce76b9FfD0BbA0e43a2C27c2cAc90E82C48B95", + "interchainSecurityModule": "0xb6266a775255dFD5631763605547D0A733e27E6b", "mailbox": "0xd4C1905BB1D26BC93DAC913e13CaCC278CdCC80D", "merkleTreeHook": "0x68eE9bec9B4dbB61f69D9D293Ae26a5AACb2e28f", "name": "optimism", @@ -1192,7 +1304,7 @@ "interchainAccountIsm": "0x90384bC552e3C48af51Ef7D9473A9bF87431f5c7", "interchainAccountRouter": "0x5e80f3474825B61183c0F0f0726796F589082420", "interchainGasPaymaster": "0x0071740Bf129b05C4684abfbBeD248D80971cce2", - "interchainSecurityModule": "0x1c39BD73C933c6B1b14685ABD28F996A6a0e306f", + "interchainSecurityModule": "0x04f34f0f98CF07d8F68Af5e0e3403C5E40bE8265", "mailbox": "0x5d934f4e2f797775e53561bB72aca21ba36B96BB", "merkleTreeHook": "0x73FbD25c3e817DC4B4Cd9d00eff6D83dcde2DfF6", "name": "polygon", @@ -1262,7 +1374,7 @@ "interchainAccountIsm": "0xC49aF4965264FA7BB6424CE37aA06773ad177224", "interchainAccountRouter": "0xF15D70941dE2Bf95A23d6488eBCbedE0a444137f", "interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4", - "interchainSecurityModule": "0xb7556707f04BEF8888294C18c447bE1e4446bF7D", + "interchainSecurityModule": "0x3eF37B803368A7cd060819C67a14430E1c4C45B7", "mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E", "merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112", "name": "polygonzkevm", @@ -1323,7 +1435,7 @@ "from": 1797579 }, "interchainGasPaymaster": "0x2Fa570E83009eaEef3a1cbd496a9a30F05266634", - "interchainSecurityModule": "0xD10AD7d927817558468Ce0F0ab1edEF8D230E2d8", + "interchainSecurityModule": "0x1f41b5FeC09B50f526a2ABADE02a681131c7d296", "mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D", "merkleTreeHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA", "name": "redstone", @@ -1381,7 +1493,7 @@ "interchainAccountIsm": "0xb89c6ED617f5F46175E41551350725A09110bbCE", "interchainAccountRouter": "0x9629c28990F11c31735765A6FD59E1E1bC197DbD", "interchainGasPaymaster": "0xBF12ef4B9f307463D3FB59c3604F294dDCe287E2", - "interchainSecurityModule": "0x0E6aFC8a7b5223cAD7a7c346da1B2e6ECBaA93f0", + "interchainSecurityModule": "0xddaC512B7faDfd36AAfc7e65ECF786EAa9b52686", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0x6119E37Bd66406A1Db74920aC79C15fB8411Ba76", "name": "scroll", @@ -1439,7 +1551,7 @@ "from": 80809403 }, "interchainGasPaymaster": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72", - "interchainSecurityModule": "0x10FF77061869714E92E574FcE9025a419f5b999d", + "interchainSecurityModule": "0x8322954E0027C9e7ff95ACA52448f9919fe1fa29", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0xca1b69fA4c4a7c7fD839bC50867c589592bcfe49", "name": "sei", @@ -1470,6 +1582,62 @@ }, "validatorAnnounce": "0x5332D1AC0A626D265298c14ff681c0A8D28dB86d" }, + "taiko": { + "aggregationHook": "0x1175A31f66C5e3d0ce0ca3B7F80Abe72c6FcE272", + "blockExplorers": [ + { + "apiUrl": "https://api.taikoscan.io/api", + "family": "etherscan", + "name": "Taikoscan", + "url": "https://taikoscan.io" + } + ], + "blocks": { + "confirmations": 1, + "estimateBlockTime": 12, + "reorgPeriod": 1 + }, + "chainId": 167000, + "displayName": "Taiko", + "domainId": 167000, + "domainRoutingIsm": "0x5D1e7D7c5B9e6dDC8439F67F10c578f2A1084f6F", + "domainRoutingIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", + "fallbackRoutingHook": "0x79B1257BDBCaeF98Da685A7c225b6e61a119Cb7a", + "gasCurrencyCoinGeckoId": "ethereum", + "gnosisSafeTransactionServiceUrl": "https://transaction.safe.taiko.xyz", + "index": { + "from": 98997 + }, + "interchainGasPaymaster": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42", + "interchainSecurityModule": "0xdc39E8682A1aD8eBe76C2dE0334091F0a96EA6e6", + "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", + "validatorAnnounce": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4" + }, "viction": { "aggregationHook": "0x5c7890FAf9c99dC55926F00d624D7Bc6D7ac6834", "blockExplorers": [ @@ -1499,7 +1667,7 @@ "interchainAccountIsm": "0xD1E267d2d7876e97E217BfE61c34AB50FEF52807", "interchainAccountRouter": "0x1956848601549de5aa0c887892061fA5aB4f6fC4", "interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4", - "interchainSecurityModule": "0xA76F4620ac1e97d273B2C9Ca71805c8afD792098", + "interchainSecurityModule": "0x7E3003Ad3042C70cdA13461Af9EEd6FD7b7B5CcA", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112", "name": "viction", @@ -1558,7 +1726,7 @@ "from": 3068132 }, "interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d", - "interchainSecurityModule": "0x8fB4297373f1f11032856693Cf6eee5eC8d7FF4F", + "interchainSecurityModule": "0xb44DE9FB31fab40698C334C7BFA7E5f2AC61f64c", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6", "name": "zetachain", diff --git a/rust/hyperlane-core/src/chain.rs b/rust/hyperlane-core/src/chain.rs index e17790e7a..3ed3f996c 100644 --- a/rust/hyperlane-core/src/chain.rs +++ b/rust/hyperlane-core/src/chain.rs @@ -105,6 +105,12 @@ pub enum KnownHyperlaneDomain { Sei = 1329, + Bob = 60808, + + Mantle = 5000, + + Taiko = 167000, + // -- Local test chains -- /// Test1 local chain Test1 = 13371, @@ -237,7 +243,8 @@ impl KnownHyperlaneDomain { Mainnet: [ Ethereum, Avalanche, Arbitrum, Polygon, Optimism, BinanceSmartChain, Celo, Moonbeam, Gnosis, MantaPacific, Neutron, Injective, InEvm, Ancient8, Blast, - Mode, Redstone, Viction, Zetachain, Fraxtal, Linea, Sei, Osmosis + Mode, Redstone, Viction, Zetachain, Fraxtal, Linea, Sei, Osmosis, + Bob, Mantle, Taiko ], Testnet: [ Alfajores, MoonbaseAlpha, Sepolia, ScrollSepolia, Chiado, PlumeTestnet, Fuji, BinanceSmartChainTestnet, Holesky @@ -255,7 +262,7 @@ impl KnownHyperlaneDomain { Optimism, BinanceSmartChain, BinanceSmartChainTestnet, Celo, Gnosis, Alfajores, Moonbeam, InEvm, Ancient8, Blast, Mode, Redstone, Viction, Zetachain, MoonbaseAlpha, ScrollSepolia, Chiado, MantaPacific, PlumeTestnet, - Fraxtal, Linea, Sei, + Fraxtal, Linea, Sei, Bob, Mantle, Taiko, Test1, Test2, Test3 ], HyperlaneDomainProtocol::Fuel: [FuelTest1], @@ -273,7 +280,7 @@ impl KnownHyperlaneDomain { Ethereum, Sepolia, Holesky, Polygon, Avalanche, Fuji, Optimism, BinanceSmartChain, BinanceSmartChainTestnet, Celo, Gnosis, Alfajores, Moonbeam, MoonbaseAlpha, ScrollSepolia, Chiado, MantaPacific, Neutron, Injective, InEvm, Ancient8, Blast, Mode, Redstone, - Viction, Zetachain, Fraxtal, Linea, Sei, Osmosis, + Viction, Zetachain, Fraxtal, Linea, Sei, Osmosis, Bob, Mantle, Taiko, Test1, Test2, Test3, FuelTest1, SealevelTest1, SealevelTest2, CosmosTest99990, CosmosTest99991 ], }) diff --git a/typescript/infra/config/environments/mainnet3/agent.ts b/typescript/infra/config/environments/mainnet3/agent.ts index 1418d800f..f2b6335b8 100644 --- a/typescript/infra/config/environments/mainnet3/agent.ts +++ b/typescript/infra/config/environments/mainnet3/agent.ts @@ -15,6 +15,7 @@ import { } from '../../../src/config/agent/relayer.js'; import { ALL_KEY_ROLES, Role } from '../../../src/roles.js'; import { Contexts } from '../../contexts.js'; +import { getDomainId } from '../../registry.js'; import { environment } from './chains.js'; import { helloWorld } from './helloworld.js'; @@ -51,6 +52,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { avalanche: true, base: true, blast: true, + bob: true, bsc: true, celo: true, ethereum: true, @@ -60,6 +62,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { inevm: true, linea: true, mantapacific: true, + mantle: true, mode: true, moonbeam: true, neutron: true, @@ -70,6 +73,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { redstone: true, scroll: true, sei: true, + taiko: true, viction: true, zetachain: true, }, @@ -79,6 +83,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { avalanche: true, base: true, blast: true, + bob: true, bsc: true, celo: true, ethereum: true, @@ -88,6 +93,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { inevm: true, linea: true, mantapacific: true, + mantle: true, mode: true, moonbeam: true, // At the moment, we only relay between Neutron and Manta Pacific on the neutron context. @@ -99,6 +105,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { redstone: true, scroll: true, sei: true, + taiko: true, viction: true, zetachain: true, }, @@ -108,6 +115,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { avalanche: true, base: true, blast: true, + bob: true, bsc: true, celo: true, ethereum: true, @@ -118,6 +126,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { inevm: true, linea: true, mantapacific: true, + mantle: true, mode: true, moonbeam: true, // Cannot scrape non-EVM chains @@ -132,6 +141,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig = { // and the scraper not gracefully handling txs that may not exist via the eth RPC, we don't run the scraper. sei: false, scroll: true, + taiko: true, // Has RPC non-compliance that breaks scraping. viction: false, zetachain: true, @@ -153,6 +163,11 @@ const contextBase = { } as const; const gasPaymentEnforcement: GasPaymentEnforcement[] = [ + { + type: GasPaymentEnforcementPolicyType.Minimum, + payment: '1', + matchingList: [{ destinationDomain: getDomainId('mantle') }], + }, // To cover ourselves against IGP indexing issues and to ensure Nexus // users have the best possible experience, we whitelist messages between // warp routes that we know are certainly paying for gas. @@ -251,7 +266,7 @@ const hyperlane: RootAgentConfig = { rpcConsensusType: RpcConsensusType.Fallback, docker: { repo, - tag: '4cc9327-20240701-214057', + tag: '7a8478b-20240703-113821', }, gasPaymentEnforcement: gasPaymentEnforcement, metricAppContexts, @@ -260,7 +275,7 @@ const hyperlane: RootAgentConfig = { validators: { docker: { repo, - tag: '0d12ff3-20240620-173353', + tag: '7a8478b-20240703-113821', }, rpcConsensusType: RpcConsensusType.Quorum, chains: validatorChainConfig(Contexts.Hyperlane), @@ -270,7 +285,7 @@ const hyperlane: RootAgentConfig = { rpcConsensusType: RpcConsensusType.Fallback, docker: { repo, - tag: '0d12ff3-20240620-173353', + tag: '7a8478b-20240703-113821', }, resources: scraperResources, }, diff --git a/typescript/infra/config/environments/mainnet3/aw-validators/hyperlane.json b/typescript/infra/config/environments/mainnet3/aw-validators/hyperlane.json index d5d6a3f02..75b4a01bd 100644 --- a/typescript/infra/config/environments/mainnet3/aw-validators/hyperlane.json +++ b/typescript/infra/config/environments/mainnet3/aw-validators/hyperlane.json @@ -26,6 +26,9 @@ "blast": { "validators": ["0xf20c0b09f597597c8d2430d3d72dfddaf09177d1"] }, + "bob": { + "validators": ["0x20f283be1eb0e81e22f51705dcb79883cfdd34aa"] + }, "bsc": { "validators": [ "0x570af9b7b36568c8877eebba6c6727aa9dab7268", @@ -77,6 +80,9 @@ "0x5dda0c4cf18de3b3ab637f8df82b24921082b54c" ] }, + "mantle": { + "validators": ["0xf930636c5a1a8bf9302405f72e3af3c96ebe4a52"] + }, "mode": { "validators": ["0x7eb2e1920a4166c19d6884c1cec3d2cf356fc9b7"] }, @@ -131,6 +137,9 @@ "sei": { "validators": ["0x9920d2dbf6c85ffc228fdc2e810bf895732c6aa5"] }, + "taiko": { + "validators": ["0xa930073c8f2d0b2f7423ea32293e0d1362e65d79"] + }, "viction": { "validators": ["0x1f87c368f8e05a85ef9126d984a980a20930cb9c"] }, diff --git a/typescript/infra/config/environments/mainnet3/chains.ts b/typescript/infra/config/environments/mainnet3/chains.ts index a5e518b3d..160aae87c 100644 --- a/typescript/infra/config/environments/mainnet3/chains.ts +++ b/typescript/infra/config/environments/mainnet3/chains.ts @@ -29,6 +29,11 @@ export const chainMetadataOverrides: ChainMap> = { maxPriorityFeePerGas: 50 * 10 ** 9, // 50 gwei }, }, + polygonzkevm: { + transactionOverrides: { + gasPrice: 1 * 10 ** 9, // 1 gwei + }, + }, ethereum: { blocks: { confirmations: 3, diff --git a/typescript/infra/config/environments/mainnet3/core.ts b/typescript/infra/config/environments/mainnet3/core.ts index e2a218662..761c4f37d 100644 --- a/typescript/infra/config/environments/mainnet3/core.ts +++ b/typescript/infra/config/environments/mainnet3/core.ts @@ -17,97 +17,97 @@ import { RoutingIsmConfig, defaultMultisigConfigs, } from '@hyperlane-xyz/sdk'; -import { Address, ProtocolType, objMap } from '@hyperlane-xyz/utils'; - -import { getChain } from '../../registry.js'; +import { Address, objMap } from '@hyperlane-xyz/utils'; import { igp } from './igp.js'; -import { DEPLOYER, owners } from './owners.js'; +import { DEPLOYER, ethereumChainOwners } from './owners.js'; import { supportedChainNames } from './supportedChainNames.js'; -export const core: ChainMap = objMap(owners, (local, owner) => { - const originMultisigs: ChainMap = Object.fromEntries( - supportedChainNames - .filter((chain) => getChain(chain).protocol === ProtocolType.Ethereum) - .filter((chain) => chain !== local) - .map((origin) => [origin, defaultMultisigConfigs[origin]]), - ); +export const core: ChainMap = objMap( + ethereumChainOwners, + (local, owner) => { + const originMultisigs: ChainMap = Object.fromEntries( + supportedChainNames + .filter((chain) => chain !== local) + .map((origin) => [origin, defaultMultisigConfigs[origin]]), + ); - const merkleRoot = (multisig: MultisigConfig): MultisigIsmConfig => ({ - type: IsmType.MERKLE_ROOT_MULTISIG, - ...multisig, - }); + const merkleRoot = (multisig: MultisigConfig): MultisigIsmConfig => ({ + type: IsmType.MERKLE_ROOT_MULTISIG, + ...multisig, + }); - const messageIdIsm = (multisig: MultisigConfig): MultisigIsmConfig => ({ - type: IsmType.MESSAGE_ID_MULTISIG, - ...multisig, - }); + const messageIdIsm = (multisig: MultisigConfig): MultisigIsmConfig => ({ + type: IsmType.MESSAGE_ID_MULTISIG, + ...multisig, + }); - const routingIsm: RoutingIsmConfig = { - type: IsmType.ROUTING, - domains: objMap( - originMultisigs, - (_, multisig): AggregationIsmConfig => ({ - type: IsmType.AGGREGATION, - modules: [messageIdIsm(multisig), merkleRoot(multisig)], - threshold: 1, - }), - ), - ...owner, - }; + const routingIsm: RoutingIsmConfig = { + type: IsmType.ROUTING, + domains: objMap( + originMultisigs, + (_, multisig): AggregationIsmConfig => ({ + type: IsmType.AGGREGATION, + modules: [messageIdIsm(multisig), merkleRoot(multisig)], + threshold: 1, + }), + ), + ...owner, + }; - const pausableIsm: PausableIsmConfig = { - type: IsmType.PAUSABLE, - paused: false, - owner: DEPLOYER, // keep pausable hot - }; + const pausableIsm: PausableIsmConfig = { + type: IsmType.PAUSABLE, + paused: false, + owner: DEPLOYER, // keep pausable hot + }; - const defaultIsm: AggregationIsmConfig = { - type: IsmType.AGGREGATION, - modules: [routingIsm, pausableIsm], - threshold: 2, - }; + const defaultIsm: AggregationIsmConfig = { + type: IsmType.AGGREGATION, + modules: [routingIsm, pausableIsm], + threshold: 2, + }; - const merkleHook: MerkleTreeHookConfig = { - type: HookType.MERKLE_TREE, - }; + const merkleHook: MerkleTreeHookConfig = { + type: HookType.MERKLE_TREE, + }; - const igpHook = igp[local]; + const igpHook = igp[local]; - const pausableHook: PausableHookConfig = { - type: HookType.PAUSABLE, - paused: false, - owner: DEPLOYER, // keep pausable hot - }; - const aggregationHooks = objMap( - originMultisigs, - (_origin, _): AggregationHookConfig => ({ - type: HookType.AGGREGATION, - hooks: [pausableHook, merkleHook, igpHook], - }), - ); - const defaultHook: FallbackRoutingHookConfig = { - type: HookType.FALLBACK_ROUTING, - ...owner, - domains: aggregationHooks, - fallback: merkleHook, - }; + const pausableHook: PausableHookConfig = { + type: HookType.PAUSABLE, + paused: false, + owner: DEPLOYER, // keep pausable hot + }; + const aggregationHooks = objMap( + originMultisigs, + (_origin, _): AggregationHookConfig => ({ + type: HookType.AGGREGATION, + hooks: [pausableHook, merkleHook, igpHook], + }), + ); + const defaultHook: FallbackRoutingHookConfig = { + type: HookType.FALLBACK_ROUTING, + ...owner, + domains: aggregationHooks, + fallback: merkleHook, + }; - if (typeof owner.owner !== 'string') { - throw new Error('beneficiary must be a string'); - } - const requiredHook: ProtocolFeeHookConfig = { - type: HookType.PROTOCOL_FEE, - maxProtocolFee: ethers.utils.parseUnits('1', 'gwei').toString(), // 1 gwei of native token - protocolFee: BigNumber.from(0).toString(), // 0 wei - beneficiary: owner.owner as Address, // Owner can be AccountConfig - ...owner, - }; + if (typeof owner.owner !== 'string') { + throw new Error('beneficiary must be a string'); + } + const requiredHook: ProtocolFeeHookConfig = { + type: HookType.PROTOCOL_FEE, + maxProtocolFee: ethers.utils.parseUnits('1', 'gwei').toString(), // 1 gwei of native token + protocolFee: BigNumber.from(0).toString(), // 0 wei + beneficiary: owner.owner as Address, // Owner can be AccountConfig + ...owner, + }; - return { - defaultIsm, - defaultHook, - requiredHook, - ...owner, - }; -}); + return { + defaultIsm, + defaultHook, + requiredHook, + ...owner, + }; + }, +); diff --git a/typescript/infra/config/environments/mainnet3/core/verification.json b/typescript/infra/config/environments/mainnet3/core/verification.json index e08a8c6fa..d42885b99 100644 --- a/typescript/infra/config/environments/mainnet3/core/verification.json +++ b/typescript/infra/config/environments/mainnet3/core/verification.json @@ -1989,6 +1989,20 @@ "name": "PausableIsm" } ], + "bob": [ + { + "address": "0x2E4B42D3d0FC105E7A729e0Ca757761A61258d14", + "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", + "isProxy": false, + "name": "ProtocolFee" + }, + { + "address": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503", + "constructorArguments": "0000000000000000000000008358d8291e3bedb04804975eea0fe9fe0fafb147", + "isProxy": false, + "name": "ValidatorAnnounce" + } + ], "bsc": [ { "address": "0xBFA300164A04437D64Afda390736e6DC45096da1", @@ -4423,6 +4437,32 @@ "name": "PausableIsm" } ], + "mantle": [ + { + "address": "0x83c2DB237e93Ce52565AB110124f78fdf159E3f4", + "constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", + "isProxy": false, + "name": "PausableIsm" + }, + { + "address": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28", + "constructorArguments": "000000000000000000000000a805695c20ed9f4ce9905cd1afae7877a81ec0d700000000000000000000000014c3ceee8f431ae947364f43429a98ea8980023800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba00000000000000000000000000000000000000000000000000000000", + "isProxy": true, + "name": "TransparentUpgradeableProxy" + }, + { + "address": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E", + "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", + "isProxy": false, + "name": "ProtocolFee" + }, + { + "address": "0x1956848601549de5aa0c887892061fA5aB4f6fC4", + "constructorArguments": "000000000000000000000000398633d19f4371e1db5a8efe90468eb70b1176aa", + "isProxy": false, + "name": "ValidatorAnnounce" + } + ], "mode": [ { "address": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", @@ -7649,6 +7689,26 @@ "name": "ValidatorAnnounce" } ], + "taiko": [ + { + "address": "0x4006E7434086E7f2548582cfD5ff5Ebb0e44839d", + "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", + "isProxy": false, + "name": "ProtocolFee" + }, + { + "address": "0x01aE937A7B05d187bBCBE80F44F41879D3D335a4", + "constructorArguments": "00000000000000000000000028efbcada00a7ed6772b3666f3898d276e88cae3", + "isProxy": false, + "name": "ValidatorAnnounce" + }, + { + "address": "0xD670c00C0Cad3D32436d7cF270e739772314A8CE", + "constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", + "isProxy": false, + "name": "PausableIsm" + } + ], "viction": [ { "address": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", diff --git a/typescript/infra/config/environments/mainnet3/funding.ts b/typescript/infra/config/environments/mainnet3/funding.ts index fc9252dcd..f0752f7f3 100644 --- a/typescript/infra/config/environments/mainnet3/funding.ts +++ b/typescript/infra/config/environments/mainnet3/funding.ts @@ -7,7 +7,7 @@ import { environment } from './chains.js'; export const keyFunderConfig: KeyFunderConfig = { docker: { repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo', - tag: 'e248ad9-20240701-155415', + tag: '1b5e4d4-20240702-152903', }, // We're currently using the same deployer/key funder key as mainnet2. // To minimize nonce clobbering we offset the key funder cron @@ -28,6 +28,7 @@ export const keyFunderConfig: KeyFunderConfig = { avalanche: '5', base: '0.5', blast: '0.2', + bob: '0.2', bsc: '5', celo: '3', ethereum: '0.5', @@ -36,6 +37,7 @@ export const keyFunderConfig: KeyFunderConfig = { inevm: '3', linea: '0.2', mantapacific: '0.2', + mantle: '20', mode: '0.2', moonbeam: '5', optimism: '0.5', @@ -44,6 +46,7 @@ export const keyFunderConfig: KeyFunderConfig = { redstone: '0.2', scroll: '0.5', sei: '10', + taiko: '0.2', viction: '3', zetachain: '20', }, @@ -53,6 +56,7 @@ export const keyFunderConfig: KeyFunderConfig = { avalanche: '6', base: '0.05', blast: '0', + bob: '0', bsc: '0.35', celo: '150', ethereum: '0.4', @@ -61,6 +65,7 @@ export const keyFunderConfig: KeyFunderConfig = { inevm: '0.05', linea: '0', mantapacific: '0', + mantle: '0', mode: '0', moonbeam: '250', optimism: '0.1', @@ -69,6 +74,7 @@ export const keyFunderConfig: KeyFunderConfig = { redstone: '0', scroll: '0.05', sei: '0', + taiko: '0', viction: '0.05', zetachain: '0', }, @@ -78,6 +84,7 @@ export const keyFunderConfig: KeyFunderConfig = { avalanche: '2', base: '0.1', blast: '0.1', + bob: '0.1', bsc: '0.3', celo: '5', ethereum: '0.2', @@ -86,6 +93,7 @@ export const keyFunderConfig: KeyFunderConfig = { inevm: '3', linea: '0.1', mantapacific: '0.1', + mantle: '10', mode: '0.1', moonbeam: '5', optimism: '0.1', @@ -94,6 +102,7 @@ export const keyFunderConfig: KeyFunderConfig = { redstone: '0.1', scroll: '0.1', sei: '2', + taiko: '0.1', viction: '2', zetachain: '20', }, diff --git a/typescript/infra/config/environments/mainnet3/gasPrices.json b/typescript/infra/config/environments/mainnet3/gasPrices.json index 6d2aff221..bbacc9ca6 100644 --- a/typescript/infra/config/environments/mainnet3/gasPrices.json +++ b/typescript/infra/config/environments/mainnet3/gasPrices.json @@ -19,6 +19,10 @@ "amount": "0.5", "decimals": 9 }, + "bob": { + "amount": "0.001000252", + "decimals": 9 + }, "bsc": { "amount": "5.0", "decimals": 9 @@ -52,7 +56,11 @@ "decimals": 9 }, "mantapacific": { - "amount": "0.101967574", + "amount": "0.101416541", + "decimals": 9 + }, + "mantle": { + "amount": "0.02", "decimals": 9 }, "mode": { @@ -95,6 +103,10 @@ "amount": "1.0", "decimals": 9 }, + "taiko": { + "amount": "0.010000001", + "decimals": 9 + }, "viction": { "amount": "0.25", "decimals": 9 diff --git a/typescript/infra/config/environments/mainnet3/igp.ts b/typescript/infra/config/environments/mainnet3/igp.ts index 89f083ee8..4eecd7b75 100644 --- a/typescript/infra/config/environments/mainnet3/igp.ts +++ b/typescript/infra/config/environments/mainnet3/igp.ts @@ -19,7 +19,7 @@ import { import { ethereumChainNames } from './chains.js'; import gasPrices from './gasPrices.json'; -import { DEPLOYER, owners } from './owners.js'; +import { DEPLOYER, ethereumChainOwners } from './owners.js'; import { supportedChainNames } from './supportedChainNames.js'; import rawTokenPrices from './tokenPrices.json'; @@ -59,7 +59,7 @@ const storageGasOracleConfig: AllStorageGasOracleConfigs = ); export const igp: ChainMap = objMap( - owners, + ethereumChainOwners, (local, owner): IgpConfig => ({ type: HookType.INTERCHAIN_GAS_PAYMASTER, ...owner, diff --git a/typescript/infra/config/environments/mainnet3/index.ts b/typescript/infra/config/environments/mainnet3/index.ts index fdc0e05e9..d3111cdf6 100644 --- a/typescript/infra/config/environments/mainnet3/index.ts +++ b/typescript/infra/config/environments/mainnet3/index.ts @@ -1,28 +1,21 @@ -import { IRegistry } from '@hyperlane-xyz/registry'; - import { getKeysForRole, getMultiProtocolProvider, getMultiProviderForRole, } from '../../../scripts/agent-utils.js'; -import { getRegistryForEnvironment } from '../../../src/config/chain.js'; import { EnvironmentConfig } from '../../../src/config/environment.js'; import { Role } from '../../../src/roles.js'; import { Contexts } from '../../contexts.js'; import { agents } from './agent.js'; -import { - chainMetadataOverrides, - environment as environmentName, - getRegistry, -} from './chains.js'; +import { environment as environmentName, getRegistry } from './chains.js'; import { core } from './core.js'; import { keyFunderConfig } from './funding.js'; import { helloWorld } from './helloworld.js'; import { igp } from './igp.js'; import { infrastructure } from './infrastructure.js'; import { bridgeAdapterConfigs, relayerConfig } from './liquidityLayer.js'; -import { owners } from './owners.js'; +import { ethereumChainOwners } from './owners.js'; import { supportedChainNames } from './supportedChainNames.js'; export const environment: EnvironmentConfig = { @@ -50,7 +43,7 @@ export const environment: EnvironmentConfig = { agents, core, igp, - owners, + owners: ethereumChainOwners, infra: infrastructure, helloWorld, keyFunderConfig, diff --git a/typescript/infra/config/environments/mainnet3/ism/verification.json b/typescript/infra/config/environments/mainnet3/ism/verification.json index e201aa24d..703451174 100644 --- a/typescript/infra/config/environments/mainnet3/ism/verification.json +++ b/typescript/infra/config/environments/mainnet3/ism/verification.json @@ -174,6 +174,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", "constructorArguments": "", @@ -452,6 +482,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0xF5C9D13D0a3308a06375fD09CACE3a6120711206", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xEbA276cdC61D4BC954E80985aC8FD71453fDab8e", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xfD122f59ee8073528Cc5d36D5cc1451Bf1aF6923", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xBbc6e404F8d841560261b036cA3468B55CB9f566", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x97c5dC51adAa04B3BefE63F4e62e4778219D9426", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0xF5C9D13D0a3308a06375fD09CACE3a6120711206", "constructorArguments": "", @@ -760,6 +820,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x0a3E78c160daF8be96051D318d668F97182D60Bf", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x06b9dC1a6629122e7188698d20A92edbE966914f", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xeD8F4199e4409FDAe2AfD50dC7571f6771AadE50", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x86Bb7AC2BF6044289aEAFFC421b118E38C995c5a", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x3988b98C43C7A1f7C9D3edce6CeAD3b8a3F3d969", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x0a3E78c160daF8be96051D318d668F97182D60Bf", "constructorArguments": "", @@ -1068,6 +1158,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x0d2FdC0264059C1334Aa28187E8628E1c9c6EC70", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x0d2FdC0264059C1334Aa28187E8628E1c9c6EC70", "constructorArguments": "", @@ -1153,6 +1273,98 @@ "constructorArguments": "", "isProxy": true, "name": "DomaingRoutingIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x71DCcD21B912F7d4f636af0C9eA5DC0C10617354", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x7f51A658837A315134A97ff8B586d71B726B7e61", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + } + ], + "bob": [ + { + "address": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMerkleRootMultisigIsmFactory" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMessageIdMultisigIsmFactory" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", + "constructorArguments": "", + "isProxy": false, + "name": "StaticAggregationIsmFactory" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", + "constructorArguments": "", + "isProxy": false, + "name": "StaticAggregationHookFactory" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", + "constructorArguments": "", + "isProxy": false, + "name": "DomainRoutingIsmFactory" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" } ], "bsc": [ @@ -1324,6 +1536,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x1467aB848fCCdA65c2cCed0ebeBD0d95ad89E0D8", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xDc3D51c58BDb84F4F209d2684151dfCa271e504f", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x707609419b70DCb4C41Ef185d3C184814c61Af9c", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x769FeC9f1a1e3DD1891015A387C92Ee9631CB0bA", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0xf771dA1B909B67ca41dda9133E1C9934B5A2D8bb", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x1467aB848fCCdA65c2cCed0ebeBD0d95ad89E0D8", "constructorArguments": "", @@ -1547,27 +1789,57 @@ "constructorArguments": "", "isProxy": true, "name": "DomaingRoutingIsm" - } - ], - "ethereum": [ - { - "address": "0x47e8aF9e30C32Ab91060ED587894288786761B45", - "constructorArguments": "", - "isProxy": false, - "name": "StaticMerkleRootMultisigIsmFactory" }, { - "address": "0xD4dAcca08737d2a910b4Ad401f805F83D0C170f3", + "address": "0x7F6cD932412508E9a8297CA626C56Ed3D279937F", "constructorArguments": "", "isProxy": true, "name": "StaticMerkleRootMultisigIsm" }, { - "address": "0xfA21D9628ADce86531854C2B7ef00F07394B0B69", + "address": "0xf422a4Af27e5fbDDAf799A1d92532Edd5dE58fF3", "constructorArguments": "", - "isProxy": false, - "name": "StaticMessageIdMultisigIsmFactory" - }, + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x43379b54E27EA8387B34B5c15534E230d490f0A8", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x8d9dB8bbF91d7852F36a954229BDf6ec69A3ae00", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x866599CEaE5060D774EBAaE7e9f8A0431a8c1ED5", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + } + ], + "ethereum": [ + { + "address": "0x47e8aF9e30C32Ab91060ED587894288786761B45", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMerkleRootMultisigIsmFactory" + }, + { + "address": "0xD4dAcca08737d2a910b4Ad401f805F83D0C170f3", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xfA21D9628ADce86531854C2B7ef00F07394B0B69", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMessageIdMultisigIsmFactory" + }, { "address": "0x5371942D3Ed75b10d77F0f4184dDc85cC35A1420", "constructorArguments": "", @@ -1760,6 +2032,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0xBbaDB49B1fD1A0574C8D2B0589Cd9b8A79452e67", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xD4dAcca08737d2a910b4Ad401f805F83D0C170f3", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x5371942D3Ed75b10d77F0f4184dDc85cC35A1420", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xc2cCfc65D2D5719E78a77EA5f6C10AA4cdEC6719", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x03862793C0EE59af3e475f7Ca67406b547FfD95c", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0xBbaDB49B1fD1A0574C8D2B0589Cd9b8A79452e67", "constructorArguments": "", @@ -1822,6 +2124,36 @@ "isProxy": false, "name": "DomainRoutingIsmFactory" }, + { + "address": "0x3a49EcAC1031612D66fa20D6F40f214aCeAc2B4B", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x71DCcD21B912F7d4f636af0C9eA5DC0C10617354", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x7f51A658837A315134A97ff8B586d71B726B7e61", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0xDFF18Bf286c9cDd0fC653a28616460Cf7443F8EF", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x3a49EcAC1031612D66fa20D6F40f214aCeAc2B4B", "constructorArguments": "", @@ -2136,6 +2468,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x901bFAC323Dc06b1302D82201F62729Dff39b20a", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xe46CDa25130A89759F1Da00591D7a920CAe7667E", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xEeBd8F72573C5a08F18BeC0DbadCCD3365c06AEF", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x5aaF70a9944d2D7cf17153ea07632618b1e45C6F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x72AffdEd251dF55c7c89566c64B9961dbc3e7A23", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x901bFAC323Dc06b1302D82201F62729Dff39b20a", "constructorArguments": "", @@ -2228,6 +2590,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", "constructorArguments": "", @@ -2290,6 +2682,36 @@ "isProxy": false, "name": "DomainRoutingIsmFactory" }, + { + "address": "0x3a49EcAC1031612D66fa20D6F40f214aCeAc2B4B", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x71DCcD21B912F7d4f636af0C9eA5DC0C10617354", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x7f51A658837A315134A97ff8B586d71B726B7e61", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0xDFF18Bf286c9cDd0fC653a28616460Cf7443F8EF", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x3a49EcAC1031612D66fa20D6F40f214aCeAc2B4B", "constructorArguments": "", @@ -2298,6 +2720,36 @@ } ], "mantapacific": [ + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x6C360932873629929ff3D9ffB70bD4cbC1606541", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, { "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", "constructorArguments": "", @@ -2329,7 +2781,7 @@ "name": "DomaingRoutingIsm" } ], - "mode": [ + "mantle": [ { "address": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "constructorArguments": "", @@ -2391,98 +2843,190 @@ "name": "DomaingRoutingIsm" } ], - "moonbeam": [ + "mode": [ { - "address": "0xE2f485bc031Feb5a4C41C1967bf028653d75f0C3", + "address": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "constructorArguments": "", "isProxy": false, "name": "StaticMerkleRootMultisigIsmFactory" }, { - "address": "0x28336d2b8783f2373bCFc173058EA932bf3b901C", + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", "constructorArguments": "", "isProxy": true, "name": "StaticMerkleRootMultisigIsm" }, { - "address": "0x84Df48F8f241f11d0fA302d09d73030429Bd9C73", + "address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "constructorArguments": "", "isProxy": false, "name": "StaticMessageIdMultisigIsmFactory" }, { - "address": "0x76FD8c164F380107631160d8Fd1f4Edc2719004D", + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", "constructorArguments": "", "isProxy": true, "name": "StaticMessageIdMultisigIsm" }, { - "address": "0x40c6Abcb6A2CdC8882d4bEcaC47927005c7Bb8c2", + "address": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "constructorArguments": "", "isProxy": false, "name": "StaticAggregationIsmFactory" }, { - "address": "0xd5FF00DD9E737c9d1a197246738876fAF43e4aC0", + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", "constructorArguments": "", "isProxy": true, "name": "StaticAggregationIsm" }, { - "address": "0x59cC3E7A49DdC4893eB8754c7908f96072A7DbE8", + "address": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "constructorArguments": "", "isProxy": false, "name": "StaticAggregationHookFactory" }, { - "address": "0x568De5f1639Fe7c9eba67f1191DE19eeCc77985B", + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", "constructorArguments": "", "isProxy": true, "name": "StaticAggregationHook" }, { - "address": "0x98Aa6239FfCcEc73A662a5e5e26Bc3fD7c7291B7", + "address": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "constructorArguments": "", "isProxy": false, "name": "DomainRoutingIsmFactory" }, { - "address": "0xE8d610DC4Baf01070FD2f223d45f84d8801D90B1", + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", "constructorArguments": "", "isProxy": true, "name": "DomaingRoutingIsm" }, { - "address": "0x28336d2b8783f2373bCFc173058EA932bf3b901C", + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", "constructorArguments": "", "isProxy": true, "name": "StaticMerkleRootMultisigIsm" }, { - "address": "0x76FD8c164F380107631160d8Fd1f4Edc2719004D", + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", "constructorArguments": "", "isProxy": true, "name": "StaticMessageIdMultisigIsm" }, { - "address": "0xd5FF00DD9E737c9d1a197246738876fAF43e4aC0", + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", "constructorArguments": "", "isProxy": true, "name": "StaticAggregationIsm" }, { - "address": "0x568De5f1639Fe7c9eba67f1191DE19eeCc77985B", + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", "constructorArguments": "", "isProxy": true, "name": "StaticAggregationHook" }, { - "address": "0xE8d610DC4Baf01070FD2f223d45f84d8801D90B1", + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", "constructorArguments": "", "isProxy": true, "name": "DomaingRoutingIsm" - }, - { + } + ], + "moonbeam": [ + { + "address": "0xE2f485bc031Feb5a4C41C1967bf028653d75f0C3", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMerkleRootMultisigIsmFactory" + }, + { + "address": "0x28336d2b8783f2373bCFc173058EA932bf3b901C", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x84Df48F8f241f11d0fA302d09d73030429Bd9C73", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMessageIdMultisigIsmFactory" + }, + { + "address": "0x76FD8c164F380107631160d8Fd1f4Edc2719004D", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x40c6Abcb6A2CdC8882d4bEcaC47927005c7Bb8c2", + "constructorArguments": "", + "isProxy": false, + "name": "StaticAggregationIsmFactory" + }, + { + "address": "0xd5FF00DD9E737c9d1a197246738876fAF43e4aC0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x59cC3E7A49DdC4893eB8754c7908f96072A7DbE8", + "constructorArguments": "", + "isProxy": false, + "name": "StaticAggregationHookFactory" + }, + { + "address": "0x568De5f1639Fe7c9eba67f1191DE19eeCc77985B", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x98Aa6239FfCcEc73A662a5e5e26Bc3fD7c7291B7", + "constructorArguments": "", + "isProxy": false, + "name": "DomainRoutingIsmFactory" + }, + { + "address": "0xE8d610DC4Baf01070FD2f223d45f84d8801D90B1", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x28336d2b8783f2373bCFc173058EA932bf3b901C", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x76FD8c164F380107631160d8Fd1f4Edc2719004D", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xd5FF00DD9E737c9d1a197246738876fAF43e4aC0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x568De5f1639Fe7c9eba67f1191DE19eeCc77985B", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0xE8d610DC4Baf01070FD2f223d45f84d8801D90B1", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { "address": "0x28336d2b8783f2373bCFc173058EA932bf3b901C", "constructorArguments": "", "isProxy": true, @@ -2536,6 +3080,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x2214b2AC96215d2FF1fffC84E4Af295d7497B013", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x28336d2b8783f2373bCFc173058EA932bf3b901C", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x76FD8c164F380107631160d8Fd1f4Edc2719004D", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xd5FF00DD9E737c9d1a197246738876fAF43e4aC0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x568De5f1639Fe7c9eba67f1191DE19eeCc77985B", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x2214b2AC96215d2FF1fffC84E4Af295d7497B013", "constructorArguments": "", @@ -2724,6 +3298,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x71c5167429f522FA009D110954Cb08E0317d4d69", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xC91A3282FE1eBc29AE494f10680006f152DcE316", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xb61544De4d3A103698AC57Fd62402627B8AC3cC2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xD416cF29F961c090e9b9b8aF0970c86D93c2Ff61", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x315d8B4229134Fcb12B8955f0B5FC1310E56E764", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x71c5167429f522FA009D110954Cb08E0317d4d69", "constructorArguments": "", @@ -2942,6 +3546,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x6921808186c66558e91dF1233910862A94a57475", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x14CEa5Df89Fa709409e83ebEA9518C5B6fb4B19B", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x370815EdA08438c8F385a6f7AB5A2Dfa75008abC", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xCC38436BFB9B9888be96b59d825E0fE5DC19e05c", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x5B8418082D87c96B7De689D0368756cddAbB35F5", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x6921808186c66558e91dF1233910862A94a57475", "constructorArguments": "", @@ -3160,6 +3794,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x0741b6Fd92DA99E77E5eE78CFf74cB1689B3588e", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x0741b6Fd92DA99E77E5eE78CFf74cB1689B3588e", "constructorArguments": "", @@ -3222,6 +3886,36 @@ "isProxy": false, "name": "DomainRoutingIsmFactory" }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", "constructorArguments": "", @@ -3440,6 +4134,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x9d9238fD3715281De2c8FC321135bF82EB66E932", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x9d9238fD3715281De2c8FC321135bF82EB66E932", "constructorArguments": "", @@ -3507,6 +4231,98 @@ "constructorArguments": "", "isProxy": true, "name": "DomaingRoutingIsm" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + } + ], + "taiko": [ + { + "address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMerkleRootMultisigIsmFactory" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", + "constructorArguments": "", + "isProxy": false, + "name": "StaticMessageIdMultisigIsmFactory" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", + "constructorArguments": "", + "isProxy": false, + "name": "StaticAggregationIsmFactory" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", + "constructorArguments": "", + "isProxy": false, + "name": "StaticAggregationHookFactory" + }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, + { + "address": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", + "constructorArguments": "", + "isProxy": false, + "name": "DomainRoutingIsmFactory" + }, + { + "address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" } ], "viction": [ @@ -3594,6 +4410,36 @@ "isProxy": true, "name": "StaticAggregationHook" }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", "constructorArguments": "", @@ -3656,6 +4502,36 @@ "isProxy": false, "name": "DomainRoutingIsmFactory" }, + { + "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", + "constructorArguments": "", + "isProxy": true, + "name": "DomaingRoutingIsm" + }, + { + "address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMerkleRootMultisigIsm" + }, + { + "address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F", + "constructorArguments": "", + "isProxy": true, + "name": "StaticMessageIdMultisigIsm" + }, + { + "address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationIsm" + }, + { + "address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0", + "constructorArguments": "", + "isProxy": true, + "name": "StaticAggregationHook" + }, { "address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874", "constructorArguments": "", diff --git a/typescript/infra/config/environments/mainnet3/owners.ts b/typescript/infra/config/environments/mainnet3/owners.ts index 63494751f..5a4e941e3 100644 --- a/typescript/infra/config/environments/mainnet3/owners.ts +++ b/typescript/infra/config/environments/mainnet3/owners.ts @@ -13,12 +13,12 @@ export function localAccountRouters(): ChainMap
{ const coreAddresses: ChainMap = getMainnetAddresses(); const filteredAddresses = objFilter( coreAddresses, - (local, addressMap): addressMap is AddressesMap => + (_, addressMap): addressMap is AddressesMap => addressMap.interchainAccountRouter !== undefined, ); return objMap( filteredAddresses, - (local, addressMap) => addressMap.interchainAccountRouter, + (_, addressMap) => addressMap.interchainAccountRouter, ); } @@ -49,7 +49,7 @@ export const DEPLOYER = '0xa7ECcdb9Be08178f896c26b7BbD8C3D4E844d9Ba'; // NOTE: if you wanna use ICA governance, you can do the following: // const localRouters = localAccountRouters(); // owner: {origin: , owner: , localRouter: localRouters[chain]} -export const owners: ChainMap = Object.fromEntries( +export const ethereumChainOwners: ChainMap = Object.fromEntries( ethereumChainNames.map((local) => [ local, { diff --git a/typescript/infra/config/environments/mainnet3/supportedChainNames.ts b/typescript/infra/config/environments/mainnet3/supportedChainNames.ts index ab36b8a4b..d755f9c9d 100644 --- a/typescript/infra/config/environments/mainnet3/supportedChainNames.ts +++ b/typescript/infra/config/environments/mainnet3/supportedChainNames.ts @@ -6,6 +6,7 @@ export const supportedChainNames = [ 'avalanche', 'base', 'blast', + 'bob', 'bsc', 'celo', 'ethereum', @@ -15,6 +16,7 @@ export const supportedChainNames = [ 'injective', 'linea', 'mantapacific', + 'mantle', 'mode', 'moonbeam', 'neutron', @@ -25,6 +27,7 @@ export const supportedChainNames = [ 'redstone', 'scroll', 'sei', + 'taiko', 'viction', 'zetachain', ]; diff --git a/typescript/infra/config/environments/mainnet3/tokenPrices.json b/typescript/infra/config/environments/mainnet3/tokenPrices.json index 314984d8b..61ad6a1c9 100644 --- a/typescript/infra/config/environments/mainnet3/tokenPrices.json +++ b/typescript/infra/config/environments/mainnet3/tokenPrices.json @@ -1,28 +1,31 @@ { - "arbitrum": "3537.12", - "ancient8": "3537.12", - "avalanche": "32.04", - "base": "3537.12", - "blast": "3537.12", - "bsc": "611.69", - "celo": "0.709793", - "ethereum": "3537.12", - "fraxtal": "3519.8", - "gnosis": "1.001", - "inevm": "28.61", - "injective": "28.61", - "linea": "3537.12", - "mantapacific": "3537.12", - "mode": "3537.12", - "moonbeam": "0.278261", - "neutron": "0.623705", - "optimism": "3537.12", - "osmosis": "0.649286", - "polygon": "0.643148", - "polygonzkevm": "3537.12", - "redstone": "3537.12", - "scroll": "3537.12", - "sei": "0.477119", - "viction": "0.404896", - "zetachain": "1.16" + "arbitrum": "3286.72", + "ancient8": "3286.72", + "avalanche": "24.05", + "base": "3286.72", + "blast": "3286.72", + "bob": "3286.72", + "bsc": "563.4", + "celo": "0.572951", + "ethereum": "3286.72", + "fraxtal": "3288.13", + "gnosis": "0.999461", + "inevm": "20.98", + "injective": "20.98", + "linea": "3286.72", + "mantapacific": "3286.72", + "mantle": "0.737097", + "mode": "3286.72", + "moonbeam": "0.194356", + "neutron": "0.428175", + "optimism": "3286.72", + "osmosis": "0.530468", + "polygon": "0.5493", + "polygonzkevm": "3286.72", + "redstone": "3286.72", + "scroll": "3286.72", + "sei": "0.34564", + "taiko": "3286.72", + "viction": "0.363521", + "zetachain": "0.818829" } diff --git a/typescript/infra/config/environments/mainnet3/validators.ts b/typescript/infra/config/environments/mainnet3/validators.ts index 265092969..764fcc0cf 100644 --- a/typescript/infra/config/environments/mainnet3/validators.ts +++ b/typescript/infra/config/environments/mainnet3/validators.ts @@ -236,6 +236,18 @@ export const validatorChainConfig = ( 'base', ), }, + bob: { + interval: 5, + reorgPeriod: getReorgPeriod('bob'), + validators: validatorsConfig( + { + [Contexts.Hyperlane]: ['0x20f283be1eb0e81e22f51705dcb79883cfdd34aa'], + [Contexts.ReleaseCandidate]: [], + [Contexts.Neutron]: [], + }, + 'bob', + ), + }, injective: { interval: 5, reorgPeriod: getReorgPeriod('injective'), @@ -296,6 +308,18 @@ export const validatorChainConfig = ( 'linea', ), }, + mantle: { + interval: 5, + reorgPeriod: getReorgPeriod('mantle'), + validators: validatorsConfig( + { + [Contexts.Hyperlane]: ['0xf930636c5a1a8bf9302405f72e3af3c96ebe4a52'], + [Contexts.ReleaseCandidate]: [], + [Contexts.Neutron]: [], + }, + 'mantle', + ), + }, sei: { interval: 5, reorgPeriod: getReorgPeriod('sei'), @@ -330,6 +354,18 @@ export const validatorChainConfig = ( 'scroll', ), }, + taiko: { + interval: 5, + reorgPeriod: getReorgPeriod('taiko'), + validators: validatorsConfig( + { + [Contexts.Hyperlane]: ['0xa930073c8f2d0b2f7423ea32293e0d1362e65d79'], + [Contexts.ReleaseCandidate]: [], + [Contexts.Neutron]: [], + }, + 'taiko', + ), + }, polygonzkevm: { interval: 5, reorgPeriod: getReorgPeriod('polygonzkevm'), diff --git a/typescript/infra/scripts/deploy.ts b/typescript/infra/scripts/deploy.ts index e55c1b3e0..fde06e23d 100644 --- a/typescript/infra/scripts/deploy.ts +++ b/typescript/infra/scripts/deploy.ts @@ -253,7 +253,7 @@ async function main() { cache, // Use chains if provided, otherwise deploy to all chains // If fork is provided, deploy to fork only - targetNetworks: chains ?? !fork ? [] : [fork], + targetNetworks: chains && chains.length > 0 ? chains : !fork ? [] : [fork], agentConfig, }); } diff --git a/typescript/infra/src/config/gas-oracle.ts b/typescript/infra/src/config/gas-oracle.ts index 97d0a3f2b..2c3748e7a 100644 --- a/typescript/infra/src/config/gas-oracle.ts +++ b/typescript/infra/src/config/gas-oracle.ts @@ -141,14 +141,17 @@ function getMinUsdCost(local: ChainName, remote: ChainName): number { ancient8: 0.5, base: 0.5, blast: 0.5, + bob: 0.5, fraxtal: 0.5, linea: 0.5, mantapacific: 0.5, + mantle: 0.5, mode: 0.5, optimism: 0.5, polygonzkevm: 0.5, // Scroll is more expensive than the rest due to higher L1 fees scroll: 1.5, + taiko: 0.5, // Nexus adjustment neutron: 0.5, }; diff --git a/typescript/infra/src/deployment/deploy.ts b/typescript/infra/src/deployment/deploy.ts index 120f8955f..9dbc907fe 100644 --- a/typescript/infra/src/deployment/deploy.ts +++ b/typescript/infra/src/deployment/deploy.ts @@ -82,8 +82,12 @@ export async function deployWithArtifacts({ // Deploy the contracts try { await deployer.deploy(targetConfigMap); - } catch (e) { - console.error('Failed to deploy contracts', e); + } catch (e: any) { + if (e?.message.includes('Timed out')) { + console.warn('Contract deployment exceeding configured timeout', e); + } else { + console.error('Contract deployment failed', e); + } } await postDeploy(deployer, cache, agentConfig); diff --git a/typescript/sdk/src/consts/multisigIsm.ts b/typescript/sdk/src/consts/multisigIsm.ts index 5428e9446..7f9ea9d89 100644 --- a/typescript/sdk/src/consts/multisigIsm.ts +++ b/typescript/sdk/src/consts/multisigIsm.ts @@ -61,6 +61,15 @@ export const defaultMultisigConfigs: ChainMap = { ], }, + bob: { + threshold: 2, + validators: [ + '0x20f283be1eb0e81e22f51705dcb79883cfdd34aa', + '0xcf0211fafbb91fd9d06d7e306b30032dc3a1934f', // merkly + '0x4f977a59fdc2d9e39f6d780a84d5b4add1495a36', // mitosis + ], + }, + bsc: { threshold: 2, validators: [ @@ -113,6 +122,8 @@ export const defaultMultisigConfigs: ChainMap = { '0x5450447aee7b544c462c9352bef7cad049b0c2dc', // zeeprime '0xce327111035dd38698c92c3778884dbbb0ca8103', // everstake '0xb2f5a6a6e6046e2ede213617e989329666a6c4bc', // staked + '0xb683b742b378632a5f73a2a5a45801b3489bba44', // avs: luganodes + '0xbf1023eff3dba21263bf2db2add67a0d6bcda2de', // avs: pier two ], }, @@ -188,6 +199,15 @@ export const defaultMultisigConfigs: ChainMap = { ], }, + mantle: { + threshold: 2, + validators: [ + '0xf930636c5a1a8bf9302405f72e3af3c96ebe4a52', + '0xcf0211fafbb91fd9d06d7e306b30032dc3a1934f', // merkly + '0x4f977a59fdc2d9e39f6d780a84d5b4add1495a36', // mitosis + ], + }, + mode: { threshold: 2, validators: [ @@ -317,6 +337,15 @@ export const defaultMultisigConfigs: ChainMap = { validators: ['0xd4ce8fa138d4e083fc0e480cca0dbfa4f5f30bd5'], }, + taiko: { + threshold: 2, + validators: [ + '0xa930073c8f2d0b2f7423ea32293e0d1362e65d79', + '0xcf0211fafbb91fd9d06d7e306b30032dc3a1934f', // merkly + '0x4f977a59fdc2d9e39f6d780a84d5b4add1495a36', // mitosis + ], + }, + viction: { threshold: 2, validators: [