chore: enroll worldchain, xlayer, cheesechain, zircuit validators (#4313)

- chore: enroll worldchain, xlayer, cheesechain, zircuit validators
- fix: update cosmos zod schema
- drive-by: update core checker to check if the ism in registry matches
the expected config
pull/4327/head
Paul Balaji 4 months ago committed by GitHub
parent 0d544d97e5
commit 279516f280
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 5
      .changeset/gold-weeks-lay.md
  2. 2
      .registryrc
  3. 141
      rust/config/mainnet_config.json
  4. 210
      typescript/infra/config/environments/mainnet3/core/verification.json
  5. 1
      typescript/infra/scripts/check-deploy.ts
  6. 12
      typescript/infra/src/config/gas-oracle.ts
  7. 9
      typescript/sdk/src/consts/multisigIsm.ts
  8. 1
      typescript/sdk/src/core/CoreDeployer.hardhat-test.ts
  9. 62
      typescript/sdk/src/core/HyperlaneCoreChecker.ts
  10. 483
      typescript/sdk/src/utils/cosmos.ts

@ -0,0 +1,5 @@
---
'@hyperlane-xyz/sdk': minor
---
Update cosmos zod schema and enroll new validators for cheesechain, xlayer, zircuit, worldchain.

@ -1 +1 @@
v2.5.0 a000b2a0e64b6cdd27b3edd98cbf2495f2725c64

@ -34,7 +34,7 @@
"interchainAccountIsm": "0xd766e7C7517f2d0D92754b2fe4aE7AdEf7bDEC3e", "interchainAccountIsm": "0xd766e7C7517f2d0D92754b2fe4aE7AdEf7bDEC3e",
"interchainAccountRouter": "0x25C87e735021F72d8728438C2130b02E3141f2cb", "interchainAccountRouter": "0x25C87e735021F72d8728438C2130b02E3141f2cb",
"interchainGasPaymaster": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA", "interchainGasPaymaster": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
"interchainSecurityModule": "0x46AC0093B93D9F1d90d68492adb23Fa5a95417Cb", "interchainSecurityModule": "0x9Bb850d2a2e9aBCd55B6E73fE1515877A7eD50fb",
"isTestnet": false, "isTestnet": false,
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x811808Dd29ba8B0FC6C0ec0b5537035E59745162", "merkleTreeHook": "0x811808Dd29ba8B0FC6C0ec0b5537035E59745162",
@ -98,7 +98,7 @@
"interchainAccountIsm": "0x2A7574358Ec53522CE2452887661AB4c86F7d400", "interchainAccountIsm": "0x2A7574358Ec53522CE2452887661AB4c86F7d400",
"interchainAccountRouter": "0x91874Dbed74925dFe6059B90385EEb90DdE0B2E6", "interchainAccountRouter": "0x91874Dbed74925dFe6059B90385EEb90DdE0B2E6",
"interchainGasPaymaster": "0x3b6044acd6767f017e99318AA6Ef93b7B06A5a22", "interchainGasPaymaster": "0x3b6044acd6767f017e99318AA6Ef93b7B06A5a22",
"interchainSecurityModule": "0xE665100047d75E174581F7C4fA5F0ACb18d291dE", "interchainSecurityModule": "0x9636e3601697185Ab24D0f9e23Ac0cEC2ab6e558",
"mailbox": "0x979Ca5202784112f4738403dBec5D0F3B9daabB9", "mailbox": "0x979Ca5202784112f4738403dBec5D0F3B9daabB9",
"merkleTreeHook": "0x748040afB89B8FdBb992799808215419d36A0930", "merkleTreeHook": "0x748040afB89B8FdBb992799808215419d36A0930",
"name": "arbitrum", "name": "arbitrum",
@ -168,7 +168,7 @@
"interchainAccountIsm": "0x27a3233c05C1Df7c163123301D14bE9349E3Cb48", "interchainAccountIsm": "0x27a3233c05C1Df7c163123301D14bE9349E3Cb48",
"interchainAccountRouter": "0xa82a0227e6d6db53AF4B264A852bfF91C6504a51", "interchainAccountRouter": "0xa82a0227e6d6db53AF4B264A852bfF91C6504a51",
"interchainGasPaymaster": "0x95519ba800BBd0d34eeAE026fEc620AD978176C0", "interchainGasPaymaster": "0x95519ba800BBd0d34eeAE026fEc620AD978176C0",
"interchainSecurityModule": "0x6b64ff9aB7398256A36e24b2E5A6D7F38Df747fc", "interchainSecurityModule": "0xB0Ba58230e9a8125123c732783FC738B0a2ECa81",
"mailbox": "0xFf06aFcaABaDDd1fb08371f9ccA15D73D51FeBD6", "mailbox": "0xFf06aFcaABaDDd1fb08371f9ccA15D73D51FeBD6",
"merkleTreeHook": "0x84eea61D679F42D92145fA052C89900CBAccE95A", "merkleTreeHook": "0x84eea61D679F42D92145fA052C89900CBAccE95A",
"name": "avalanche", "name": "avalanche",
@ -238,7 +238,7 @@
"interchainAccountIsm": "0x223F7D3f27E6272266AE4B5B91Fd5C7A2d798cD8", "interchainAccountIsm": "0x223F7D3f27E6272266AE4B5B91Fd5C7A2d798cD8",
"interchainAccountRouter": "0x4767D22117bBeeb295413000B620B93FD8522d53", "interchainAccountRouter": "0x4767D22117bBeeb295413000B620B93FD8522d53",
"interchainGasPaymaster": "0xc3F23848Ed2e04C0c6d41bd7804fa8f89F940B94", "interchainGasPaymaster": "0xc3F23848Ed2e04C0c6d41bd7804fa8f89F940B94",
"interchainSecurityModule": "0xEF296B8663701c10B41E64fc79C1d54066E7A269", "interchainSecurityModule": "0x3fB45446b0003D98fD728E426Ef7026b507b5669",
"mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D", "mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"merkleTreeHook": "0x19dc38aeae620380430C200a6E990D5Af5480117", "merkleTreeHook": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"name": "base", "name": "base",
@ -306,7 +306,7 @@
"interchainAccountIsm": "0xe93f2f409ad8B5000431D234472973fe848dcBEC", "interchainAccountIsm": "0xe93f2f409ad8B5000431D234472973fe848dcBEC",
"interchainAccountRouter": "0x2f4Eb04189e11Af642237Da62d163Ab714614498", "interchainAccountRouter": "0x2f4Eb04189e11Af642237Da62d163Ab714614498",
"interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9", "interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9",
"interchainSecurityModule": "0xfF940cE4bf10Ad26EC8c879136D66958082E04E9", "interchainSecurityModule": "0x88263fc724Bf58fcA198d4D9F2E961fA30c745Fc",
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7", "mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
"merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465", "merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
"name": "blast", "name": "blast",
@ -372,7 +372,7 @@
"interchainAccountIsm": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4", "interchainAccountIsm": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4",
"interchainAccountRouter": "0x5C02157068a52cEcfc98EDb6115DE6134EcB4764", "interchainAccountRouter": "0x5C02157068a52cEcfc98EDb6115DE6134EcB4764",
"interchainGasPaymaster": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05", "interchainGasPaymaster": "0x62B7592C1B6D1E43f4630B8e37f4377097840C05",
"interchainSecurityModule": "0xfce46c0C7976F33779883e012cb2902fE3C048c7", "interchainSecurityModule": "0x713E6ceCaaBeb148755D3490fbB87EB731b7cDA7",
"mailbox": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147", "mailbox": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147",
"merkleTreeHook": "0x781bE492F1232E66990d83a9D3AC3Ec26f56DAfB", "merkleTreeHook": "0x781bE492F1232E66990d83a9D3AC3Ec26f56DAfB",
"name": "bob", "name": "bob",
@ -436,7 +436,7 @@
"interchainAccountIsm": "0x9e22945bE593946618383B108CC5bce09eBA4C26", "interchainAccountIsm": "0x9e22945bE593946618383B108CC5bce09eBA4C26",
"interchainAccountRouter": "0x32A07c1B7a7fe8D4A0e44B0181873aB9d64C16c1", "interchainAccountRouter": "0x32A07c1B7a7fe8D4A0e44B0181873aB9d64C16c1",
"interchainGasPaymaster": "0x78E25e7f84416e69b9339B0A6336EB6EFfF6b451", "interchainGasPaymaster": "0x78E25e7f84416e69b9339B0A6336EB6EFfF6b451",
"interchainSecurityModule": "0x843919C5D3256FC533dC4A23bDdA59D037a491F8", "interchainSecurityModule": "0x1bDbFF788eD269C113a7140709D4ee5556420fC3",
"mailbox": "0x2971b9Aec44bE4eb673DF1B88cDB57b96eefe8a4", "mailbox": "0x2971b9Aec44bE4eb673DF1B88cDB57b96eefe8a4",
"merkleTreeHook": "0xFDb9Cd5f9daAA2E4474019405A328a88E7484f26", "merkleTreeHook": "0xFDb9Cd5f9daAA2E4474019405A328a88E7484f26",
"name": "bsc", "name": "bsc",
@ -514,7 +514,7 @@
"interchainAccountIsm": "0xB732c83aeE29596E3163Da2260710eAB67Bc0B29", "interchainAccountIsm": "0xB732c83aeE29596E3163Da2260710eAB67Bc0B29",
"interchainAccountRouter": "0x27a6cAe33378bB6A6663b382070427A01fc9cB37", "interchainAccountRouter": "0x27a6cAe33378bB6A6663b382070427A01fc9cB37",
"interchainGasPaymaster": "0x571f1435613381208477ac5d6974310d88AC7cB7", "interchainGasPaymaster": "0x571f1435613381208477ac5d6974310d88AC7cB7",
"interchainSecurityModule": "0x07cC4EE3eB2AEA5c045C72725AA3fdC7F5d73474", "interchainSecurityModule": "0x73Ee35655c8269F8D04C2Be6c67915Db7C862FCb",
"mailbox": "0x50da3B3907A08a24fe4999F4Dcf337E8dC7954bb", "mailbox": "0x50da3B3907A08a24fe4999F4Dcf337E8dC7954bb",
"merkleTreeHook": "0x04dB778f05854f26E67e0a66b740BBbE9070D366", "merkleTreeHook": "0x04dB778f05854f26E67e0a66b740BBbE9070D366",
"name": "celo", "name": "celo",
@ -576,7 +576,7 @@
"interchainAccountIsm": "0x4Eb82Ee35b0a1c1d776E3a3B547f9A9bA6FCC9f2", "interchainAccountIsm": "0x4Eb82Ee35b0a1c1d776E3a3B547f9A9bA6FCC9f2",
"interchainAccountRouter": "0xEF9A332Ec1fD233Bf9344A58be56ff9E104B4f60", "interchainAccountRouter": "0xEF9A332Ec1fD233Bf9344A58be56ff9E104B4f60",
"interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503", "interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"interchainSecurityModule": "0xD3bd8f20e169364d14c7dBFE698258D780FC71e3", "interchainSecurityModule": "0x6455CbF559E2227aA23409930D0F860e2f244B70",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD", "merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD",
"name": "cheesechain", "name": "cheesechain",
@ -607,6 +607,7 @@
"validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a" "validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a"
}, },
"cyber": { "cyber": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://api.socialscan.io/cyber", "apiUrl": "https://api.socialscan.io/cyber",
@ -635,7 +636,7 @@
"from": 4842212 "from": 4842212
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x5F3C25e6AfDC6953fF1c7a661963D5a54E239A8D", "interchainSecurityModule": "0xd3A6fD5338656353D48693B797b6EcEFC5d3D317",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "cyber", "name": "cyber",
@ -647,6 +648,7 @@
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc", "pausableIsm": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -687,6 +689,7 @@
}, },
"displayName": "Degen", "displayName": "Degen",
"domainId": 666666666, "domainId": 666666666,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "degen-base", "gasCurrencyCoinGeckoId": "degen-base",
@ -694,7 +697,7 @@
"from": 23783929 "from": 23783929
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0xE89fF24e1979F6AbD6b71b733cc62d1289d193c4",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "degenchain", "name": "degenchain",
@ -704,6 +707,7 @@
"symbol": "DEGEN" "symbol": "DEGEN"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd", "protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
@ -713,6 +717,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xE89fF24e1979F6AbD6b71b733cc62d1289d193c4",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -797,7 +802,7 @@
"interchainAccountIsm": "0xCeafc098e5c3c7768b9229Be2FEC275862A81Abd", "interchainAccountIsm": "0xCeafc098e5c3c7768b9229Be2FEC275862A81Abd",
"interchainAccountRouter": "0xed9a722c543883FB7e07E78F3879762DE09eA7D5", "interchainAccountRouter": "0xed9a722c543883FB7e07E78F3879762DE09eA7D5",
"interchainGasPaymaster": "0xB30EAB08aa87138D57168D0e236850A530f49921", "interchainGasPaymaster": "0xB30EAB08aa87138D57168D0e236850A530f49921",
"interchainSecurityModule": "0xF965C301f1FD550ae31c06c9EbDd23F1b478B61d", "interchainSecurityModule": "0x24B58bD54F4421D175A36f8C1FF437f811589382",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xC831271c1fB212012811a91Dd43e5926C1020563", "merkleTreeHook": "0xC831271c1fB212012811a91Dd43e5926C1020563",
"name": "endurance", "name": "endurance",
@ -865,7 +870,7 @@
"interchainAccountIsm": "0x292C614ED53DaaDBf971521bc2C652d1ca51cB47", "interchainAccountIsm": "0x292C614ED53DaaDBf971521bc2C652d1ca51cB47",
"interchainAccountRouter": "0x5E532F7B610618eE73C2B462978e94CB1F7995Ce", "interchainAccountRouter": "0x5E532F7B610618eE73C2B462978e94CB1F7995Ce",
"interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611", "interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611",
"interchainSecurityModule": "0xBdE8c1C9bddCEa702B7926DeCfB685aCD856C71B", "interchainSecurityModule": "0xBC1e8b6de1EB71DEb4F5504E6cE2797878C643B8",
"mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239", "mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239",
"merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA", "merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA",
"name": "ethereum", "name": "ethereum",
@ -935,7 +940,7 @@
"interchainAccountIsm": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF", "interchainAccountIsm": "0x7C012DCA02C42cfA3Fd7Da3B0ED7234B52AE68eF",
"interchainAccountRouter": "0xbed53B5C5BCE9433f25A2A702e6df13E22d84Ae9", "interchainAccountRouter": "0xbed53B5C5BCE9433f25A2A702e6df13E22d84Ae9",
"interchainGasPaymaster": "0x2Fca7f6eC3d4A0408900f2BB30004d4616eE985E", "interchainGasPaymaster": "0x2Fca7f6eC3d4A0408900f2BB30004d4616eE985E",
"interchainSecurityModule": "0x5F7CC9c543a23B30c75aEF6D01fd6fB256d75c1E", "interchainSecurityModule": "0x5Fc05d27A2E77035fb5566FF739BBbe0087C5B5B",
"mailbox": "0x2f9DB5616fa3fAd1aB06cB2C906830BA63d135e3", "mailbox": "0x2f9DB5616fa3fAd1aB06cB2C906830BA63d135e3",
"merkleTreeHook": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147", "merkleTreeHook": "0x8358D8291e3bEDb04804975eEa0fe9fe0fAfB147",
"name": "fraxtal", "name": "fraxtal",
@ -1000,7 +1005,7 @@
"interchainAccountIsm": "0x9629c28990F11c31735765A6FD59E1E1bC197DbD", "interchainAccountIsm": "0x9629c28990F11c31735765A6FD59E1E1bC197DbD",
"interchainAccountRouter": "0x2351FBe24C1212F253b7a300ff0cBCFd97952a19", "interchainAccountRouter": "0x2351FBe24C1212F253b7a300ff0cBCFd97952a19",
"interchainGasPaymaster": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed", "interchainGasPaymaster": "0xFB9e40D811Cea562cc8a322b029eF2BDcC3ef6ed",
"interchainSecurityModule": "0x5DaF24d97283cb512773824CcC79b5003064C07D", "interchainSecurityModule": "0x3Cfc6227274f77Aa463630d619dCaECf582C82Db",
"mailbox": "0x3071D4DA6020C956Fe15Bfd0a9Ca8D4574f16696", "mailbox": "0x3071D4DA6020C956Fe15Bfd0a9Ca8D4574f16696",
"merkleTreeHook": "0xfBc08389224d23b79cb21cDc16c5d42F0ad0F57f", "merkleTreeHook": "0xfBc08389224d23b79cb21cDc16c5d42F0ad0F57f",
"name": "fusemainnet", "name": "fusemainnet",
@ -1017,6 +1022,15 @@
"rpcUrls": [ "rpcUrls": [
{ {
"http": "https://rpc.fuse.io" "http": "https://rpc.fuse.io"
},
{
"http": "https://fuse.drpc.org"
},
{
"http": "https://fuse.liquify.com"
},
{
"http": "https://fuse-pokt.nodies.app"
} }
], ],
"staticAggregationHookFactory": "0x40Ca055683d9aA603f73EDcb62874a1BaAa1d6dA", "staticAggregationHookFactory": "0x40Ca055683d9aA603f73EDcb62874a1BaAa1d6dA",
@ -1062,7 +1076,7 @@
"interchainAccountIsm": "0x07E2062A1bC66a2C1d05cb5C3870a4AF86e0056E", "interchainAccountIsm": "0x07E2062A1bC66a2C1d05cb5C3870a4AF86e0056E",
"interchainAccountRouter": "0xBE70Ab882D1F7E37e04a70CDd9Ec23b37a234064", "interchainAccountRouter": "0xBE70Ab882D1F7E37e04a70CDd9Ec23b37a234064",
"interchainGasPaymaster": "0xDd260B99d302f0A3fF885728c086f729c06f227f", "interchainGasPaymaster": "0xDd260B99d302f0A3fF885728c086f729c06f227f",
"interchainSecurityModule": "0x1eC334Bd525296D47262c7849BEC8a7A7CBae1e0", "interchainSecurityModule": "0x90BD2692d7C0412bd6b5070D5e34d733b0540131",
"mailbox": "0xaD09d78f4c6b9dA2Ae82b1D34107802d380Bb74f", "mailbox": "0xaD09d78f4c6b9dA2Ae82b1D34107802d380Bb74f",
"merkleTreeHook": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645", "merkleTreeHook": "0x2684C6F89E901987E1FdB7649dC5Be0c57C61645",
"name": "gnosis", "name": "gnosis",
@ -1130,7 +1144,7 @@
"interchainAccountIsm": "0x708E002637792FDC031E6B62f23DD60014AC976a", "interchainAccountIsm": "0x708E002637792FDC031E6B62f23DD60014AC976a",
"interchainAccountRouter": "0xfB8cea1c7F45608Da30655b50bbF355D123A4358", "interchainAccountRouter": "0xfB8cea1c7F45608Da30655b50bbF355D123A4358",
"interchainGasPaymaster": "0x19dc38aeae620380430C200a6E990D5Af5480117", "interchainGasPaymaster": "0x19dc38aeae620380430C200a6E990D5Af5480117",
"interchainSecurityModule": "0x1bD6a052a006F71F2292f1BB9F39455567f97021", "interchainSecurityModule": "0x4FC9FBb6e426277c7876864084D075315248f2B4",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0972954923a1e2b2aAb04Fa0c4a0797e5989Cd65", "merkleTreeHook": "0x0972954923a1e2b2aAb04Fa0c4a0797e5989Cd65",
"name": "inevm", "name": "inevm",
@ -1220,6 +1234,7 @@
"validatorAnnounce": "0x1fb225b2fcfbe75e614a1d627de97ff372242eed" "validatorAnnounce": "0x1fb225b2fcfbe75e614a1d627de97ff372242eed"
}, },
"kroma": { "kroma": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://blockscout.kroma.network/api", "apiUrl": "https://blockscout.kroma.network/api",
@ -1240,6 +1255,7 @@
}, },
"displayName": "Kroma", "displayName": "Kroma",
"domainId": 255, "domainId": 255,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum", "gasCurrencyCoinGeckoId": "ethereum",
@ -1247,7 +1263,7 @@
"from": 14616307 "from": 14616307
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0xe274f228f87c0D72241CF9aAC15d91e3630aE6f6",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "kroma", "name": "kroma",
@ -1257,7 +1273,9 @@
"symbol": "ETH" "symbol": "ETH"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x662771d29DFf0d7C36bB9BB6d4241a02e77585d9",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x9c44E6b8F0dB517C2c3a0478caaC5349b614F912",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -1271,6 +1289,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xe274f228f87c0D72241CF9aAC15d91e3630aE6f6",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -1311,7 +1330,7 @@
"interchainAccountIsm": "0xdcA646C56E7768DD11654956adE24bfFf9Ba4893", "interchainAccountIsm": "0xdcA646C56E7768DD11654956adE24bfFf9Ba4893",
"interchainAccountRouter": "0xD59dA396F162Ed93a41252Cebb8d5DD4F093238C", "interchainAccountRouter": "0xD59dA396F162Ed93a41252Cebb8d5DD4F093238C",
"interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28", "interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28",
"interchainSecurityModule": "0x3391dd1120461DF175077A34b2595B8897FE22a7", "interchainSecurityModule": "0x18Ec250dC6ac6a440A13140B812226baE1787E88",
"mailbox": "0x02d16BC51af6BfD153d67CA61754cF912E82C4d9", "mailbox": "0x02d16BC51af6BfD153d67CA61754cF912E82C4d9",
"merkleTreeHook": "0xC077A0Cc408173349b1c9870C667B40FE3C01dd7", "merkleTreeHook": "0xC077A0Cc408173349b1c9870C667B40FE3C01dd7",
"name": "linea", "name": "linea",
@ -1365,6 +1384,7 @@
}, },
"displayName": "Lisk", "displayName": "Lisk",
"domainId": 1135, "domainId": 1135,
"domainRoutingIsm": "0x55d6f15ce95B7570d215bE0306706d39877a64d0",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum", "gasCurrencyCoinGeckoId": "ethereum",
@ -1372,7 +1392,7 @@
"from": 4195553 "from": 4195553
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0x36d5F5b369639489c75D6B522eA2465041d2f79B",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "lisk", "name": "lisk",
@ -1382,6 +1402,7 @@
"symbol": "ETH" "symbol": "ETH"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd", "protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
@ -1391,6 +1412,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x36d5F5b369639489c75D6B522eA2465041d2f79B",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -1428,7 +1450,7 @@
"from": 3088760 "from": 3088760
}, },
"interchainGasPaymaster": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575", "interchainGasPaymaster": "0x441a01Fca2eD731C0Fc4633998332f9FEDB17575",
"interchainSecurityModule": "0x51C6A5106EF680d11e8fD9EE1d090c07fdaD2e3D", "interchainSecurityModule": "0x138965Cfc3F63aE0A32cD505DeD6DB95D9d60399",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e", "merkleTreeHook": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e",
"name": "lukso", "name": "lukso",
@ -1496,7 +1518,7 @@
"interchainAccountIsm": "0x8Ea50255C282F89d1A14ad3F159437EE5EF0507f", "interchainAccountIsm": "0x8Ea50255C282F89d1A14ad3F159437EE5EF0507f",
"interchainAccountRouter": "0x693A4cE39d99e46B04cb562329e3F0141cA17331", "interchainAccountRouter": "0x693A4cE39d99e46B04cb562329e3F0141cA17331",
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4", "interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"interchainSecurityModule": "0xEA2A8F45Fd40aa233E51A54f8956fEB63B6879E6", "interchainSecurityModule": "0x1165cCEfF6CFB95006eBd33A72eAf23981Fe6bEA",
"isTestnet": false, "isTestnet": false,
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E", "mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112", "merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
@ -1563,7 +1585,7 @@
"interchainAccountIsm": "0xe039DA3A0071BEd087A12660D7b03cf669c7776E", "interchainAccountIsm": "0xe039DA3A0071BEd087A12660D7b03cf669c7776E",
"interchainAccountRouter": "0x45285463352c53a481e882cD5E2AF2E25BBdAd0D", "interchainAccountRouter": "0x45285463352c53a481e882cD5E2AF2E25BBdAd0D",
"interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28", "interchainGasPaymaster": "0x8105a095368f1a184CceA86cCe21318B5Ee5BE28",
"interchainSecurityModule": "0x79C105d9c4eeec06acf5532B8e4079F6acAc5ED0", "interchainSecurityModule": "0xb57Ff2792A8BA6af557467bbBa70fCBB330D3d52",
"mailbox": "0x398633D19f4371e1DB5a8EFE90468eB70B1176AA", "mailbox": "0x398633D19f4371e1DB5a8EFE90468eB70B1176AA",
"merkleTreeHook": "0x5332D1AC0A626D265298c14ff681c0A8D28dB86d", "merkleTreeHook": "0x5332D1AC0A626D265298c14ff681c0A8D28dB86d",
"name": "mantle", "name": "mantle",
@ -1594,6 +1616,7 @@
"validatorAnnounce": "0x1956848601549de5aa0c887892061fA5aB4f6fC4" "validatorAnnounce": "0x1956848601549de5aa0c887892061fA5aB4f6fC4"
}, },
"merlin": { "merlin": {
"aggregationHook": "0x68c48C397DBADdC05c9dd469CF6f9DC0dBE745D8",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://scan.merlinchain.io/api", "apiUrl": "https://scan.merlinchain.io/api",
@ -1622,7 +1645,7 @@
"from": 13523607 "from": 13523607
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0x21C5aa77617DCF34b58a7315B4a13473b18ff460",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "merlin", "name": "merlin",
@ -1634,6 +1657,7 @@
"pausableHook": "0xDd1CddEd982e4d271d4D6Bc4cdE8d4F3338733B5", "pausableHook": "0xDd1CddEd982e4d271d4D6Bc4cdE8d4F3338733B5",
"pausableIsm": "0x632b4F32d65F7b25B37a27C57dD510f8e4a58Bf9", "pausableIsm": "0x632b4F32d65F7b25B37a27C57dD510f8e4a58Bf9",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -1674,6 +1698,7 @@
}, },
"displayName": "Metis Andromeda", "displayName": "Metis Andromeda",
"domainId": 1088, "domainId": 1088,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "metis-token", "gasCurrencyCoinGeckoId": "metis-token",
@ -1681,7 +1706,7 @@
"from": 17966274 "from": 17966274
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0x64946Bc95d9b12aBd7CF02507D5E2b709670eD48",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "metis", "name": "metis",
@ -1691,6 +1716,7 @@
"symbol": "METIS" "symbol": "METIS"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd", "protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
@ -1700,6 +1726,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x64946Bc95d9b12aBd7CF02507D5E2b709670eD48",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -1709,6 +1736,7 @@
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e" "validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e"
}, },
"mint": { "mint": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://explorer.mintchain.io/api/eth-rpc", "apiUrl": "https://explorer.mintchain.io/api/eth-rpc",
@ -1729,6 +1757,7 @@
}, },
"displayName": "Mint", "displayName": "Mint",
"domainId": 185, "domainId": 185,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum", "gasCurrencyCoinGeckoId": "ethereum",
@ -1737,7 +1766,7 @@
"from": 3752032 "from": 3752032
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0x64946Bc95d9b12aBd7CF02507D5E2b709670eD48",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "mint", "name": "mint",
@ -1747,7 +1776,9 @@
"symbol": "ETH" "symbol": "ETH"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -1755,6 +1786,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x64946Bc95d9b12aBd7CF02507D5E2b709670eD48",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -1795,7 +1827,7 @@
"interchainAccountIsm": "0xa377b8269e0A47cdd2fD5AAeAe860b45623c6d82", "interchainAccountIsm": "0xa377b8269e0A47cdd2fD5AAeAe860b45623c6d82",
"interchainAccountRouter": "0x6e1B9f776bd415d7cC3C7458A5f0d801016918f8", "interchainAccountRouter": "0x6e1B9f776bd415d7cC3C7458A5f0d801016918f8",
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d", "interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
"interchainSecurityModule": "0x7b04FB03Fd1bc89b4Ca8FADDa330f9937f88589b", "interchainSecurityModule": "0x1764af123824d753B8F51b3DA92E06C0643b15C1",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6", "merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
"name": "mode", "name": "mode",
@ -1861,7 +1893,7 @@
"interchainAccountIsm": "0x79b3730CE3685f65802aF1771319992bA960EB9D", "interchainAccountIsm": "0x79b3730CE3685f65802aF1771319992bA960EB9D",
"interchainAccountRouter": "0xc4482f66191754a8629D35289043C4EB0285F10E", "interchainAccountRouter": "0xc4482f66191754a8629D35289043C4EB0285F10E",
"interchainGasPaymaster": "0x14760E32C0746094cF14D97124865BC7F0F7368F", "interchainGasPaymaster": "0x14760E32C0746094cF14D97124865BC7F0F7368F",
"interchainSecurityModule": "0xA201676D4F38F0821254B4F6c01CC6E2aeFD45fC", "interchainSecurityModule": "0xB917b4C28096f185D615F2D52d5001D83F40A546",
"mailbox": "0x094d03E751f49908080EFf000Dd6FD177fd44CC3", "mailbox": "0x094d03E751f49908080EFf000Dd6FD177fd44CC3",
"merkleTreeHook": "0x87403b85f6f316e7ba91ba1fa6C3Fb7dD4095547", "merkleTreeHook": "0x87403b85f6f316e7ba91ba1fa6C3Fb7dD4095547",
"name": "moonbeam", "name": "moonbeam",
@ -1996,7 +2028,7 @@
"interchainAccountIsm": "0x2c46BF14641d00549ECa4779BF5CBf91602C1DEd", "interchainAccountIsm": "0x2c46BF14641d00549ECa4779BF5CBf91602C1DEd",
"interchainAccountRouter": "0x03D6cC17d45E9EA27ED757A8214d1F07F7D901aD", "interchainAccountRouter": "0x03D6cC17d45E9EA27ED757A8214d1F07F7D901aD",
"interchainGasPaymaster": "0xD8A76C4D91fCbB7Cc8eA795DFDF870E48368995C", "interchainGasPaymaster": "0xD8A76C4D91fCbB7Cc8eA795DFDF870E48368995C",
"interchainSecurityModule": "0xC1A59f23f08A714748c227376Ed28057b330ED40", "interchainSecurityModule": "0x048e40b98D251FbD5520D7148736a42eB6F8af1b",
"mailbox": "0xd4C1905BB1D26BC93DAC913e13CaCC278CdCC80D", "mailbox": "0xd4C1905BB1D26BC93DAC913e13CaCC278CdCC80D",
"merkleTreeHook": "0x68eE9bec9B4dbB61f69D9D293Ae26a5AACb2e28f", "merkleTreeHook": "0x68eE9bec9B4dbB61f69D9D293Ae26a5AACb2e28f",
"name": "optimism", "name": "optimism",
@ -2127,7 +2159,7 @@
"interchainAccountIsm": "0xBAC4529cdfE7CCe9E858BF706e41F8Ed096C1BAd", "interchainAccountIsm": "0xBAC4529cdfE7CCe9E858BF706e41F8Ed096C1BAd",
"interchainAccountRouter": "0xF163949AD9F88977ebF649D0461398Ca752E64B9", "interchainAccountRouter": "0xF163949AD9F88977ebF649D0461398Ca752E64B9",
"interchainGasPaymaster": "0x0071740Bf129b05C4684abfbBeD248D80971cce2", "interchainGasPaymaster": "0x0071740Bf129b05C4684abfbBeD248D80971cce2",
"interchainSecurityModule": "0x89DE7d4ab97e3729Cbecb56AdbaA89a8955dB6C1", "interchainSecurityModule": "0x55173a981c0c6C9E4dEedEE53400Cdfe568B3B95",
"mailbox": "0x5d934f4e2f797775e53561bB72aca21ba36B96BB", "mailbox": "0x5d934f4e2f797775e53561bB72aca21ba36B96BB",
"merkleTreeHook": "0x73FbD25c3e817DC4B4Cd9d00eff6D83dcde2DfF6", "merkleTreeHook": "0x73FbD25c3e817DC4B4Cd9d00eff6D83dcde2DfF6",
"name": "polygon", "name": "polygon",
@ -2201,7 +2233,7 @@
"interchainAccountIsm": "0xc1198e241DAe48BF5AEDE5DCE49Fe4A6064cF7a7", "interchainAccountIsm": "0xc1198e241DAe48BF5AEDE5DCE49Fe4A6064cF7a7",
"interchainAccountRouter": "0x20a0A32a110362920597F72974E1E0d7e25cA20a", "interchainAccountRouter": "0x20a0A32a110362920597F72974E1E0d7e25cA20a",
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4", "interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"interchainSecurityModule": "0x78C39ACb76d948dA60a0C9ad184A8Ec9ef711963", "interchainSecurityModule": "0xAc27452E5744f3807c2548f99473A14ee51bb667",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E", "mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112", "merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
"name": "polygonzkevm", "name": "polygonzkevm",
@ -2237,6 +2269,7 @@
"validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9" "validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9"
}, },
"proofofplay": { "proofofplay": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://explorer.apex.proofofplay.com/api/eth-rpc", "apiUrl": "https://explorer.apex.proofofplay.com/api/eth-rpc",
@ -2257,6 +2290,7 @@
}, },
"displayName": "Proof of Play Apex", "displayName": "Proof of Play Apex",
"domainId": 70700, "domainId": 70700,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "ethereum", "gasCurrencyCoinGeckoId": "ethereum",
@ -2264,7 +2298,7 @@
"from": 32018468 "from": 32018468
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0xB0525d808721426c56377469B92db16857384deF",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "proofofplay", "name": "proofofplay",
@ -2274,7 +2308,9 @@
"symbol": "ETH" "symbol": "ETH"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x73db9c7430548f399e335f3424e8d56080e9010c",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -2282,6 +2318,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xB0525d808721426c56377469B92db16857384deF",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -2291,6 +2328,7 @@
"validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e" "validatorAnnounce": "0x062200d92dF6bB7bA89Ce4D6800110450f94784e"
}, },
"real": { "real": {
"aggregationHook": "0x32B06f415955B35d77AF855b9ec77381485D763c",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://explorer.re.al/api/eth-rpc", "apiUrl": "https://explorer.re.al/api/eth-rpc",
@ -2319,7 +2357,7 @@
"from": 363159 "from": 363159
}, },
"interchainGasPaymaster": "0x3071D4DA6020C956Fe15Bfd0a9Ca8D4574f16696", "interchainGasPaymaster": "0x3071D4DA6020C956Fe15Bfd0a9Ca8D4574f16696",
"interchainSecurityModule": "0x1455e33232088BeEf545DaF12dFF6CA867FD6787", "interchainSecurityModule": "0x331A729ad53214eFC66a6529fBAc04E42490ac0C",
"mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D", "mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"merkleTreeHook": "0x55E4F0bc6b7Bb493D50839A8592e7ad8d5e93cf7", "merkleTreeHook": "0x55E4F0bc6b7Bb493D50839A8592e7ad8d5e93cf7",
"name": "real", "name": "real",
@ -2331,6 +2369,7 @@
"pausableHook": "0xc965292958794f59ec3e9538738dD252873F07CC", "pausableHook": "0xc965292958794f59ec3e9538738dD252873F07CC",
"pausableIsm": "0xB9712fAbFaDb3624Dc12B6b261FEB76F8F8278aE", "pausableIsm": "0xB9712fAbFaDb3624Dc12B6b261FEB76F8F8278aE",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x59C2dB903937EbE55B59c3415FD55e970FF5f2DC",
"proxyAdmin": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1", "proxyAdmin": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"rpcUrls": [ "rpcUrls": [
{ {
@ -2380,7 +2419,7 @@
"interchainAccountIsm": "0x5DA60220C5dDe35b7aE91c042ff5979047FA0785", "interchainAccountIsm": "0x5DA60220C5dDe35b7aE91c042ff5979047FA0785",
"interchainAccountRouter": "0x7a4d31a686A36285d68e14EDD53631417eB19603", "interchainAccountRouter": "0x7a4d31a686A36285d68e14EDD53631417eB19603",
"interchainGasPaymaster": "0x2Fa570E83009eaEef3a1cbd496a9a30F05266634", "interchainGasPaymaster": "0x2Fa570E83009eaEef3a1cbd496a9a30F05266634",
"interchainSecurityModule": "0x144f19c1162A99e7E366D5688004958445ba0Eab", "interchainSecurityModule": "0x1c6bc0369a7528D8B0968a9e5e7C599567778350",
"mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D", "mailbox": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"merkleTreeHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA", "merkleTreeHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
"name": "redstone", "name": "redstone",
@ -2410,6 +2449,7 @@
"validatorAnnounce": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0" "validatorAnnounce": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0"
}, },
"sanko": { "sanko": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://explorer.sanko.xyz/api/eth-rpc", "apiUrl": "https://explorer.sanko.xyz/api/eth-rpc",
@ -2430,6 +2470,7 @@
}, },
"displayName": "Sanko", "displayName": "Sanko",
"domainId": 1996, "domainId": 1996,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "dream-machine-token", "gasCurrencyCoinGeckoId": "dream-machine-token",
@ -2437,7 +2478,7 @@
"from": 937117 "from": 937117
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0x203B8cEe54c0875d7b3384722636B5Ef4A4D81f7",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "sanko", "name": "sanko",
@ -2447,7 +2488,9 @@
"symbol": "DMT" "symbol": "DMT"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -2455,6 +2498,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x203B8cEe54c0875d7b3384722636B5Ef4A4D81f7",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -2497,7 +2541,7 @@
"interchainAccountIsm": "0x32af5Df81fEd5E26119F6640FBB13f3d63a94CDe", "interchainAccountIsm": "0x32af5Df81fEd5E26119F6640FBB13f3d63a94CDe",
"interchainAccountRouter": "0x0B48a744698ba8dFa514742dFEB6728f52fD66f7", "interchainAccountRouter": "0x0B48a744698ba8dFa514742dFEB6728f52fD66f7",
"interchainGasPaymaster": "0xBF12ef4B9f307463D3FB59c3604F294dDCe287E2", "interchainGasPaymaster": "0xBF12ef4B9f307463D3FB59c3604F294dDCe287E2",
"interchainSecurityModule": "0xA0aB8BeA8F8ce88519EB6E95C38B2155fDE80978", "interchainSecurityModule": "0x92fd21a745172B48ed0392C4A9f3e08a2Ed2561a",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x6119E37Bd66406A1Db74920aC79C15fB8411Ba76", "merkleTreeHook": "0x6119E37Bd66406A1Db74920aC79C15fB8411Ba76",
"name": "scroll", "name": "scroll",
@ -2562,7 +2606,7 @@
"interchainAccountIsm": "0xf35dc7B9eE4Ebf0cd3546Bd6EE3b403dE2b9F5D6", "interchainAccountIsm": "0xf35dc7B9eE4Ebf0cd3546Bd6EE3b403dE2b9F5D6",
"interchainAccountRouter": "0xBcaedE97a98573A88242B3b0CB0A255F3f90d4d5", "interchainAccountRouter": "0xBcaedE97a98573A88242B3b0CB0A255F3f90d4d5",
"interchainGasPaymaster": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72", "interchainGasPaymaster": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72",
"interchainSecurityModule": "0x40e1EacEDdd7105288537Db7B2D148685037566C", "interchainSecurityModule": "0x01Fd7e91B2118b90f1a2F3d13cfF97E8e655bf5f",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xca1b69fA4c4a7c7fD839bC50867c589592bcfe49", "merkleTreeHook": "0xca1b69fA4c4a7c7fD839bC50867c589592bcfe49",
"name": "sei", "name": "sei",
@ -2671,7 +2715,7 @@
"interchainAccountIsm": "0xAE557e108b3336130370aC74836f1356B4b30Cf2", "interchainAccountIsm": "0xAE557e108b3336130370aC74836f1356B4b30Cf2",
"interchainAccountRouter": "0x1F8CF09F060A2AE962c0Bb1F92e209a1E7b0E10B", "interchainAccountRouter": "0x1F8CF09F060A2AE962c0Bb1F92e209a1E7b0E10B",
"interchainGasPaymaster": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42", "interchainGasPaymaster": "0x273Bc6b01D9E88c064b6E5e409BdF998246AEF42",
"interchainSecurityModule": "0x8162B1E340e7B3DAc27E98a533Fcc75EfEA059F9", "interchainSecurityModule": "0xfB4d48ffDc8Ca2F05A5B76cC070b51ed58E6cC05",
"mailbox": "0x28EFBCadA00A7ed6772b3666F3898d276e88CAe3", "mailbox": "0x28EFBCadA00A7ed6772b3666F3898d276e88CAe3",
"merkleTreeHook": "0x6A55822cf11f9fcBc4c75BC2638AfE8Eb942cAdd", "merkleTreeHook": "0x6A55822cf11f9fcBc4c75BC2638AfE8Eb942cAdd",
"name": "taiko", "name": "taiko",
@ -2723,6 +2767,7 @@
}, },
"displayName": "Tangle", "displayName": "Tangle",
"domainId": 5845, "domainId": 5845,
"domainRoutingIsm": "0xaDc0cB48E8DB81855A930C0C1165ea3dCe4Ba5C7",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908", "domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5", "fallbackRoutingHook": "0xd21192429df453021e896f2897Dc8B1167DD61E5",
"gasCurrencyCoinGeckoId": "tangle-network", "gasCurrencyCoinGeckoId": "tangle-network",
@ -2730,7 +2775,7 @@
"from": 1678063 "from": 1678063
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x768DDd89D239FB3a48A7774aE6d786D72441D0e0", "interchainSecurityModule": "0xB0525d808721426c56377469B92db16857384deF",
"isTestnet": false, "isTestnet": false,
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
@ -2741,6 +2786,7 @@
"symbol": "TNT" "symbol": "TNT"
}, },
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd", "protocolFee": "0x4E55aDA3ef1942049EA43E904EB01F4A0a9c39bd",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
@ -2750,6 +2796,7 @@
} }
], ],
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6", "staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0xB0525d808721426c56377469B92db16857384deF",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A", "staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC", "staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE", "staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
@ -2790,7 +2837,7 @@
"interchainAccountIsm": "0x551BbEc45FD665a8C95ca8731CbC32b7653Bc59B", "interchainAccountIsm": "0x551BbEc45FD665a8C95ca8731CbC32b7653Bc59B",
"interchainAccountRouter": "0xc11f8Cf2343d3788405582F65B8af6A4F7a6FfC8", "interchainAccountRouter": "0xc11f8Cf2343d3788405582F65B8af6A4F7a6FfC8",
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4", "interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
"interchainSecurityModule": "0xb867cD0B7C3B1A3cE6fBBcb165D43Cb273bb26fE", "interchainSecurityModule": "0xAeAd5b4Ab9dA529452C7fe7b0f39902Ff4345772",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112", "merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
"name": "viction", "name": "viction",
@ -2855,7 +2902,7 @@
"interchainAccountIsm": "0xCB9f90EE5d83Ea52ABd922BD70898f0155D54798", "interchainAccountIsm": "0xCB9f90EE5d83Ea52ABd922BD70898f0155D54798",
"interchainAccountRouter": "0x473884010F0C1742DA8Ad01E7E295624B931076b", "interchainAccountRouter": "0x473884010F0C1742DA8Ad01E7E295624B931076b",
"interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503", "interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"interchainSecurityModule": "0xD3bd8f20e169364d14c7dBFE698258D780FC71e3", "interchainSecurityModule": "0x6455CbF559E2227aA23409930D0F860e2f244B70",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD", "merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD",
"name": "worldchain", "name": "worldchain",
@ -2885,6 +2932,7 @@
"validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a" "validatorAnnounce": "0x047ba6c9949baB22d13C347B40819b7A20C4C53a"
}, },
"xai": { "xai": {
"aggregationHook": "0xF6C1769d5390Be0f77080eF7791fBbA7eF4D5659",
"blockExplorers": [ "blockExplorers": [
{ {
"apiUrl": "https://explorer.xai-chain.net/api", "apiUrl": "https://explorer.xai-chain.net/api",
@ -2913,7 +2961,7 @@
"from": 24395308 "from": 24395308
}, },
"interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF", "interchainGasPaymaster": "0x9844aFFaBE17c37F791ff99ABa58B0FbB75e22AF",
"interchainSecurityModule": "0x5F3C25e6AfDC6953fF1c7a661963D5a54E239A8D", "interchainSecurityModule": "0xd3A6fD5338656353D48693B797b6EcEFC5d3D317",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "merkleTreeHook": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"name": "xai", "name": "xai",
@ -2925,6 +2973,7 @@
"pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6", "pausableHook": "0x61594D2cA900C44ab51d07776465397FefC643C6",
"pausableIsm": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc", "pausableIsm": "0xbB22547D1dc681fe925f568f637Ff67aC06c20fc",
"protocol": "ethereum", "protocol": "ethereum",
"protocolFee": "0xe8d5590F2e969F9d21f0132f2b596273f8a03Ef2",
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004", "proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"rpcUrls": [ "rpcUrls": [
{ {
@ -2975,7 +3024,7 @@
"interchainAccountIsm": "0x29B37088724B745C0ABcE591449Cf042772160C2", "interchainAccountIsm": "0x29B37088724B745C0ABcE591449Cf042772160C2",
"interchainAccountRouter": "0x03cF708E42C89623bd83B281A56935cB562b9258", "interchainAccountRouter": "0x03cF708E42C89623bd83B281A56935cB562b9258",
"interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503", "interchainGasPaymaster": "0x7E27456a839BFF31CA642c060a2b68414Cb6e503",
"interchainSecurityModule": "0xD3bd8f20e169364d14c7dBFE698258D780FC71e3", "interchainSecurityModule": "0x4fc18464D39118b2B6F93c304AfF84336368a60E",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD", "merkleTreeHook": "0x0054D19613f20dD72721A146ED408971a2CCA9BD",
"name": "xlayer", "name": "xlayer",
@ -3040,7 +3089,7 @@
"interchainAccountIsm": "0x2b6d3F7d28B5EC8C3C028fBCAdcf774D9709Dd29", "interchainAccountIsm": "0x2b6d3F7d28B5EC8C3C028fBCAdcf774D9709Dd29",
"interchainAccountRouter": "0x3AdCBc94ab8C48EC52D06dc65Bb787fD1981E3d5", "interchainAccountRouter": "0x3AdCBc94ab8C48EC52D06dc65Bb787fD1981E3d5",
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d", "interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
"interchainSecurityModule": "0xcd886efC3a5b1599d1eAD60F6dD74b3BffB5410D", "interchainSecurityModule": "0x4FdFC989d10273A01073111f447e19aCF2a04A0c",
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7", "mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6", "merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
"name": "zetachain", "name": "zetachain",
@ -3103,7 +3152,7 @@
"from": 1511458 "from": 1511458
}, },
"interchainGasPaymaster": "0x03cF708E42C89623bd83B281A56935cB562b9258", "interchainGasPaymaster": "0x03cF708E42C89623bd83B281A56935cB562b9258",
"interchainSecurityModule": "0x0f58B192d64DAe7389502b1c3F4a8A0ddBeEC488", "interchainSecurityModule": "0x636bB3fCa3B74B942bA8C258c44109384B252979",
"mailbox": "0xc2FbB9411186AB3b1a6AFCCA702D1a80B48b197c", "mailbox": "0xc2FbB9411186AB3b1a6AFCCA702D1a80B48b197c",
"merkleTreeHook": "0x4C97D35c668EE5194a13c8DE8Afc18cce40C9F28", "merkleTreeHook": "0x4C97D35c668EE5194a13c8DE8Afc18cce40C9F28",
"name": "zircuit", "name": "zircuit",
@ -3167,7 +3216,7 @@
"interchainAccountIsm": "0xb2674E213019972f937CCFc5e23BF963D915809e", "interchainAccountIsm": "0xb2674E213019972f937CCFc5e23BF963D915809e",
"interchainAccountRouter": "0x11b76D93a9D39Eb51F54eBf5566308640cDe882b", "interchainAccountRouter": "0x11b76D93a9D39Eb51F54eBf5566308640cDe882b",
"interchainGasPaymaster": "0x18B0688990720103dB63559a3563f7E8d0f63EDb", "interchainGasPaymaster": "0x18B0688990720103dB63559a3563f7E8d0f63EDb",
"interchainSecurityModule": "0x19665b36916A5048E969386044fA4AEeB55d6744", "interchainSecurityModule": "0xFAc2723298549ECC6FC631d13048d2B65930fd13",
"mailbox": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a", "mailbox": "0xF5da68b2577EF5C0A0D98aA2a58483a68C2f232a",
"merkleTreeHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F", "merkleTreeHook": "0x886BB0f329781b98f98FDeb1ce7a8957F2d43B9F",
"name": "zoramainnet", "name": "zoramainnet",

@ -2307,6 +2307,12 @@
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "PausableIsm" "name": "PausableIsm"
},
{
"address": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"degenchain": [ "degenchain": [
@ -2371,6 +2377,24 @@
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "ProtocolFee" "name": "ProtocolFee"
},
{
"address": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x089DdA086dCbfA0C2cCa69B45F2eB6DE7Fd71F38",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
} }
], ],
"endurance": [ "endurance": [
@ -3916,6 +3940,30 @@
"expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1", "expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"isProxy": true, "isProxy": true,
"name": "TransparentUpgradeableProxy" "name": "TransparentUpgradeableProxy"
},
{
"address": "0xF15D70941dE2Bf95A23d6488eBCbedE0a444137f",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x662771d29DFf0d7C36bB9BB6d4241a02e77585d9",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x662771d29DFf0d7C36bB9BB6d4241a02e77585d9",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x9c44E6b8F0dB517C2c3a0478caaC5349b614F912",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"linea": [ "linea": [
@ -4858,6 +4906,24 @@
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "ProtocolFee" "name": "ProtocolFee"
},
{
"address": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
} }
], ],
"lukso": [ "lukso": [
@ -5115,6 +5181,12 @@
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "PausableIsm" "name": "PausableIsm"
},
{
"address": "0xb4fc9B5fD57499Ef6FfF3995728a55F7A618ef86",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"metis": [ "metis": [
@ -5179,6 +5251,24 @@
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "ProtocolFee" "name": "ProtocolFee"
},
{
"address": "0xD7EcB0396406682a27E87F7946c25Ac531140959",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
} }
], ],
"mint": [ "mint": [
@ -5200,6 +5290,36 @@
"expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1", "expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"isProxy": true, "isProxy": true,
"name": "TransparentUpgradeableProxy" "name": "TransparentUpgradeableProxy"
},
{
"address": "0xcd9D3744512F07AE844c40E27912092d7c503565",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
},
{
"address": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x53e912b41125d6094590a7DBEf1360d3d56EEa19",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"mode": [ "mode": [
@ -6605,6 +6725,42 @@
"expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1", "expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"isProxy": true, "isProxy": true,
"name": "TransparentUpgradeableProxy" "name": "TransparentUpgradeableProxy"
},
{
"address": "0xC88bAD76EC7acD9fd3b9Bb264f7f5C18097c5710",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
},
{
"address": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x73db9c7430548f399e335f3424e8d56080e9010c",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
},
{
"address": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x73db9c7430548f399e335f3424e8d56080e9010c",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"real": [ "real": [
@ -6632,6 +6788,12 @@
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "PausableIsm" "name": "PausableIsm"
},
{
"address": "0x59C2dB903937EbE55B59c3415FD55e970FF5f2DC",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"redstone": [ "redstone": [
@ -7417,6 +7579,30 @@
"expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1", "expectedimplementation": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"isProxy": true, "isProxy": true,
"name": "TransparentUpgradeableProxy" "name": "TransparentUpgradeableProxy"
},
{
"address": "0xC88bAD76EC7acD9fd3b9Bb264f7f5C18097c5710",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x92cdbF0Ccdf8E93467FA858fb986fa650A02f2A8",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0xDab56C5A1EffFdd23f6BD1243E457B1575984Bc6",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"scroll": [ "scroll": [
@ -8579,6 +8765,24 @@
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "ProtocolFee" "name": "ProtocolFee"
},
{
"address": "0xF15D70941dE2Bf95A23d6488eBCbedE0a444137f",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
},
{
"address": "0x5d69BC38eF3eDb491c0b7186BEc4eC45c4013f93",
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "PausableIsm"
} }
], ],
"viction": [ "viction": [
@ -8967,6 +9171,12 @@
"constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba", "constructorArguments": "000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false, "isProxy": false,
"name": "PausableIsm" "name": "PausableIsm"
},
{
"address": "0xe8d5590F2e969F9d21f0132f2b596273f8a03Ef2",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false,
"name": "ProtocolFee"
} }
], ],
"xlayer": [ "xlayer": [

@ -106,6 +106,7 @@ async function check() {
core, core,
envConfig.core, envConfig.core,
ismFactory, ismFactory,
chainAddresses,
); );
governor = new HyperlaneCoreGovernor(checker, ica); governor = new HyperlaneCoreGovernor(checker, ica);
} else if (module === Modules.INTERCHAIN_GAS_PAYMASTER) { } else if (module === Modules.INTERCHAIN_GAS_PAYMASTER) {

@ -239,11 +239,13 @@ export async function getCosmosChainGasPrice(
const nativeToken = mustGetChainNativeToken(chain); const nativeToken = mustGetChainNativeToken(chain);
const fee = cosmosRegistryChain.fees?.fee_tokens.find((fee) => { const fee = cosmosRegistryChain.fees?.fee_tokens.find(
return ( (fee: { denom: string }) => {
fee.denom === nativeToken.denom || fee.denom === `u${nativeToken.denom}` return (
); fee.denom === nativeToken.denom || fee.denom === `u${nativeToken.denom}`
}); );
},
);
if (!fee || fee.average_gas_price === undefined) { if (!fee || fee.average_gas_price === undefined) {
throw new Error(`No gas price found for Cosmos chain ${chain}`); throw new Error(`No gas price found for Cosmos chain ${chain}`);
} }

@ -518,8 +518,13 @@ export const defaultMultisigConfigs: ChainMap<MultisigConfig> = {
}, },
zircuit: { zircuit: {
threshold: 1, threshold: 3,
validators: ['0x169ec400cc758fef3df6a0d6c51fbc6cdd1015bb'], validators: [
'0x169ec400cc758fef3df6a0d6c51fbc6cdd1015bb',
'0x7aC6584c068eb2A72d4Db82A7B7cd5AB34044061', // luganodes
'0x0180444c9342BD672867Df1432eb3dA354413a6E', // hashkey cloud
'0x1da9176C2CE5cC7115340496fa7D1800a98911CE', // renzo
],
}, },
zoramainnet: { zoramainnet: {

@ -265,6 +265,7 @@ describe('core', async () => {
core, core,
coreConfig, coreConfig,
ismFactory, ismFactory,
{},
); );
await checker.check(); await checker.check();
}); });

@ -29,6 +29,7 @@ export class HyperlaneCoreChecker extends HyperlaneAppChecker<
app: HyperlaneCore, app: HyperlaneCore,
configMap: ChainMap<CoreConfig>, configMap: ChainMap<CoreConfig>,
readonly ismFactory: HyperlaneIsmFactory, readonly ismFactory: HyperlaneIsmFactory,
readonly chainAddresses: ChainMap<Record<string, string>>,
) { ) {
super(multiProvider, app, configMap); super(multiProvider, app, configMap);
} }
@ -78,22 +79,53 @@ export class HyperlaneCoreChecker extends HyperlaneAppChecker<
); );
if (!matches) { if (!matches) {
const ismReader = new EvmIsmReader(this.ismFactory.multiProvider, chain); const registryIsmAddress =
let actualConfig: string | DerivedIsmConfig = this.chainAddresses[chain].interchainSecurityModule;
ethers.constants.AddressZero; const registryIsmMatches = await moduleMatchesConfig(
if (actualIsmAddress !== ethers.constants.AddressZero) {
actualConfig = await ismReader.deriveIsmConfig(actualIsmAddress);
}
const violation: MailboxViolation = {
type: CoreViolationType.Mailbox,
subType: MailboxViolationType.DefaultIsm,
contract: mailbox,
chain, chain,
actual: actualConfig, registryIsmAddress,
expected: config.defaultIsm, config.defaultIsm,
}; this.ismFactory.multiProvider,
this.addViolation(violation); this.ismFactory.getContracts(chain),
);
if (registryIsmMatches) {
// if the ISM in registry matches the expected config, then we can assume
// that the mailbox should be using that ISM instead of the current one
// and we should report just an address violation
const violation: MailboxViolation = {
type: CoreViolationType.Mailbox,
subType: MailboxViolationType.DefaultIsm,
contract: mailbox,
chain,
actual: actualIsmAddress,
expected: registryIsmAddress,
};
this.addViolation(violation);
} else {
const ismReader = new EvmIsmReader(
this.ismFactory.multiProvider,
chain,
);
let actualConfig: string | DerivedIsmConfig =
ethers.constants.AddressZero;
if (actualIsmAddress !== ethers.constants.AddressZero) {
actualConfig = await ismReader.deriveIsmConfig(actualIsmAddress);
}
// If the config doesn't match either onchain or the registry
// then we have a full config violation, which the governor will need to
// fix by deploying a new ISM
const violation: MailboxViolation = {
type: CoreViolationType.Mailbox,
subType: MailboxViolationType.DefaultIsm,
contract: mailbox,
chain,
actual: actualConfig,
expected: config.defaultIsm,
};
this.addViolation(violation);
}
} }
} }

