panurus

EVM Token Contracts

Solidity sources for the EVM network driver (Approach 2), built with Foundry.

Layout

The cross-impl gate

test/statedelta_digest_fixture.json carries two golden vectors produced by the Go side and independently validated against ethers v6 (test/eip712_check.js):

test/EIP712.t.sol asserts the Solidity library reproduces every expected value. Go, ethers, and Solidity agreeing on both shapes is the gate everything else builds on. If you change any frozen type, the fixture must be regenerated by the Go side, re-validated against ethers, and this suite re-run — never edit expected values by hand.

Build and test

# one-time: fetch forge-std (vendored as a git submodule, pinned by foundry.lock)
git submodule update --init --recursive

forge build
forge test
forge fmt --check

# optional: independent ethers validation of the fixture
npm install ethers@6 && node test/eip712_check.js test/statedelta_digest_fixture.json

Constraint

Nothing in the Go driver may link go-ethereum (license; enforced by ../depguard_test.go). Tooling here (forge/anvil) is for contract build and test only, never linked into the driver binary.