From 540c0968168ca687ffb61564ccb52bc4cc3df3b4 Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Thu, 16 Oct 2025 12:34:15 +0200 Subject: [PATCH 1/6] build: use soldeer --- .gitignore | 6 +----- Cargo.lock | 11 ----------- contracts/foundry.toml | 40 ++++++++++++++++++++++++++-------------- contracts/soldeer.lock | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 30 deletions(-) create mode 100644 contracts/soldeer.lock diff --git a/.gitignore b/.gitignore index e435869d..86b3ae0b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ cache/ out/ target/ deps/ +dependencies/ node_modules/ .vscode/* .idea/ @@ -19,8 +20,3 @@ contracts/broadcast/*/31337/ .history *.nockma *.bkp - - -# Added by cargo - -/target diff --git a/Cargo.lock b/Cargo.lock index 85ee39d9..de09e7b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6130,17 +6130,6 @@ dependencies = [ "time", ] -[[package]] -name = "simple_transfer" -version = "1.0.0-rc.2" -dependencies = [ - "alloy", - "evm_protocol_adapter_bindings", - "sha2", - "simple-transfer-app", - "tokio", -] - [[package]] name = "slab" version = "0.4.11" diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 21cfc9c6..2485fc90 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -1,5 +1,11 @@ # Full reference https://github.com/foundry-rs/foundry/tree/master/crates/config [profile.default] +src = "src" +libs = ["lib", "dependencies"] +out = "out" +script = "script" +test = "test" + fs_permissions = [ { access = "read", path = "./test/examples/transactions/test_tx_reg_01_01.bin" }, { access = "read", path = "./test/examples/transactions/test_tx_reg_05_01.bin" }, @@ -18,18 +24,16 @@ fs_permissions = [ { access = "read", path = "./test/examples/transactions/burn.bin" }, ] - auto_detect_remappings = false remappings = [ - "forge-std/=lib/forge-std/src/", - "@openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", - "openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", # Used within `risc0-ethereum` - "@solady/=lib/solady/src", - "@risc0-ethereum/=lib/risc0-ethereum/contracts/src/", - "@elliptic-curve-solidity/=lib/elliptic-curve-solidity/", + "forge-std/=dependencies/forge-std-1.11.0/src/", + "@openzeppelin-contracts/=dependencies/@openzeppelin-contracts-5.4.0/", + "openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.4.0/", + "@risc0-ethereum/=dependencies/risc0-ethereum-3.0.1/contracts/src/", + "@elliptic-curve-solidity/=dependencies/elliptic-curve-solidity-0.2.5/", + "@solady/=dependencies/solady-0.1.26/src/", ] - # Deterministic deployment settings (https://book.getfoundry.sh/guides/deterministic-deployments-using-create2#configuring-your-foundrytoml) cbor_metadata = false bytecode_hash = "none" @@ -46,12 +50,6 @@ gas_reports = [ optimizer = true via_ir = true optimizer_runs = 10_000 - -src = "src" -libs = ["lib"] -out = "out" -script = "script" -test = "test" allow_internal_expect_revert = true [fuzz] @@ -77,3 +75,17 @@ arbitrum-sepolia = "https://arb-sepolia.g.alchemy.com/v2/${API_KEY_ALCHEMY}" base = "https://base-mainnet.g.alchemy.com/v2/${API_KEY_ALCHEMY}" base-sepolia = "https://base-sepolia.g.alchemy.com/v2/${API_KEY_ALCHEMY}" localhost = "http://localhost:8545" + +[dependencies] +forge-std = "1.11.0" +"@openzeppelin-contracts" = "5.4.0" +solady = "0.1.26" +risc0-ethereum = { version = "3.0.1", git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } +elliptic-curve-solidity = { version = "0.2.5", git = "https://github.com/witnet/elliptic-curve-solidity", rev = "347547890840fd501809dfe0b855206407136ec0" } + +[soldeer] +recursive_deps = true +remappings_generate = false +remappings_regenerate = true +remappings_version = false +remappings_prefix = "" diff --git a/contracts/soldeer.lock b/contracts/soldeer.lock new file mode 100644 index 00000000..7355b342 --- /dev/null +++ b/contracts/soldeer.lock @@ -0,0 +1,32 @@ +[[dependencies]] +name = "@openzeppelin-contracts" +version = "5.4.0" +url = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/5_4_0_19-07-2025_08:59:41_contracts.zip" +checksum = "3dd38f17610dba4602bd008ee2cb551e51e97d7b4ce04e1ffdf853da832942fa" +integrity = "4eb0ef219d10ab5a5708adaae1132dc0a93ab6a193378486e842d606c989ff3e" + +[[dependencies]] +name = "elliptic-curve-solidity" +version = "0.2.5" +git = "https://github.com/witnet/elliptic-curve-solidity" +rev = "347547890840fd501809dfe0b855206407136ec0" + +[[dependencies]] +name = "forge-std" +version = "1.11.0" +url = "https://soldeer-revisions.s3.amazonaws.com/forge-std/1_11_0_09-10-2025_06:23:22_forge-std-1.11.zip" +checksum = "0290ef84c693dc9086f98f6a9b4a69dc5c2b6aa1cfe10a989bd1def1a456c099" +integrity = "84aa7d32f8c7329468cf16f31f0f74e68072e634fdbde98f3bb00c6b136103b2" + +[[dependencies]] +name = "risc0-ethereum" +version = "3.0.1" +git = "https://github.com/risc0/risc0-ethereum.git" +rev = "365e7b2db4f620fa256580c27558d2623362b9ae" + +[[dependencies]] +name = "solady" +version = "0.1.26" +url = "https://soldeer-revisions.s3.amazonaws.com/solady/0_1_26_25-08-2025_15:30:06_solady.zip" +checksum = "9872ac7cfd32c1eba32800508a1325c49f4a4aa8c6f670454db91971a583e26b" +integrity = "5da4b5ca9cbad98812a4b75ad528ff34c72a0b84433204be6d1420c81de1d6ff" From 7920fa2c3680e99099267489350313c452d637d9 Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Thu, 16 Oct 2025 12:47:15 +0200 Subject: [PATCH 2/6] revert: remove submodules --- .gitmodules | 16 ---------------- contracts/lib/elliptic-curve-solidity | 1 - contracts/lib/forge-std | 1 - contracts/lib/openzeppelin-contracts | 1 - contracts/lib/risc0-ethereum | 1 - contracts/lib/solady | 1 - 6 files changed, 21 deletions(-) delete mode 160000 contracts/lib/elliptic-curve-solidity delete mode 160000 contracts/lib/forge-std delete mode 160000 contracts/lib/openzeppelin-contracts delete mode 160000 contracts/lib/risc0-ethereum delete mode 160000 contracts/lib/solady diff --git a/.gitmodules b/.gitmodules index 1661719e..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,16 +0,0 @@ -[submodule "lib/forge-std"] - path = contracts/lib/forge-std - url = https://github.com/foundry-rs/forge-std -[submodule "lib/openzeppelin-contracts"] - path = contracts/lib/openzeppelin-contracts - url = https://github.com/openzeppelin/openzeppelin-contracts -[submodule "lib/risc0-ethereum"] - path = contracts/lib/risc0-ethereum - url = https://github.com/risc0/risc0-ethereum -[submodule "lib/elliptic-curve-solidity"] - path = contracts/lib/elliptic-curve-solidity - url = https://github.com/witnet/elliptic-curve-solidity - branch = master -[submodule "contracts/lib/solady"] - path = contracts/lib/solady - url = https://github.com/vectorized/solady diff --git a/contracts/lib/elliptic-curve-solidity b/contracts/lib/elliptic-curve-solidity deleted file mode 160000 index 34754789..00000000 --- a/contracts/lib/elliptic-curve-solidity +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 347547890840fd501809dfe0b855206407136ec0 diff --git a/contracts/lib/forge-std b/contracts/lib/forge-std deleted file mode 160000 index 8bbcf6e3..00000000 --- a/contracts/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8bbcf6e3f8f62f419e5429a0bd89331c85c37824 diff --git a/contracts/lib/openzeppelin-contracts b/contracts/lib/openzeppelin-contracts deleted file mode 160000 index c64a1edb..00000000 --- a/contracts/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c64a1edb67b6e3f4a15cca8909c9482ad33a02b0 diff --git a/contracts/lib/risc0-ethereum b/contracts/lib/risc0-ethereum deleted file mode 160000 index 365e7b2d..00000000 --- a/contracts/lib/risc0-ethereum +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 365e7b2db4f620fa256580c27558d2623362b9ae diff --git a/contracts/lib/solady b/contracts/lib/solady deleted file mode 160000 index acd959aa..00000000 --- a/contracts/lib/solady +++ /dev/null @@ -1 +0,0 @@ -Subproject commit acd959aa4bd04720d640bf4e6a5c71037510cc4b From 4cc915160d872896071162c62d112c58a92305f8 Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Thu, 16 Oct 2025 14:26:27 +0200 Subject: [PATCH 3/6] ci: add soldeer install step to ci --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b747045c..56658139 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,10 @@ jobs: with: cache: true + - name: Install dependencies + run: forge soldeer install + working-directory: ./contracts + - name: Show Foundry version run: forge --version From 7432e80454c3b7579e46904a27fc7f77a790f5ba Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Fri, 24 Oct 2025 10:42:03 +0200 Subject: [PATCH 4/6] refactor: restructure foundry.toml --- contracts/foundry.toml | 48 ++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 2485fc90..b1d70c35 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -24,15 +24,6 @@ fs_permissions = [ { access = "read", path = "./test/examples/transactions/burn.bin" }, ] -auto_detect_remappings = false -remappings = [ - "forge-std/=dependencies/forge-std-1.11.0/src/", - "@openzeppelin-contracts/=dependencies/@openzeppelin-contracts-5.4.0/", - "openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.4.0/", - "@risc0-ethereum/=dependencies/risc0-ethereum-3.0.1/contracts/src/", - "@elliptic-curve-solidity/=dependencies/elliptic-curve-solidity-0.2.5/", - "@solady/=dependencies/solady-0.1.26/src/", -] # Deterministic deployment settings (https://book.getfoundry.sh/guides/deterministic-deployments-using-create2#configuring-your-foundrytoml) cbor_metadata = false @@ -52,6 +43,31 @@ via_ir = true optimizer_runs = 10_000 allow_internal_expect_revert = true +auto_detect_remappings = false + +remappings = [ + "forge-std/=dependencies/forge-std-1.11.0/src/", + "@openzeppelin-contracts/=dependencies/@openzeppelin-contracts-5.4.0/", + "openzeppelin/contracts/=dependencies/@openzeppelin-contracts-5.4.0/", + "@risc0-ethereum/=dependencies/risc0-ethereum-3.0.1/contracts/src/", + "@elliptic-curve-solidity/=dependencies/elliptic-curve-solidity-0.2.5/", + "@solady/=dependencies/solady-0.1.26/src/", +] + +[dependencies] +forge-std = "1.11.0" +"@openzeppelin-contracts" = "5.4.0" +solady = "0.1.26" +risc0-ethereum = { version = "3.0.1", git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } +elliptic-curve-solidity = { version = "0.2.5", git = "https://github.com/witnet/elliptic-curve-solidity", rev = "347547890840fd501809dfe0b855206407136ec0" } + +[soldeer] +recursive_deps = true +remappings_generate = false +remappings_regenerate = true +remappings_version = false +remappings_prefix = "" + [fuzz] runs = 1_000 @@ -75,17 +91,3 @@ arbitrum-sepolia = "https://arb-sepolia.g.alchemy.com/v2/${API_KEY_ALCHEMY}" base = "https://base-mainnet.g.alchemy.com/v2/${API_KEY_ALCHEMY}" base-sepolia = "https://base-sepolia.g.alchemy.com/v2/${API_KEY_ALCHEMY}" localhost = "http://localhost:8545" - -[dependencies] -forge-std = "1.11.0" -"@openzeppelin-contracts" = "5.4.0" -solady = "0.1.26" -risc0-ethereum = { version = "3.0.1", git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } -elliptic-curve-solidity = { version = "0.2.5", git = "https://github.com/witnet/elliptic-curve-solidity", rev = "347547890840fd501809dfe0b855206407136ec0" } - -[soldeer] -recursive_deps = true -remappings_generate = false -remappings_regenerate = true -remappings_version = false -remappings_prefix = "" From 88c2ba769476595141a29b00a5c52a3a56ad0be4 Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Fri, 24 Oct 2025 11:01:24 +0200 Subject: [PATCH 5/6] style: use quotes uniformly --- contracts/foundry.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/foundry.toml b/contracts/foundry.toml index b1d70c35..b2833663 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -55,11 +55,11 @@ remappings = [ ] [dependencies] -forge-std = "1.11.0" +"forge-std" = "1.11.0" "@openzeppelin-contracts" = "5.4.0" -solady = "0.1.26" -risc0-ethereum = { version = "3.0.1", git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } -elliptic-curve-solidity = { version = "0.2.5", git = "https://github.com/witnet/elliptic-curve-solidity", rev = "347547890840fd501809dfe0b855206407136ec0" } +"solady" = "0.1.26" +"risc0-ethereum" = { version = "3.0.1", git = "https://github.com/risc0/risc0-ethereum.git", tag = "v3.0.1" } +"elliptic-curve-solidity" = { version = "0.2.5", git = "https://github.com/witnet/elliptic-curve-solidity", rev = "347547890840fd501809dfe0b855206407136ec0" } [soldeer] recursive_deps = true From 7293652d4195dbe05cbac53dd6d93b599a2e733f Mon Sep 17 00:00:00 2001 From: Michael Heuer Date: Fri, 24 Oct 2025 12:38:12 +0200 Subject: [PATCH 6/6] chore: remove foundry.lockfile --- contracts/foundry.lock | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 contracts/foundry.lock diff --git a/contracts/foundry.lock b/contracts/foundry.lock deleted file mode 100644 index cf4193d4..00000000 --- a/contracts/foundry.lock +++ /dev/null @@ -1,26 +0,0 @@ -{ - "lib/elliptic-curve-solidity": { - "branch": { - "name": "master", - "rev": "347547890840fd501809dfe0b855206407136ec0" - } - }, - "lib/forge-std": { - "rev": "3b20d60d14b343ee4f908cb8079495c07f5e8981" - }, - "lib/openzeppelin-contracts": { - "rev": "e4f70216d759d8e6a64144a9e1f7bbeed78e7079" - }, - "lib/permit2": { - "rev": "cc56ad0f3439c502c246fc5cfcc3db92bb8b7219" - }, - "lib/risc0-ethereum": { - "rev": "365e7b2db4f620fa256580c27558d2623362b9ae" - }, - "lib/solady": { - "tag": { - "name": "v0.1.26", - "rev": "acd959aa4bd04720d640bf4e6a5c71037510cc4b" - } - } -} \ No newline at end of file