From 9bb38f04010978292be17b04bba531720b59087b Mon Sep 17 00:00:00 2001 From: Tan Date: Tue, 18 Aug 2026 16:58:58 +0700 Subject: [PATCH 1/7] docs: record C09A E5 closeout evidence --- docs/research/C09A-E5.md | 175 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 docs/research/C09A-E5.md diff --git a/docs/research/C09A-E5.md b/docs/research/C09A-E5.md new file mode 100644 index 0000000..2be4b71 --- /dev/null +++ b/docs/research/C09A-E5.md @@ -0,0 +1,175 @@ +# C09A-E5 — PREVRANDAO Analyzer Closeout + +Status: Closeout candidate — final CI and independent review required + +Risk: R1 documentation/governance closeout + +Base branch: `main` + +Base SHA: `bc0b00b88b295cfaa10f4b976b852229a5ffab8d` + +Last reviewed: 2026-08-18 + +## 1. Outcome + +C09 and C09A have completed the approved bounded Build path for the duplicate +PREVRANDAO compatibility problem. + +The production result is one shared private Solidity/Foundry analyzer with two +temporary public compatibility shells: + +```text +wallet/PREVRANDAO_NOT_SUPPORTED +bridge/NO_PREVRANDAO_RELAY_SELECTION +``` + +The old broad PREVRANDAO and blanket `mixHash` keyword heuristics are no longer +the public emission path. Public findings require both bounded same-function +behavior evidence and exact retained Foundry Arc Testnet ownership for the same +concrete contract. + +The compatibility inventory remains: + +```text +19 known / 16 default / 7 wallet / 4 canonical +``` + +Both public IDs remain default-critical and non-canonical during the temporary +compatibility period. + +## 2. Delivered phases + +### C09 research and decision + +- C09-R1: parser, premise, ownership, dependency, and public-surface audit. +- C09-R2: complete Solidity/source and deployment-association corpus. +- C09-R3-A: bounded Solidity source/value-flow feasibility. +- C09-R3-B: bounded Foundry `run-latest.json` Arc ownership feasibility. +- C09-D: Build selected with one private analyzer and two compatibility shells. + +### C09A implementation + +- E1 — PR #63, merge `d829278f26669f6190a516cb3c0efed9aca7f49c`: + production `@solidity-parser/parser@0.20.2`, lazy parser loading, and private + source analysis. +- E2 — PR #65, merge `5d368d7ac0d75a00c9d6dfb65496304040a738f7`: + bounded same-function value flow, supported sinks, deterministic routing, and + scan-scoped cache behavior. +- E3 — PR #68, merge `a4d3a5cb5ea6eb92fd18f84c01e4c2c61ac54903`: + exact Foundry ownership and composed private eligibility. +- E4 — PR #67, merge `bc0b00b88b295cfaa10f4b976b852229a5ffab8d`: + public compatibility-shell migration, removal of broad keyword emission, + finding/remediation updates, demo coverage, catalog/taxonomy updates, and + installed-package regression coverage. + +## 3. Final analyzer contract + +A reportable record is intentionally bounded to reviewed evidence: + +- supported `.sol` source; +- exact PREVRANDAO source family; +- same-function bounded value dependency; +- approved selection, authorization, eligibility, allocation, recipient, winner, + ordering, relay, relayer, validator, sequencer, or committee sink; +- one deterministic shell owner; +- exact concrete contract identity; +- retained Foundry broadcast ownership from + `broadcast/