Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
ad8e096
feat: add FlashblockIndex contract
xenoliss Mar 3, 2026
ca8553c
refactor: make FlashblockIndex upgradeable and emit FlashblockIndexUp…
xenoliss Mar 3, 2026
a0a7b8c
feat: setup rust bindings crate
xenoliss Mar 3, 2026
9d223e5
refactor: move bindings into bindings/go and bindings/rust
xenoliss Mar 4, 2026
364e9ce
chore: strip binding artifacts and add justfile recipes for bindings
xenoliss Mar 4, 2026
de2e8ee
chore: update semver-lock snapshot
xenoliss Mar 4, 2026
6097477
fix: use robust PascalCase to snake_case conversion in bindings-add
xenoliss Mar 5, 2026
5ee149c
chore: remove Cargo.lock from library crate
xenoliss Mar 5, 2026
cc50730
chore: add CI step to verify Rust bindings compile
xenoliss Mar 5, 2026
a460315
chore: minor change + cleaning
xenoliss Mar 17, 2026
6dcf6aa
chore: remove FlashblockIndex contract
xenoliss Mar 17, 2026
7f575f7
chore: regenerate snapshots
xenoliss Mar 17, 2026
2274336
chore: fix snapshots/semver-lock.json
xenoliss Mar 17, 2026
9b2f9f2
chore: remove go bindings
xenoliss Mar 17, 2026
221e08b
refactor: switch Rust bindings generation to forge bind and remove Go…
xenoliss Mar 17, 2026
69d1c8e
chore: regenerate rust bindings
xenoliss Mar 18, 2026
5c18fc9
chore: add rust bindings CI debug logging
xenoliss Mar 18, 2026
a2db6be
chore: add targeted CI debug logging for rust bindings
xenoliss Mar 19, 2026
670da1e
chore: inline rust bindings CI debug step
xenoliss Mar 19, 2026
c6d34c6
chore: split rust bindings CI debug steps
xenoliss Mar 19, 2026
170a8db
chore: force rust bindings overwrite in CI debug step
xenoliss Mar 19, 2026
106c17a
chore: add rust bindings CI artifact diagnostics
xenoliss Mar 19, 2026
930bf8f
fix: hash CI artifact metadata as JSON
xenoliss Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,59 @@ jobs:
just semver-lock-no-build
git diff --exit-code snapshots/semver-lock.json

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Check Rust bindings
id: rust-bindings-check
continue-on-error: true
run: |
forge --version
just --version
rustc --version
cargo --version
select_regex="^($(git ls-files ':(glob)src/**/*.sol' | sed 's#^.*/##; s#\.sol$##' | sort -u | paste -sd'|' -))$"
forge bind \
--bindings-path bindings/rust \
--crate-name base-contracts-bindings \
--select "$select_regex" \
--skip-build
cd bindings/rust && cargo check

- name: Debug Rust bindings mismatch
if: steps.rust-bindings-check.outcome == 'failure'
run: |
echo "== Recursive submodule status =="
git submodule status --recursive

echo "== bindings/rust status =="
git status --short -- bindings/rust

echo "== AdminFaucetAuthModule artifact diagnostics =="
python3 - <<'PY'
import hashlib
import json
from pathlib import Path

path = Path("forge-artifacts/AdminFaucetAuthModule.sol/AdminFaucetAuthModule.json")
data = json.loads(path.read_text())

bytecode = data["bytecode"]["object"]
deployed = data["deployedBytecode"]["object"]
metadata = data.get("metadata", "")
metadata_json = json.dumps(metadata, sort_keys=True)

print(f"artifact_path={path}")
print(f"bytecode_len={len(bytecode)}")
print(f"deployed_bytecode_len={len(deployed)}")
print(f"bytecode_sha256={hashlib.sha256(bytecode.encode()).hexdigest()}")
print(f"deployed_bytecode_sha256={hashlib.sha256(deployed.encode()).hexdigest()}")
print(f"metadata_sha256={hashlib.sha256(metadata_json.encode()).hexdigest()}")
print(f"bytecode_suffix={bytecode[-120:]}")
print(f"deployed_bytecode_suffix={deployed[-120:]}")
PY
exit 1

- name: Run Forge tests
run: just test
id: test
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Artifacts and Cache
artifacts
!bindings/rust/artifacts/
forge-artifacts
target
Cargo.lock
cache
broadcast
kout-proofs
Expand Down
9 changes: 0 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,3 @@ test:
.PHONY: clean-lib
clean-lib:
rm -rf lib

.PHONY: bindings
bindings:
go install github.com/ethereum/go-ethereum/cmd/abigen@v1.15.8
forge build
mkdir -p bindings
abigen --abi out/BalanceTracker.sol/BalanceTracker.abi.json --pkg bindings --type BalanceTracker --out bindings/balance_tracker.go
abigen --abi out/FeeDisburser.sol/FeeDisburser.abi.json --pkg bindings --type FeeDisburser --out bindings/fee_disburser.go
cd bindings && go mod tidy
956 changes: 0 additions & 956 deletions bindings/balance_tracker.go

This file was deleted.

916 changes: 0 additions & 916 deletions bindings/fee_disburser.go

This file was deleted.

35 changes: 0 additions & 35 deletions bindings/go.mod

This file was deleted.

212 changes: 0 additions & 212 deletions bindings/go.sum

This file was deleted.

8 changes: 8 additions & 0 deletions bindings/rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "base-contracts-bindings"
version = "0.1.0"
edition = "2021"

[dependencies]
alloy = { version = "1.0", features = ["sol-types", "contract"] }
serde = { version = "1.0", features = ["derive"] }
Loading
Loading