From 97f0bfb8354f4208b58c5492964123c53e2eccbf Mon Sep 17 00:00:00 2001 From: Nicolas Lecouflet Date: Wed, 18 Jun 2025 14:30:56 +0200 Subject: [PATCH 1/2] feat: multichain script --- .env.example | 2 - .github/workflows/ci-deep.yml | 6 +- .github/workflows/ci.yml | 6 +- .github/workflows/coverage.yml | 6 +- .gitignore | 1 + bun.lockb | Bin 207752 -> 207760 bytes foundry.toml | 111 +++++++++++++--------------- package.json | 2 +- scripts/DistributionCreator.s.sol | 106 ++++++++++++++++++++++++++ scripts/utils/Base.s.sol | 7 +- test/unit/DistributionCreator.t.sol | 2 +- 11 files changed, 177 insertions(+), 72 deletions(-) diff --git a/.env.example b/.env.example index 058cde75..50871ed5 100644 --- a/.env.example +++ b/.env.example @@ -11,10 +11,8 @@ DEPLOY_SALT="" # Localhost (chainId: X) LOCALHOST_NODE_URI="http://127.0.0.1:8545" -LOCALHOST_MNEMONIC="" LOCALHOST_ETHERSCAN_API_KEY="" # (chainId: ) _NODE_URI="" -_MNEMONIC="" _ETHERSCAN_API_KEY="" diff --git a/.github/workflows/ci-deep.yml b/.github/workflows/ci-deep.yml index f445eced..5c5cfed2 100644 --- a/.github/workflows/ci-deep.yml +++ b/.github/workflows/ci-deep.yml @@ -89,9 +89,9 @@ jobs: - name: Run Foundry tests run: bun foundry:test env: - ETH_NODE_URI_OPTIMISM: ${{ secrets.ETH_NODE_URI_OPTIMISM }} - ETH_NODE_URI_ARBITRUM: ${{ secrets.ETH_NODE_URI_ARBITRUM }} - ETH_NODE_URI_MAINNET: ${{ secrets.ETH_NODE_URI_MAINNET }} + OPTIMISM_NODE_URI: ${{ secrets.ETH_NODE_URI_OPTIMISM }} + ARBITRUM_NODE_URI: ${{ secrets.ETH_NODE_URI_ARBITRUM }} + BASE_NODE_URI: ${{ secrets.ETH_NODE_URI_MAINNET }} FOUNDRY_FUZZ_RUNS: ${{ github.event.inputs.fuzzRuns || '10000' }} - name: 'Add test summary' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d786e7e6..55341953 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,9 +72,9 @@ jobs: run: bun foundry:test env: FOUNDRY_FUZZ_RUNS: '5000' - ETH_NODE_URI_OPTIMISM: ${{ secrets.ETH_NODE_URI_OPTIMISM }} - ETH_NODE_URI_ARBITRUM: ${{ secrets.ETH_NODE_URI_ARBITRUM }} - ETH_NODE_URI_MAINNET: ${{ secrets.ETH_NODE_URI_MAINNET }} + OPTIMISM_NODE_URI: ${{ secrets.ETH_NODE_URI_OPTIMISM }} + ARBITRUM_NODE_URI: ${{ secrets.ETH_NODE_URI_ARBITRUM }} + BASE_NODE_URI: ${{ secrets.ETH_NODE_URI_MAINNET }} - name: 'Add test summary' run: | diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0126b89b..9d32172e 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -24,9 +24,9 @@ jobs: - name: 'Generate the coverage report using the unit and the integration tests' run: 'bun ci:coverage' env: - ETH_NODE_URI_OPTIMISM: ${{ secrets.ETH_NODE_URI_OPTIMISM }} - ETH_NODE_URI_ARBITRUM: ${{ secrets.ETH_NODE_URI_ARBITRUM }} - ETH_NODE_URI_MAINNET: ${{ secrets.ETH_NODE_URI_MAINNET }} + OPTIMISM_NODE_URI: ${{ secrets.ETH_NODE_URI_OPTIMISM }} + ARBITRUM_NODE_URI: ${{ secrets.ETH_NODE_URI_ARBITRUM }} + BASE_NODE_URI: ${{ secrets.ETH_NODE_URI_MAINNET }} - name: 'Upload coverage report to Codecov' uses: 'codecov/codecov-action@v3' diff --git a/.gitignore b/.gitignore index d18d8467..2ea17176 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ bin /out /zkout /cache-forge +/transactions diff --git a/bun.lockb b/bun.lockb index 197a6492bff4ca48892e9a2429390a63d0f125a2..86781f774ab645e5df285239f6e2cd063c91b9e2 100755 GIT binary patch delta 365 zcmeCU&NBgs^pr#w7HO?|box$MT-pJhLZ^~~IpLdMvQPSO4QGEer3k zO$@m8am`byQVCJv7fasFvxuGc;zA2U{f%RF9mf2H#Z5J8hgTP#<=FnTfU#tn*aCJY z1`vqhhtOO$#YM?_)3e!`47bl7BzU{VK4 zZ||SLw2+ZA1FH1LcFRdjITN)_jP%VcEKQSB4UCM^($b90QcRN!(o&L)jT6lbQ!G-G aQ;aN(k`oOL5-p|&PG^$d{#u!NE;|5qKX?@Y delta 366 zcmbPmou}hE&jdZCl`+Yw(i4rUPh55?uyXaD??3JMk^b3_lbPP>c3gKqvg(J{#()Av zz9aG$%!~{mP?GSGdGk3%sTxL=$$^UMlLZ_(H%rdzx#SSEdChil>-*7*j;?i`Q6{!s zs3$36@AP*kP2Pw7o5yW6=O?58hZE|Bl}Y=>Ki5uFPg|WP-Bjdf+O=7v=8DKumW1t3 z3m8kL3C&<<0^1Y9523kirsuOW8E#*~&a{J_vjHl)VS6e+Q!ppz0||(#Bij#3FmVfT z{?LH%ou*&aU~*;EfNhAQ__->6O)qD%*~UM4O0@0%uOv! i42+Wv%nXc-lPnC9lBO#jW|En{U 0) { + console.log(""); + console.log("Failed chains details:"); + for (uint256 i = 0; i < failedCount; i++) { + console.log( + "- %s (Chain ID: %s) - Reason: %s", + failedChains[i].network, + failedChains[i].chainId, + failedChains[i].reason + ); + } + } + + console.log(""); + console.log("Multichain fee setting completed!"); + } +} diff --git a/scripts/utils/Base.s.sol b/scripts/utils/Base.s.sol index 6f23005b..eaf29281 100644 --- a/scripts/utils/Base.s.sol +++ b/scripts/utils/Base.s.sol @@ -58,6 +58,11 @@ abstract contract BaseScript is Script { vm.stopBroadcast(); } + modifier fork(string memory network) { + vm.createSelectFork(vm.rpcUrl(network)); + _; + } + function _serializeJson( uint256 chainId, address to, @@ -89,6 +94,6 @@ abstract contract BaseScript is Script { } string memory finalJson = vm.serializeBytes(json, "data", data); - vm.writeJson(finalJson, "./transaction.json"); + vm.writeJson(finalJson, string.concat("./transactions/", vm.toString(chainId), ".json")); } } diff --git a/test/unit/DistributionCreator.t.sol b/test/unit/DistributionCreator.t.sol index 0f67b16c..437dd833 100644 --- a/test/unit/DistributionCreator.t.sol +++ b/test/unit/DistributionCreator.t.sol @@ -950,7 +950,7 @@ contract DistributionCreatorForkTest is Test { DistributionCreator public creator; function setUp() public { - vm.createSelectFork(vm.envString("ETH_NODE_URI_ARBITRUM")); + vm.createSelectFork(vm.envString("ARBITRUM_NODE_URI")); creator = DistributionCreator(0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd); } From f8d937d9b162b81367f636298a2de49e7368c188 Mon Sep 17 00:00:00 2001 From: Nicolas Lecouflet Date: Wed, 25 Jun 2025 16:44:35 +0200 Subject: [PATCH 2/2] feat: bump sdk --- bun.lockb | Bin 207760 -> 207760 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 86781f774ab645e5df285239f6e2cd063c91b9e2..84413a0d4d327df0c23dd96dffae37d8d9171394 100755 GIT binary patch delta 226 zcmV<803H93*9?%?43I7$X;bPLPxYv22l(iLCHKyGO~3$PY5Rbi@erXAx;Xi0u}*p+ z0S2?lA$NNaI`=@k?*p(e;*?uNRCfpalTe+Q0V|VHAt#d%K?$=No{Z8!*t1eWZN)^) zF0nG8RZK`&7-_syy}-)2gp)Utyc+Q()}DSQvDB0lS_x`=2;>G+R=fh93q65^>1YBk zP{g@dx8-mFG`ImXw;Cw|l=><&FE}(bH90dgHZ?OaW@0!wV`5`4Vlg;oHZ(XmH#9Y5 cIALLAH#9IaGM6F40vwm1lmZU70we>D2S;#Ps{jB1 delta 224 zcmV<603ZL5*9?%?43I7$6`^t}s^ZJsR$gYnEOA0~aGY1O=?9YdCXr8M*G6riu}*p+ zlVBkTlMo^Zv)CbMdzZYJ0T7cAA_$XMosa=4lTjfjlMq1(vl*U@(m({|gJZvmXkMvT zOSE>dyDKZzo=zIHq1*