From 50bc49ab31c3ce4bcf88fd1b01d0c51b2807729c Mon Sep 17 00:00:00 2001 From: Ed Zynda Date: Mon, 9 Dec 2024 06:48:12 +0300 Subject: [PATCH] Deploy to Lisk (#875) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deploy to lisk * finish up * Add util to fetch missing deployments from explorer * Add missing logs for worldchain * Add missing logs * Fix target state * Fix optimizer runs * set to verified * remove useless continue * Deploy GasZip and update logs * remove bebop addresses from dexs.json * add GasZipPeriphery address to dexs.json --------- Co-authored-by: Daniel Bläcker --- .env.example | 2 + config/across.json | 10 +- config/amarok.json | 6 + config/dexs.json | 7 + config/gaszip.json | 1 + config/networks.json | 20 +- config/stargate.json | 3 + config/tokenwrapper.json | 1 + deployments/_deployments_log_file.json | 364 ++++++++++++++++++++++ deployments/lisk.diamond.json | 84 +++++ deployments/lisk.json | 28 ++ foundry.toml | 2 + networks | 1 + script/deploy/_targetState.json | 1 - script/deploy/healthCheck.ts | 9 +- script/deploy/safe/propose-to-safe.ts | 11 +- script/utils/fetch-missing-deployments.ts | 11 +- script/utils/viemScriptHelpers.ts | 2 +- 18 files changed, 546 insertions(+), 17 deletions(-) create mode 100644 deployments/lisk.diamond.json create mode 100644 deployments/lisk.json diff --git a/.env.example b/.env.example index 440f65fc3..6028ed228 100644 --- a/.env.example +++ b/.env.example @@ -18,6 +18,7 @@ ETH_NODE_URI_GRAVITY=https://rpc.gravity.xyz #[pre-commit-checker: not a secret ETH_NODE_URI_IMMUTABLEZKEVM=https://rpc.immutable.com #[pre-commit-checker: not a secret] ETH_NODE_URI_KAIA=https://klaytn.drpc.org #[pre-commit-checker: not a secret] ETH_NODE_URI_LINEA=https://rpc.linea.build #[pre-commit-checker: not a secret] +ETH_NODE_URI_LISK=https://rpc.api.lisk.com #[pre-commit-checker: not a secret] ETH_NODE_URI_MANTLE=https://rpc.mantle.xyz #[pre-commit-checker: not a secret] ETH_NODE_URI_METIS=https://metis-mainnet.public.blastapi.io #[pre-commit-checker: not a secret] ETH_NODE_URI_MODE=https://mainnet.mode.network #[pre-commit-checker: not a secret] @@ -60,6 +61,7 @@ GRAVITY_ETHERSCAN_API_KEY= IMMUTABLEZKEVM_ETHERSCAN_API_KEY= KAIA_ETHERSCAN_API_KEY= LINEA_ETHERSCAN_API_KEY= +LISK_ETHERSCAN_API_KEY= MANTLE_ETHERSCAN_API_KEY= METIS_ETHERSCAN_API_KEY= MODE_ETHERSCAN_API_KEY= diff --git a/config/across.json b/config/across.json index ca39ae88a..48570a8f8 100644 --- a/config/across.json +++ b/config/across.json @@ -113,6 +113,14 @@ "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f" ] }, + "lisk": { + "chainId": 1135, + "acrossSpokePool": "0x9552a0a6624A23B848060AE5901659CDDa1f83f8", + "weth": "0x4200000000000000000000000000000000000006", + "tokensToApprove": [ + "0x4200000000000000000000000000000000000006" + ] + }, "blast": { "chainId": 81457, "acrossSpokePool": "0x2D509190Ed0172ba588407D4c2df918F955Cc6E1", @@ -142,4 +150,4 @@ "0x4200000000000000000000000000000000000006" ] } -} +} \ No newline at end of file diff --git a/config/amarok.json b/config/amarok.json index e87d66b1f..f8bdb2aa5 100644 --- a/config/amarok.json +++ b/config/amarok.json @@ -108,6 +108,12 @@ "0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f" ] }, + "lisk": { + "chainId": 1135, + "connextHandler": "0x0000000000000000000000000000000000000000", + "domain": "", + "tokensToApprove": [] + }, "mantle": { "chainId": 5000, "connextHandler": "0x0000000000000000000000000000000000000000", diff --git a/config/dexs.json b/config/dexs.json index 20c4114f1..013b0a66e 100644 --- a/config/dexs.json +++ b/config/dexs.json @@ -502,6 +502,13 @@ "0x6b2c0c7be2048daa9b5527982c29f48062b34d58", "0x57df6092665eb6058DE53939612413ff4B09114E" ], + "lisk": [ + "0x603a538477d44064eA5A5d8C345b4Ff6fca1142a", + "0x2321F1a63A683a1F3634Dbe1CbA0d657D5F56d54", + "0x8f023b4193a6b18C227B4a755f8e28B3D30Ef9a1", + "0x76aE215b11797b32397d878e6f3E65081ff58b13", + "0x50D5a8aCFAe13Dceb217E9a071F6c6Bd5bDB4155" + ], "mantle": [ "0xD9F4e85489aDCD0bAF0Cd63b4231c6af58c26745", "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", diff --git a/config/gaszip.json b/config/gaszip.json index ca5f7da45..f4142d294 100644 --- a/config/gaszip.json +++ b/config/gaszip.json @@ -11,6 +11,7 @@ "gnosis": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "gravity": "0x6Efc6Ead40786bD87A884382b6EA4BcA3C985e99", "linea": "0xA60768b03eB14d940F6c9a8553329B7F9037C91b", + "lisk": "0xA60768b03eB14d940F6c9a8553329B7F9037C91b", "mantle": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "metis": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", "mode": "0x2a37D63EAdFe4b4682a3c28C1c2cD4F109Cc2762", diff --git a/config/networks.json b/config/networks.json index 725fd2ea7..aa190eba7 100644 --- a/config/networks.json +++ b/config/networks.json @@ -323,6 +323,24 @@ "safeWebUrl": "https://app.safe.global/transactions/queue?safe=linea:0xdf61270fDC1A892874Fd3C0143A0A4CBA74F4EF1", "gasZipChainId": 59 }, + "lisk": { + "name": "Lisk", + "chainId": 1135, + "nativeAddress": "0x0000000000000000000000000000000000000000", + "nativeCurrency": "ETH", + "wrappedNativeAddress": "0x4200000000000000000000000000000000000006", + "status": "active", + "type": "mainnet", + "rpcUrl": "https://rpc.api.lisk.com", + "verificationType": "blockscout", + "explorerUrl": "https://blockscout.lisk.com", + "explorerApiUrl": "https://blockscout.lisk.com/api", + "multicallAddress": "0xcA11bde05977b3631167028862bE2a173976CA11", + "safeApiUrl": "https://transaction-lisk.safe.optimism.io/api", + "safeAddress": "0x86E02d7383D6a045848b0a1A842996AC9E943113", + "safeWebUrl": "https://safe.optimism.io/home?safe=lisk:0x86E02d7383D6a045848b0a1A842996AC9E943113", + "gasZipChainId": 238 + }, "mantle": { "name": "mantle", "chainId": 5000, @@ -629,4 +647,4 @@ "safeWebUrl": "", "gasZipChainId": 0 } -} +} \ No newline at end of file diff --git a/config/stargate.json b/config/stargate.json index 9a4f1053b..2a659494b 100644 --- a/config/stargate.json +++ b/config/stargate.json @@ -31,6 +31,7 @@ "kaia": "0x0000000000000000000000000000000000000000", "velas": "0x0000000000000000000000000000000000000000", "linea": "0x1a44076050125825900e736c501f859c50fE728c", + "lisk": "0x0000000000000000000000000000000000000000", "metis": "0x1a44076050125825900e736c501f859c50fE728c", "mode": "0x1a44076050125825900e736c501f859c50fE728c", "mantle": "0x1a44076050125825900e736c501f859c50fE728c", @@ -224,6 +225,7 @@ "bsc-testnet": "0x0000000000000000000000000000000000000000", "lineatest": "0x0000000000000000000000000000000000000000", "linea": "0xeCc19E177d24551aA7ed6Bc6FE566eCa726CC8a9", + "lisk": "0x0000000000000000000000000000000000000000", "metis": "0xeCc19E177d24551aA7ed6Bc6FE566eCa726CC8a9", "mode": "0x0000000000000000000000000000000000000000", "mantle": "0x296F55F8Fb28E498B858d0BcDA06D955B2Cb3f97", @@ -266,6 +268,7 @@ "bsc-testnet": "0x0000000000000000000000000000000000000000", "lineatest": "0x0000000000000000000000000000000000000000", "linea": "0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590", + "lisk": "0x0000000000000000000000000000000000000000", "mantle": "0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590", "metis": "0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590", "scroll": "0x36d4686e19c052787D7f24E6913cEbC025714895", diff --git a/config/tokenwrapper.json b/config/tokenwrapper.json index 50224e167..471e6039a 100644 --- a/config/tokenwrapper.json +++ b/config/tokenwrapper.json @@ -30,6 +30,7 @@ "celo": "0x471ece3750da237f93b8e339c536989b8978a438", "avalanche": "0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7", "linea": "0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f", + "lisk": "0x4200000000000000000000000000000000000006", "blast": "0x4300000000000000000000000000000000000004", "worldchain": "0x4200000000000000000000000000000000000006", "taiko": "0xA51894664A773981C6C112C43ce576f315d5b1B6", diff --git a/deployments/_deployments_log_file.json b/deployments/_deployments_log_file.json index dedd7f6bf..07a30b0ff 100644 --- a/deployments/_deployments_log_file.json +++ b/deployments/_deployments_log_file.json @@ -704,6 +704,20 @@ } ] } + }, + "lisk": { + "production": { + "2.0.0": [ + { + "ADDRESS": "0x57FdfF2e36De6c8a8Cde297B150Ae291132Eae8d", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:23.651Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "DiamondLoupeFacet": { @@ -1398,6 +1412,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xA1a4d577709dC4A70CA38F1D41562fab3aD09D3f", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:24.128Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "OwnershipFacet": { @@ -2091,6 +2119,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x81Ae738700D8f1e5BB2A200584174cDf17Fb5455", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:24.830Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "DexManagerFacet": { @@ -3072,6 +3114,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xE154389c1bAE241F220661131b7AfDc1514C55c7", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:25.125Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "AccessManagerFacet": { @@ -3766,6 +3822,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x314E1E760316050B0D6338bCf3d689b8D301F593", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:25.519Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "WithdrawFacet": { @@ -4446,6 +4516,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xfA009cd56d35AE3BbdF975135b0BAE9b403c7da1", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:25.844Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "PeripheryRegistryFacet": { @@ -5139,6 +5223,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x54ECfbAaeb49c864a9c45C70B785ca6C70c66453", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:26.132Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "LiFiDiamond": { @@ -5807,6 +5905,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:27.951Z", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f11121df7256c40339393b0fb045321022ce4400000000000000000000000057fdff2e36de6c8a8cde297b150ae291132eae8d", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "LiFiDiamondImmutable": { @@ -7532,6 +7644,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xd2B3b3605e630232c13111458Ae3a97d13c8F477", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:26.451Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "HopFacetOptimized": { @@ -9002,6 +9128,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x14Dd70456Bfe4Cd8b605f7A0d24b3A74aCe99713", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:26.777Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "MultichainFacet": { @@ -10882,6 +11022,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x98750e70Cf1313D9702f0f57D399DD0bA05d16E0", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:29.375Z", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000011f11121df7256c40339393b0fb045321022ce44", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "Executor": { @@ -11750,6 +11904,20 @@ } ] } + }, + "lisk": { + "production": { + "2.0.0": [ + { + "ADDRESS": "0xd9318fFE1EbbfA71049A443e623Be566067C9D6B", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:29.736Z", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000098750e70cf1313d9702f0f57d399dd0ba05d16e0", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "FeeCollector": { @@ -12419,6 +12587,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x50D5a8aCFAe13Dceb217E9a071F6c6Bd5bDB4155", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:30.068Z", + "CONSTRUCTOR_ARGS": "0x00000000000000000000000008647cc950813966142a416d40c382e2c5db73bb", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "Receiver": { @@ -13643,6 +13825,20 @@ } ] } + }, + "lisk": { + "production": { + "2.0.2": [ + { + "ADDRESS": "0xD9e3837E42198aaFc13cb51536d7c31f590aD6Fd", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:30.366Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d9318ffe1ebbfa71049a443e623be566067c9d6b00000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "ServiceFeeCollector": { @@ -19205,6 +19401,20 @@ } ] } + }, + "lisk": { + "production": { + "1.1.0": [ + { + "ADDRESS": "0xe6C6A35684308f2DaadbeeA50B62CFEaAFaa407E", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:27.568Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "CalldataVerificationFacet": { @@ -19937,6 +20147,20 @@ } ] } + }, + "lisk": { + "production": { + "1.1.2": [ + { + "ADDRESS": "0x1feB868BF64AdC552E051fB7387681F78b988a81", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:27.218Z", + "CONSTRUCTOR_ARGS": "0x", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "LiFuelFeeCollector": { @@ -20790,6 +21014,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0x8f023b4193a6b18C227B4a755f8e28B3D30Ef9a1", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:30.746Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000c71284231a726a18ac85c94d75f9fe17a185beaf", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "AcrossFacetPacked": { @@ -22062,6 +22300,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x603a538477d44064eA5A5d8C345b4Ff6fca1142a", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:31.141Z", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000004200000000000000000000000000000000000006", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "GasRebateDistributor": { @@ -22744,6 +22996,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xBa713B18c806EcdEEE49FAec623dE2D872192872", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-11-25 10:30:44", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000000000000000000000000000000000000000000000", + "SALT": "", + "VERIFIED": "true" + } + ] + } } }, "StargateFacetV2": { @@ -23894,6 +24160,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x2321F1a63A683a1F3634Dbe1CbA0d657D5F56d54", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:31.571Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "EmergencyPauseFacet": { @@ -24420,6 +24700,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.1": [ + { + "ADDRESS": "0xF6Eff8df65Fc4a4c1528761Aa727b5471956A844", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:28.266Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000d38743b48d26743c0ec6898d699394fbc94657ee", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "AcrossFacetV3": { @@ -24612,6 +24906,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xB5dD83183fD7CCF859b227CA83663a034d5B2f92", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:28.661Z", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000009552a0a6624a23b848060ae5901659cdda1f83f80000000000000000000000004200000000000000000000000000000000000006", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "ReceiverAcrossV3": { @@ -24803,6 +25111,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0xD263a23453CB9A77860ed6393A2B9a55AF70EFAb", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:32.000Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000156cebba59deb2cb23742f70dcb0a11cc775591f000000000000000000000000d9318ffe1ebbfa71049a443e623be566067c9d6b0000000000000000000000009552a0a6624a23b848060ae5901659cdda1f83f800000000000000000000000000000000000000000000000000000000000186a0", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "AcrossFacetPackedV3": { @@ -24983,6 +25305,20 @@ } ] } + }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x90ADbFc03002aaA3d9FEdf2517D593CfD93e6c57", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-02T08:02:29.037Z", + "CONSTRUCTOR_ARGS": "0x0000000000000000000000009552a0a6624a23b848060ae5901659cdda1f83f8000000000000000000000000420000000000000000000000000000000000000600000000000000000000000011f11121df7256c40339393b0fb045321022ce44", + "SALT": "", + "VERIFIED": true + } + ] + } } }, "Permit2Proxy": { @@ -25440,6 +25776,20 @@ ] } }, + "lisk": { + "production": { + "2.0.0": [ + { + "ADDRESS": "0xb40044Bf27c2448e05e1f34ED83Ca4A3DfA54D19", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-04T12:47:31.763Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000a60768b03eb14d940f6c9a8553329b7f9037c91b", + "SALT": "", + "VERIFIED": true + } + ] + } + }, "worldchain": { "production": { "2.0.0": [ @@ -25734,6 +26084,20 @@ ] } }, + "lisk": { + "production": { + "1.0.0": [ + { + "ADDRESS": "0x76aE215b11797b32397d878e6f3E65081ff58b13", + "OPTIMIZER_RUNS": "1000000", + "TIMESTAMP": "2024-12-04T12:47:32.171Z", + "CONSTRUCTOR_ARGS": "0x000000000000000000000000a60768b03eb14d940f6c9a8553329b7f9037c91b0000000000000000000000002321f1a63a683a1f3634dbe1cba0d657d5f56d5400000000000000000000000086e02d7383d6a045848b0a1a842996ac9e943113", + "SALT": "", + "VERIFIED": true + } + ] + } + }, "worldchain": { "production": { "1.0.0": [ diff --git a/deployments/lisk.diamond.json b/deployments/lisk.diamond.json new file mode 100644 index 000000000..dbce21a66 --- /dev/null +++ b/deployments/lisk.diamond.json @@ -0,0 +1,84 @@ +{ + "LiFiDiamond": { + "Facets": { + "0x57FdfF2e36De6c8a8Cde297B150Ae291132Eae8d": { + "Name": "DiamondCutFacet", + "Version": "2.0.0" + }, + "0xA1a4d577709dC4A70CA38F1D41562fab3aD09D3f": { + "Name": "DiamondLoupeFacet", + "Version": "1.0.0" + }, + "0x81Ae738700D8f1e5BB2A200584174cDf17Fb5455": { + "Name": "OwnershipFacet", + "Version": "1.0.0" + }, + "0xfA009cd56d35AE3BbdF975135b0BAE9b403c7da1": { + "Name": "WithdrawFacet", + "Version": "1.0.0" + }, + "0xE154389c1bAE241F220661131b7AfDc1514C55c7": { + "Name": "DexManagerFacet", + "Version": "1.0.1" + }, + "0x314E1E760316050B0D6338bCf3d689b8D301F593": { + "Name": "AccessManagerFacet", + "Version": "1.0.0" + }, + "0x54ECfbAaeb49c864a9c45C70B785ca6C70c66453": { + "Name": "PeripheryRegistryFacet", + "Version": "1.0.0" + }, + "0x14Dd70456Bfe4Cd8b605f7A0d24b3A74aCe99713": { + "Name": "LIFuelFacet", + "Version": "1.0.1" + }, + "0xd2B3b3605e630232c13111458Ae3a97d13c8F477": { + "Name": "GenericSwapFacet", + "Version": "1.0.0" + }, + "0xBa713B18c806EcdEEE49FAec623dE2D872192872": { + "Name": "GenericSwapFacetV3", + "Version": "1.0.1" + }, + "0xe6C6A35684308f2DaadbeeA50B62CFEaAFaa407E": { + "Name": "StandardizedCallFacet", + "Version": "1.1.0" + }, + "0x1feB868BF64AdC552E051fB7387681F78b988a81": { + "Name": "CalldataVerificationFacet", + "Version": "1.1.2" + }, + "0xF6Eff8df65Fc4a4c1528761Aa727b5471956A844": { + "Name": "EmergencyPauseFacet", + "Version": "1.0.1" + }, + "0xB5dD83183fD7CCF859b227CA83663a034d5B2f92": { + "Name": "AcrossFacetV3", + "Version": "1.0.0" + }, + "0x90ADbFc03002aaA3d9FEdf2517D593CfD93e6c57": { + "Name": "AcrossFacetPackedV3", + "Version": "1.0.0" + }, + "0xb40044Bf27c2448e05e1f34ED83Ca4A3DfA54D19": { + "Name": "GasZipFacet", + "Version": "2.0.0" + } + }, + "Periphery": { + "ERC20Proxy": "0x98750e70Cf1313D9702f0f57D399DD0bA05d16E0", + "Executor": "0xd9318fFE1EbbfA71049A443e623Be566067C9D6B", + "FeeCollector": "0x50D5a8aCFAe13Dceb217E9a071F6c6Bd5bDB4155", + "GasZipPeriphery": "0x76aE215b11797b32397d878e6f3E65081ff58b13", + "LiFiDEXAggregator": "0x2321F1a63A683a1F3634Dbe1CbA0d657D5F56d54", + "LiFuelFeeCollector": "0x8f023b4193a6b18C227B4a755f8e28B3D30Ef9a1", + "Permit2Proxy": "", + "ReceiverAcrossV3": "0xD263a23453CB9A77860ed6393A2B9a55AF70EFAb", + "Receiver": "0xD9e3837E42198aaFc13cb51536d7c31f590aD6Fd", + "ReceiverStargateV2": "", + "RelayerCelerIM": "", + "TokenWrapper": "0x603a538477d44064eA5A5d8C345b4Ff6fca1142a" + } + } +} \ No newline at end of file diff --git a/deployments/lisk.json b/deployments/lisk.json new file mode 100644 index 000000000..ee8533b6e --- /dev/null +++ b/deployments/lisk.json @@ -0,0 +1,28 @@ +{ + "DiamondCutFacet": "0x57FdfF2e36De6c8a8Cde297B150Ae291132Eae8d", + "DiamondLoupeFacet": "0xA1a4d577709dC4A70CA38F1D41562fab3aD09D3f", + "GenericSwapFacetV3": "0xBa713B18c806EcdEEE49FAec623dE2D872192872", + "OwnershipFacet": "0x81Ae738700D8f1e5BB2A200584174cDf17Fb5455", + "DexManagerFacet": "0xE154389c1bAE241F220661131b7AfDc1514C55c7", + "AccessManagerFacet": "0x314E1E760316050B0D6338bCf3d689b8D301F593", + "WithdrawFacet": "0xfA009cd56d35AE3BbdF975135b0BAE9b403c7da1", + "PeripheryRegistryFacet": "0x54ECfbAaeb49c864a9c45C70B785ca6C70c66453", + "GenericSwapFacet": "0xd2B3b3605e630232c13111458Ae3a97d13c8F477", + "LIFuelFacet": "0x14Dd70456Bfe4Cd8b605f7A0d24b3A74aCe99713", + "CalldataVerificationFacet": "0x1feB868BF64AdC552E051fB7387681F78b988a81", + "StandardizedCallFacet": "0xe6C6A35684308f2DaadbeeA50B62CFEaAFaa407E", + "LiFiDiamond": "0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE", + "EmergencyPauseFacet": "0xF6Eff8df65Fc4a4c1528761Aa727b5471956A844", + "AcrossFacetV3": "0xB5dD83183fD7CCF859b227CA83663a034d5B2f92", + "AcrossFacetPackedV3": "0x90ADbFc03002aaA3d9FEdf2517D593CfD93e6c57", + "ERC20Proxy": "0x98750e70Cf1313D9702f0f57D399DD0bA05d16E0", + "Executor": "0xd9318fFE1EbbfA71049A443e623Be566067C9D6B", + "FeeCollector": "0x50D5a8aCFAe13Dceb217E9a071F6c6Bd5bDB4155", + "Receiver": "0xD9e3837E42198aaFc13cb51536d7c31f590aD6Fd", + "LiFuelFeeCollector": "0x8f023b4193a6b18C227B4a755f8e28B3D30Ef9a1", + "TokenWrapper": "0x603a538477d44064eA5A5d8C345b4Ff6fca1142a", + "LiFiDEXAggregator": "0x2321F1a63A683a1F3634Dbe1CbA0d657D5F56d54", + "ReceiverAcrossV3": "0xD263a23453CB9A77860ed6393A2B9a55AF70EFAb", + "GasZipFacet": "0xb40044Bf27c2448e05e1f34ED83Ca4A3DfA54D19", + "GasZipPeriphery": "0x76aE215b11797b32397d878e6f3E65081ff58b13" +} \ No newline at end of file diff --git a/foundry.toml b/foundry.toml index beb127594..f613dae73 100644 --- a/foundry.toml +++ b/foundry.toml @@ -42,6 +42,7 @@ gravity = "${ETH_NODE_URI_GRAVITY}" immutablezkevm = "${ETH_NODE_URI_IMMUTABLEZKEVM}" kaia = "${ETH_NODE_URI_KAIA}" linea = "${ETH_NODE_URI_LINEA}" +lisk = "${ETH_NODE_URI_LISK}" moonbeam = "${ETH_NODE_URI_MOONBEAM}" moonriver = "${ETH_NODE_URI_MOONRIVER}" nova = "${ETH_NODE_URI_NOVA}" @@ -89,6 +90,7 @@ gravity = { key = "${GRAVITY_ETHERSCAN_API_KEY}", url = "https://explorer.gravit immutablezkevm = { key = "${IMMUTABLEZKEVM_ETHERSCAN_API_KEY}", url = "https://explorer.immutable.com/api", chain = "13371", verifier = "blockscout" } kaia = { key = "${KAIA_ETHERSCAN_API_KEY}", url = "https://api-cypress.klaytnscope.com/api", chain = "8217", verifier = "blockscout" } linea = { key = "${LINEA_ETHERSCAN_API_KEY}", url = "https://api.lineascan.build/api", chain = "59144" } +lisk = { key = "${LISK_ETHERSCAN_API_KEY}", url = "https://blockscout.lisk.com/api", chain = "1135", verifier = "blockscout" } mantle = { key = "${MANTLE_ETHERSCAN_API_KEY}", url = "https://api.routescan.io/v2/network/mainnet/evm/5000/etherscan", chain = "5000" } metis = { key = "${METIS_ETHERSCAN_API_KEY}", url = "https://api.routescan.io/v2/network/mainnet/evm/1088/etherscan", chain = "1088" } mode = { key = "${MODE_ETHERSCAN_API_KEY}", url = "https://api.routescan.io/v2/network/mainnet/evm/34443/etherscan", chain = "34443" } diff --git a/networks b/networks index 498fbd496..af8e0eedb 100644 --- a/networks +++ b/networks @@ -16,6 +16,7 @@ gravity immutablezkevm kaia linea +lisk mantle metis mode diff --git a/script/deploy/_targetState.json b/script/deploy/_targetState.json index 3e0f65e09..cb50b4b72 100644 --- a/script/deploy/_targetState.json +++ b/script/deploy/_targetState.json @@ -1376,7 +1376,6 @@ } } }, - "rootstocks": {}, "cronos": { "production": { "LiFiDiamond": { diff --git a/script/deploy/healthCheck.ts b/script/deploy/healthCheck.ts index 7300eca46..f0b7794eb 100644 --- a/script/deploy/healthCheck.ts +++ b/script/deploy/healthCheck.ts @@ -16,11 +16,10 @@ import { } from 'viem' import { Network, + networks, getViemChainForNetworkName, type NetworksObject, } from '../utils/viemScriptHelpers' -import data from '../../config/networks.json' -const networks: NetworksObject = data as NetworksObject const SAFE_THRESHOLD = 3 @@ -65,10 +64,6 @@ const main = defineCommand({ }, }, async run({ args }) { - const { getViemChainForNetworkName, networks } = await import( - '../utils/viemScriptHelpers' - ) - if ((await $`${louperCmd}`.exitCode) !== 0) { const answer = await consola.prompt( 'Louper CLI is required but not installed. Would you like to install it now?', @@ -180,7 +175,7 @@ const main = defineCommand({ $.quiet = true const facetsResult = - await $`${louperCmd} inspect diamond -a ${diamondAddress} -n ${chainNameMappings[network]} --json` + await $`${louperCmd} inspect diamond -a ${diamondAddress} -n ${network} --json` const registeredFacets = JSON.parse(facetsResult.stdout).facets.map( (f: { name: string }) => f.name diff --git a/script/deploy/safe/propose-to-safe.ts b/script/deploy/safe/propose-to-safe.ts index 6a3239a02..e6331a02d 100644 --- a/script/deploy/safe/propose-to-safe.ts +++ b/script/deploy/safe/propose-to-safe.ts @@ -10,7 +10,12 @@ import { } from '@safe-global/safe-core-sdk-types' import * as chains from 'viem/chains' import { getSafeUtilityContracts, safeAddresses, safeApiUrls } from './config' -import { getViemChainForNetworkName } from '../../utils/viemScriptHelpers' +import { + NetworksObject, + getViemChainForNetworkName, +} from '../../utils/viemScriptHelpers' +import data from '../../../config/networks.json' +const networks: NetworksObject = data as NetworksObject import consola from 'consola' const retry = async (func: () => Promise, retries = 3): Promise => { @@ -69,12 +74,12 @@ const main = defineCommand({ const config: SafeApiKitConfig = { chainId: BigInt(chain.id), - txServiceUrl: safeApiUrls[args.network.toLowerCase()], + txServiceUrl: networks[args.network.toLowerCase()].safeApiUrl, } const safeService = new SafeApiKit(config) - const safeAddress = safeAddresses[args.network.toLowerCase()] + const safeAddress = networks[args.network.toLowerCase()].safeAddress const rpcUrl = args.rpcUrl || chain.rpcUrls.default.http[0] const provider = new ethers.JsonRpcProvider(rpcUrl) diff --git a/script/utils/fetch-missing-deployments.ts b/script/utils/fetch-missing-deployments.ts index 72d4ab3a9..3e8ed5243 100644 --- a/script/utils/fetch-missing-deployments.ts +++ b/script/utils/fetch-missing-deployments.ts @@ -80,8 +80,9 @@ async function updateDeploymentLogs(network: string) { ADDRESS: contractAddress, OPTIMIZER_RUNS: data.result[0].Runs || 0, TIMESTAMP: new Date().toISOString(), - CONSTRUCTOR_ARGS: - `0x${data.result[0].ConstructorArguments}` || '0x', + CONSTRUCTOR_ARGS: data.result[0].ConstructorArguments + ? normalizeBytes(data.result[0].ConstructorArguments) + : '0x', SALT: '', VERIFIED: true, }, @@ -92,7 +93,6 @@ async function updateDeploymentLogs(network: string) { } } catch (error) { console.error(`Error processing ${contractName}:`, error) - continue } } @@ -105,6 +105,11 @@ async function updateDeploymentLogs(network: string) { } } +const normalizeBytes = (bytes: string): string => { + if (bytes.startsWith('0x')) return bytes + return `0x${bytes}` +} + // Get network from command line arguments const network = process.argv[2] if (!network) { diff --git a/script/utils/viemScriptHelpers.ts b/script/utils/viemScriptHelpers.ts index 357febe82..cbcdae240 100644 --- a/script/utils/viemScriptHelpers.ts +++ b/script/utils/viemScriptHelpers.ts @@ -30,7 +30,7 @@ const colors = { red: '\x1b[31m', green: '\x1b[32m', } -const networks: NetworksObject = networksConfig +export const networks: NetworksObject = networksConfig export const getViemChainForNetworkName = (networkName: string): Chain => { const network = networks[networkName]