Skip to content

Commit a73f8bd

Browse files
authored
Merge branch 'main' into dependabot/cargo/cargo-8056535635
2 parents 8bf0c64 + c646132 commit a73f8bd

49 files changed

Lines changed: 5021 additions & 973 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/contracts.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
description: This skill should be used when the user asks about "ev-reth contracts", "FeeVault", "AdminProxy", "fee bridging to Celestia", "Hyperlane integration", "Foundry deployment scripts", "genesis allocations", or wants to understand how base fees are redirected and bridged.
2+
description: This skill should be used when the user asks about "ev-reth contracts", "FeeVault", "AdminProxy", "Permit2", "fee distribution", "Foundry deployment scripts", "genesis allocations", or wants to understand how base fees are redirected and distributed.
33
---
44

55
# Contracts Onboarding
@@ -9,13 +9,15 @@ description: This skill should be used when the user asks about "ev-reth contrac
99
The contracts live in `contracts/` and use Foundry for development. There are two main contracts:
1010

1111
1. **AdminProxy** (`src/AdminProxy.sol`) - Bootstrap contract for admin addresses at genesis
12-
2. **FeeVault** (`src/FeeVault.sol`) - Collects base fees, bridges to Celestia via Hyperlane (cross-chain messaging protocol)
12+
2. **FeeVault** (`src/FeeVault.sol`) - Collects base fees and distributes them between configured recipients
13+
3. **Permit2** (`lib/permit2`) - Uniswap's canonical token approval manager, deployed at genesis via `ev-deployer` (no Foundry deploy script — bytecode is embedded in Rust)
1314

1415
## Key Files
1516

1617
### Contract Sources
1718
- `contracts/src/AdminProxy.sol` - Transparent proxy pattern for admin control
18-
- `contracts/src/FeeVault.sol` - Fee collection and bridging logic
19+
- `contracts/src/FeeVault.sol` - Fee collection and distribution logic
20+
- `contracts/lib/permit2` - Uniswap Permit2 submodule (bytecode used by ev-deployer)
1921

2022
### Deployment Scripts
2123
- `contracts/script/DeployFeeVault.s.sol` - FeeVault deployment with CREATE2
@@ -34,9 +36,12 @@ The AdminProxy contract provides a bootstrap mechanism for setting admin address
3436
### FeeVault
3537
The FeeVault serves as the destination for redirected base fees (instead of burning them). Key responsibilities:
3638
- Receive base fees from block production
37-
- Bridge accumulated fees to Celestia via Hyperlane
39+
- Distribute accumulated fees between configured recipients
3840
- Manage withdrawal permissions
3941

42+
### Permit2
43+
Uniswap's canonical token approval manager deployed at genesis. Unlike AdminProxy and FeeVault, Permit2 has no Foundry deploy script — its bytecode is embedded directly in the Rust `ev-deployer` (`bin/ev-deployer/src/contracts/permit2.rs`), which patches EIP-712 immutables (chain ID, domain separator) at genesis time.
44+
4045
## Connection to Rust Code
4146

4247
The contracts integrate with ev-reth through:

.github/workflows/add-to-project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
steps:
1919
- name: Add to project
2020
id: add
21-
uses: actions/add-to-project@v1.0.2
21+
uses: actions/add-to-project@v2.0.0
2222
with:
2323
project-url: https://github.com/orgs/evstack/projects/7
2424
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "contracts/lib/forge-std"]
22
path = contracts/lib/forge-std
33
url = https://github.com/foundry-rs/forge-std
4+
[submodule "contracts/lib/permit2"]
5+
path = contracts/lib/permit2
6+
url = https://github.com/Uniswap/permit2

0 commit comments

Comments
 (0)