@ -7,47 +7,91 @@ export const CosmosChainSchema = z
$schema: z $schema: z
.string() .string()
.regex(new RegExp('^(\\.\\./)+chain\\.schema\\.json$')) .regex(new RegExp('^(\\.\\./)+chain\\.schema\\.json$'))
.min(1)
.optional(), .optional(),
chain_name: z.string().regex(new RegExp('[a-z0-9]+')), chain_name: z.string().regex(new RegExp('[a-z0-9]+')).min(1),
chain_type: z.string().regex(new RegExp('[a-z0-9]+')), chain_type: z
chain_id: z.string(), .enum([
pre_fork_chain_name: z.string().regex(new RegExp('[a-z0-9]+')).optional(), 'cosmos',
pretty_name: z.string().optional(), 'eip155',
website: z.string().url().optional(), 'bip122',
update_link: z.string().url().optional(), 'polkadot',
'solana',
'algorand',
'arweave',
'ergo',
'fil',
'hedera',
'monero',
'reef',
'stacks',
'starknet',
'stellar',
'tezos',
'vechain',
'waves',
'xrpl',
'unknown',
])
.describe(
"The 'type' of chain as the corresponding CAIP-2 Namespace value. E.G., 'cosmos' or 'eip155'. Namespaces can be found here: https://github.com/ChainAgnostic/namespaces/tree/main.",
),
chain_id: z.string().min(1).optional(),
pre_fork_chain_name: z
.string()
.regex(new RegExp('[a-z0-9]+'))
.min(1)
.optional(),
pretty_name: z.string().min(1).optional(),
website: z.string().url().min(1).optional(),
update_link: z.string().url().min(1).optional(),
status: z.enum(['live', 'upcoming', 'killed']).optional(), status: z.enum(['live', 'upcoming', 'killed']).optional(),
network_type: z.enum(['mainnet', 'testnet', 'devnet']).optional(), network_type: z.enum(['mainnet', 'testnet', 'devnet']).optional(),
bech32_prefix: z bech32_prefix: z
.string() .string()
.min(1)
.describe( .describe(
"The default prefix for the human-readable part of addresses that identifies the coin type. Must be registered with SLIP-0173. E.g., 'cosmos'", "The default prefix for the human-readable part of addresses that identifies the coin type. Must be registered with SLIP-0173. E.g., 'cosmos'",
), )
.optional(),
bech32_config: z bech32_config: z
.object({ .object({
bech32PrefixAccAddr: z.string().describe("e.g., 'cosmos'").optional(), bech32PrefixAccAddr: z
bech32PrefixAccPub: z.string().describe("e.g., 'cosmospub'").optional(), .string()
.min(1)
.describe("e.g., 'cosmos'")
.optional(),
bech32PrefixAccPub: z
.string()
.min(1)
.describe("e.g., 'cosmospub'")
.optional(),
bech32PrefixValAddr: z bech32PrefixValAddr: z
.string() .string()
.min(1)
.describe("e.g., 'cosmosvaloper'") .describe("e.g., 'cosmosvaloper'")
.optional(), .optional(),
bech32PrefixValPub: z bech32PrefixValPub: z
.string() .string()
.min(1)
.describe("e.g., 'cosmosvaloperpub'") .describe("e.g., 'cosmosvaloperpub'")
.optional(), .optional(),
bech32PrefixConsAddr: z bech32PrefixConsAddr: z
.string() .string()
.min(1)
.describe("e.g., 'cosmosvalcons'") .describe("e.g., 'cosmosvalcons'")
.optional(), .optional(),
bech32PrefixConsPub: z bech32PrefixConsPub: z
.string() .string()
.min(1)
.describe("e.g., 'cosmosvalconspub'") .describe("e.g., 'cosmosvalconspub'")
.optional(), .optional(),
}) })
.strict() .strict()
.describe('Used to override the bech32_prefix for specific uses.') .describe('Used to override the bech32_prefix for specific uses.')
.optional(), .optional(),
daemon_name: z.string().optional(), daemon_name: z.string().min(1).optional(),
node_home: z.string().optional(), node_home: z.string().min(1).optional(),
key_algos: z key_algos: z
.array( .array(
z.enum(['secp256k1', 'ethsecp256k1', 'ed25519', 'sr25519', 'bn254']), z.enum(['secp256k1', 'ethsecp256k1', 'ed25519', 'sr25519', 'bn254']),
@ -60,7 +104,7 @@ export const CosmosChainSchema = z
fee_tokens: z.array( fee_tokens: z.array(
z z
.object({ .object({
denom: z.string(), denom: z.string().min(1),
fixed_min_gas_price: z.number().optional(), fixed_min_gas_price: z.number().optional(),
low_gas_price: z.number().optional(), low_gas_price: z.number().optional(),
average_gas_price: z.number().optional(), average_gas_price: z.number().optional(),
@ -80,7 +124,9 @@ export const CosmosChainSchema = z
.optional(), .optional(),
staking: z staking: z
.object({ .object({
staking_tokens: z.array(z.object({ denom: z.string() }).strict()), staking_tokens: z.array(
z.object({ denom: z.string().min(1) }).strict(),
),
lock_duration: z lock_duration: z
.object({ .object({
blocks: z blocks: z
@ -91,6 +137,7 @@ export const CosmosChainSchema = z
.optional(), .optional(),
time: z time: z
.string() .string()
.min(1)
.describe( .describe(
'The approximate time for which the staked tokens are locked.', 'The approximate time for which the staked tokens are locked.',
) )
@ -103,43 +150,142 @@ export const CosmosChainSchema = z
.optional(), .optional(),
codebase: z codebase: z
.object({ .object({
git_repo: z.string().url().optional(), git_repo: z.string().url().min(1).optional(),
recommended_version: z.string().optional(), recommended_version: z.string().min(1).optional(),
compatible_versions: z.array(z.string().min(1)).optional(),
go_version: z go_version: z
.string() .string()
.regex(new RegExp('^[0-9]+\\.[0-9]+(\\.[0-9]+)?$')) .regex(new RegExp('^[0-9]+\\.[0-9]+(\\.[0-9]+)?$'))
.min(1)
.describe('Minimum accepted go version to build the binary.') .describe('Minimum accepted go version to build the binary.')
.optional(), .optional(),
compatible_versions: z.array(z.string()).optional(), language: z
.object({
type: z.enum(['go', 'rust', 'solidity', 'other']),
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
})
.strict()
.optional(),
binaries: z binaries: z
.object({ .object({
'linux/amd64': z.string().url().optional(), 'linux/amd64': z.string().url().min(1).optional(),
'linux/arm64': z.string().url().optional(), 'linux/arm64': z.string().url().min(1).optional(),
'darwin/amd64': z.string().url().optional(), 'darwin/amd64': z.string().url().min(1).optional(),
'darwin/arm64': z.string().url().optional(), 'darwin/arm64': z.string().url().min(1).optional(),
'windows/amd64': z.string().url().optional(), 'windows/amd64': z.string().url().min(1).optional(),
'windows/arm64': z.string().url().optional(), 'windows/arm64': z.string().url().min(1).optional(),
})
.strict()
.optional(),
cosmos_sdk_version: z.string().min(1).optional(),
sdk: z
.object({
type: z.enum(['cosmos', 'penumbra', 'other']),
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
}) })
.strict() .strict()
.optional(), .optional(),
cosmos_sdk_version: z.string().optional(),
consensus: z consensus: z
.object({ .object({
type: z.enum(['tendermint', 'cometbft', 'sei-tendermint']), type: z.enum(['tendermint', 'cometbft', 'sei-tendermint']),
version: z.string().optional(), version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
}) })
.strict() .strict()
.optional(), .optional(),
cosmwasm_version: z.string().optional(), cosmwasm_version: z.string().min(1).optional(),
cosmwasm_enabled: z.boolean().optional(), cosmwasm_enabled: z.boolean().optional(),
cosmwasm_path: z cosmwasm_path: z
.string() .string()
.regex(new RegExp('^\\$HOME.*$')) .regex(new RegExp('^\\$HOME.*$'))
.min(1)
.describe( .describe(
'Relative path to the cosmwasm directory. ex. $HOME/.juno/data/wasm', 'Relative path to the cosmwasm directory. ex. $HOME/.juno/data/wasm',
) )
.optional(), .optional(),
ibc_go_version: z.string().optional(), cosmwasm: z
.object({
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
enabled: z.boolean().optional(),
path: z
.string()
.regex(new RegExp('^\\$HOME.*$'))
.min(1)
.describe(
'Relative path to the cosmwasm directory. ex. $HOME/.juno/data/wasm',
)
.optional(),
})
.strict()
.optional(),
ibc_go_version: z.string().min(1).optional(),
ics_enabled: z ics_enabled: z
.array( .array(
z z
@ -150,11 +296,45 @@ export const CosmosChainSchema = z
'List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.', 'List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.',
) )
.optional(), .optional(),
ibc: z
.object({
type: z.enum(['go', 'rust', 'other']),
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
ics_enabled: z
.array(
z
.enum(['ics20-1', 'ics27-1', 'mauth'])
.describe('IBC app or ICS standard.'),
)
.describe(
'List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.',
)
.optional(),
})
.strict()
.optional(),
genesis: z genesis: z
.object({ .object({
name: z.string().optional(), name: z.string().min(1).optional(),
genesis_url: z.string().url(), genesis_url: z.string().url().min(1),
ics_ccv_url: z.string().url().optional(), ics_ccv_url: z.string().url().min(1).optional(),
}) })
.strict() .strict()
.optional(), .optional(),
@ -162,8 +342,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
name: z.string().describe('Official Upgrade Name'), name: z.string().min(1).describe('Official Upgrade Name'),
tag: z.string().describe('Git Upgrade Tag').optional(), tag: z.string().min(1).describe('Git Upgrade Tag').optional(),
height: z.number().describe('Block Height').optional(), height: z.number().describe('Block Height').optional(),
proposal: z proposal: z
.number() .number()
@ -173,37 +353,138 @@ export const CosmosChainSchema = z
.optional(), .optional(),
previous_version_name: z previous_version_name: z
.string() .string()
.min(1)
.describe('[Optional] Name of the previous version') .describe('[Optional] Name of the previous version')
.optional(), .optional(),
next_version_name: z next_version_name: z
.string() .string()
.min(0)
.describe('[Optional] Name of the following version') .describe('[Optional] Name of the following version')
.optional(), .optional(),
recommended_version: z.string().optional(), recommended_version: z.string().min(1).optional(),
compatible_versions: z.array(z.string().min(1)).optional(),
go_version: z go_version: z
.string() .string()
.regex(new RegExp('^[0-9]+\\.[0-9]+(\\.[0-9]+)?$')) .regex(new RegExp('^[0-9]+\\.[0-9]+(\\.[0-9]+)?$'))
.min(1)
.describe('Minimum accepted go version to build the binary.') .describe('Minimum accepted go version to build the binary.')
.optional(), .optional(),
compatible_versions: z.array(z.string()).optional(), language: z
cosmos_sdk_version: z.string().optional(), .object({
type: z.enum(['go', 'rust', 'solidity', 'other']),
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
})
.strict()
.optional(),
cosmos_sdk_version: z.string().min(1).optional(),
sdk: z
.object({
type: z.enum(['cosmos', 'penumbra', 'other']),
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
})
.strict()
.optional(),
consensus: z consensus: z
.object({ .object({
type: z.enum(['tendermint', 'cometbft', 'sei-tendermint']), type: z.enum(['tendermint', 'cometbft', 'sei-tendermint']),
version: z.string().optional(), version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
}) })
.strict() .strict()
.optional(), .optional(),
cosmwasm_version: z.string().optional(), cosmwasm_version: z.string().min(1).optional(),
cosmwasm_enabled: z.boolean().optional(), cosmwasm_enabled: z.boolean().optional(),
cosmwasm_path: z cosmwasm_path: z
.string() .string()
.regex(new RegExp('^\\$HOME.*$')) .regex(new RegExp('^\\$HOME.*$'))
.min(1)
.describe( .describe(
'Relative path to the cosmwasm directory. ex. $HOME/.juno/data/wasm', 'Relative path to the cosmwasm directory. ex. $HOME/.juno/data/wasm',
) )
.optional(), .optional(),
ibc_go_version: z.string().optional(), cosmwasm: z
.object({
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
enabled: z.boolean().optional(),
path: z
.string()
.regex(new RegExp('^\\$HOME.*$'))
.min(1)
.describe(
'Relative path to the cosmwasm directory. ex. $HOME/.juno/data/wasm',
)
.optional(),
})
.strict()
.optional(),
ibc_go_version: z.string().min(1).optional(),
ics_enabled: z ics_enabled: z
.array( .array(
z z
@ -214,14 +495,48 @@ export const CosmosChainSchema = z
'List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.', 'List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.',
) )
.optional(), .optional(),
ibc: z
.object({
type: z.enum(['go', 'rust', 'other']),
version: z
.string()
.min(1)
.describe("Simple version string (e.g., 'v1.0.0').")
.optional(),
repo: z
.string()
.url()
.min(1)
.describe('URL of the code repository.')
.optional(),
tag: z
.string()
.min(1)
.describe(
"Detailed version identifier (e.g., 'v1.0.0-a1s2f43g').",
)
.optional(),
ics_enabled: z
.array(
z
.enum(['ics20-1', 'ics27-1', 'mauth'])
.describe('IBC app or ICS standard.'),
)
.describe(
'List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.',
)
.optional(),
})
.strict()
.optional(),
binaries: z binaries: z
.object({ .object({
'linux/amd64': z.string().url().optional(), 'linux/amd64': z.string().url().min(1).optional(),
'linux/arm64': z.string().url().optional(), 'linux/arm64': z.string().url().min(1).optional(),
'darwin/amd64': z.string().url().optional(), 'darwin/amd64': z.string().url().min(1).optional(),
'darwin/arm64': z.string().url().optional(), 'darwin/arm64': z.string().url().min(1).optional(),
'windows/amd64': z.string().url().optional(), 'windows/amd64': z.string().url().min(1).optional(),
'windows/arm64': z.string().url().optional(), 'windows/arm64': z.string().url().min(1).optional(),
}) })
.strict() .strict()
.optional(), .optional(),
@ -240,11 +555,13 @@ export const CosmosChainSchema = z
.object({ .object({
chain_name: z chain_name: z
.string() .string()
.min(1)
.describe( .describe(
"The chain name or platform from which the object resides. E.g., 'cosmoshub', 'ethereum', 'forex', or 'nasdaq'", "The chain name or platform from which the object resides. E.g., 'cosmoshub', 'ethereum', 'forex', or 'nasdaq'",
), ),
base_denom: z base_denom: z
.string() .string()
.min(1)
.describe( .describe(
"The base denom of the asset from which the object originates. E.g., when describing ATOM from Cosmos Hub, specify 'uatom', NOT 'atom' nor 'ATOM'; base units are unique per platform.", "The base denom of the asset from which the object originates. E.g., when describing ATOM from Cosmos Hub, specify 'uatom', NOT 'atom' nor 'ATOM'; base units are unique per platform.",
) )
@ -262,6 +579,7 @@ export const CosmosChainSchema = z
'^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.png$', '^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.png$',
), ),
) )
.min(1)
.optional(), .optional(),
svg: z svg: z
.string() .string()
@ -270,38 +588,28 @@ export const CosmosChainSchema = z
'^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.svg$', '^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.svg$',
), ),
) )
.min(1)
.optional(), .optional(),
theme: z theme: z
.object({ .object({
primary_color_hex: z primary_color_hex: z
.string() .string()
.min(1)
.regex(new RegExp('^#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})$')) .regex(new RegExp('^#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})$'))
.min(1)
.optional(), .optional(),
background_color_hex: z background_color_hex: z
.string() .string()
.min(1)
.regex( .regex(
new RegExp('^(#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})|none)$'), new RegExp('^(#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})|none)$'),
) )
.min(1)
.optional(), .optional(),
circle: z.boolean().optional(), circle: z.boolean().optional(),
dark_mode: z.boolean().optional(), dark_mode: z.boolean().optional(),
monochrome: z.boolean().optional(),
}) })
.strict() .strict()
.optional(), .optional(),
layout: z
.enum(['logo', 'logomark', 'logotype'])
.describe(
'logomark == icon only; logotype == text only; logo == icon + text.',
)
.optional(),
text_position: z
.enum(['top', 'bottom', 'left', 'right', 'integrated'])
.describe(
"Indicates in which position the text is placed, in case the layout is 'icon' type, it's required only in this case.",
)
.optional(),
}) })
.strict() .strict()
.and(z.union([z.any(), z.any()])), .and(z.union([z.any(), z.any()])),
@ -316,6 +624,7 @@ export const CosmosChainSchema = z
'^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.png$', '^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.png$',
), ),
) )
.min(1)
.optional(), .optional(),
svg: z svg: z
.string() .string()
@ -324,20 +633,21 @@ export const CosmosChainSchema = z
'^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.svg$', '^https://raw\\.githubusercontent\\.com/cosmos/chain-registry/master/(|testnets/|_non-cosmos/)[a-z0-9]+/images/.+\\.svg$',
), ),
) )
.min(1)
.optional(), .optional(),
}) })
.strict() .strict()
.optional(), .optional(),
description: z.string().max(3000).optional(), description: z.string().min(1).max(3000).optional(),
peers: z peers: z
.object({ .object({
seeds: z seeds: z
.array( .array(
z z
.object({ .object({
id: z.string(), id: z.string().min(1),
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
}) })
.strict(), .strict(),
) )
@ -346,9 +656,9 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
id: z.string(), id: z.string().min(1),
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
}) })
.strict(), .strict(),
) )
@ -362,8 +672,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
archive: z.boolean().default(false), archive: z.boolean().default(false),
}) })
.strict(), .strict(),
@ -373,8 +683,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
archive: z.boolean().default(false), archive: z.boolean().default(false),
}) })
.strict(), .strict(),
@ -384,8 +694,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
archive: z.boolean().default(false), archive: z.boolean().default(false),
}) })
.strict(), .strict(),
@ -395,8 +705,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
archive: z.boolean().default(false), archive: z.boolean().default(false),
}) })
.strict(), .strict(),
@ -406,8 +716,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
archive: z.boolean().default(false), archive: z.boolean().default(false),
}) })
.strict(), .strict(),
@ -417,8 +727,8 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
address: z.string(), address: z.string().min(1),
provider: z.string().optional(), provider: z.string().min(1).optional(),
archive: z.boolean().default(false), archive: z.boolean().default(false),
}) })
.strict(), .strict(),
@ -431,22 +741,29 @@ export const CosmosChainSchema = z
.array( .array(
z z
.object({ .object({
kind: z.string().optional(), kind: z.string().min(1).optional(),
url: z.string().optional(), url: z.string().min(1).optional(),
tx_page: z.string().optional(), tx_page: z.string().min(1).optional(),
account_page: z.string().optional(), account_page: z.string().min(1).optional(),
validator_page: z.string().min(1).optional(),
proposal_page: z.string().min(1).optional(),
block_page: z.string().min(1).optional(),
}) })
.strict(), .strict(),
) )
.optional(), .optional(),
keywords: z.array(z.string()).optional(), keywords: z.array(z.string().min(1)).optional(),
extra_codecs: z.array(z.enum(['ethermint', 'injective'])).optional(), extra_codecs: z.array(z.enum(['ethermint', 'injective'])).optional(),
}) })
.passthrough() .strict()
.and(z.intersection(z.any(), z.any()))
.describe( .describe(
'Cosmos Chain.json is a metadata file that contains information about a cosmos sdk based chain.', 'Cosmos Chain.json is a metadata file that contains information about a cosmos sdk based chain.',
); );
// .strict().and(z.intersection(z.any(), z.any())) is similar to .passthrough()
// using this way as it's exactly as generated by the tool
export async function getCosmosRegistryChain(chain: string) { export async function getCosmosRegistryChain(chain: string) {
const json = await fetch( const json = await fetch(
`https://raw.githubusercontent.com/cosmos/chain-registry/master/${chain}/chain.json`, `https://raw.githubusercontent.com/cosmos/chain-registry/master/${chain}/chain.json`,

Loading…
Cancel
Save