Skip to content

verify/: bytecode-proven deployment verification reports - #223

Merged
kasperpawlowski merged 10 commits into
masterfrom
feat/verify-reports-v2
Jul 25, 2026
Merged

verify/: bytecode-proven deployment verification reports#223
kasperpawlowski merged 10 commits into
masterfrom
feat/verify-reports-v2

Conversation

@kasperpawlowski

Copy link
Copy Markdown
Collaborator

Adds verify/ — per-chain deployed-code verification for every allowlisted contract:

  • On-chain runtime bytecode proven equal to a commit-pinned local build (metadata stripped, immutables masked); block explorers are never in the trust path. 334/335 bytecode-proven + 1 canonical (mainnet EUL), zero waivers, all 17 chains.
  • Each deployment is diffed against its component's audited baseline — the fixes-included state of the component's most recent full audit — so every deployed source delta beyond audited code appears as a real diff with its provenance.
  • Reports lead with attention items, then product-sectioned tables (core lending protocol / Euler Earn / EulerSwap) with a concise what-changed column per contract.
  • EVault modules and the EulerSwap V2 management implementation are unpacked from their implementations via public immutables and proven from the same pins.
  • Inputs: verify/manifest.json (SHA-only provenance), verify/audits.json (audit registry), verify/baselines.json (component baselines with derivations). Generated by euler-verifier (PR P2/P3: provenance manifests, component audit baselines, per-chain reports euler-verifier#41).

Reproduce: run the engine against these inputs; every pin resolves from public history (including the deployment-linea, deployment-linea-periphery, and deployment-mainnet-reul branches).

Test plan:

  • validate-manifests + completeness green across 17 chains
  • every report regenerated from the committed inputs
  • CI verification gate (verify-pr.yml) lands as a follow-up commit on this PR

@kasperpawlowski
kasperpawlowski force-pushed the feat/verify-reports-v2 branch 4 times, most recently from 94acea1 to b6e04ad Compare July 25, 2026 13:13
…orts

Per-chain deployed-code verification: every allowlisted contract's on-chain
runtime bytecode proven equal to a commit-pinned local build (explorer never
in the trust path), then diffed against its component's audited baseline —
the fixes-included state of the component's most recent full audit
(verify/baselines.json, with derivations). Reports lead with attention items
(waivers, post-audit findings) and show every deployed source delta beyond
audited code as a real diff. Includes EVault module and EulerSwapManagement
unpacking with embedded-immutable cross-checks, the bridged-EUL proofs, and
the canonical mainnet EUL provenance note.
@kasperpawlowski
kasperpawlowski force-pushed the feat/verify-reports-v2 branch from b6e04ad to 7ac6842 Compare July 25, 2026 13:14
Validates verify/ manifests (schema, SHA-only pins, audits integrity) and
address<->manifest completeness on every PR touching addresses/ or verify/,
then bytecode-verifies all entries of the changed chains against their
pinned commits using the euler-verifier engine (pinned by commit SHA).
Drop the three legacy-product EulerEarn entries (the legacy codebase is
archived at euler-legacy-xyz/euler-earn-legacy and is not part of any
deployed component's baseline).
Superseded by verify-pr.yml: the legacy workflow cloned euler-verifier
unpinned, ran the since-removed Python pipeline, and swallowed failures.
verify-chains-manifest.yml (EulerChains.json consistency) is unrelated and
stays.
verify-pr.yml -> deployed-code-verification.yml (workflow 'Deployed Code
Verification', job 'deployed-code-verification');
verify-chains-manifest.yml -> chains-manifest-consistency.yml (display name
and job id unchanged so any existing required-check reference stays valid).
@kasperpawlowski
kasperpawlowski requested a review from Seranged July 25, 2026 16:30
@kasperpawlowski
kasperpawlowski merged commit 60a7ddd into master Jul 25, 2026
1 check passed
@kasperpawlowski
kasperpawlowski deleted the feat/verify-reports-v2 branch July 25, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants