Skip to content

docs(grants): Circle Arc application evidence — live CCTP demos, real-attestation fixture#151

Open
dadadave80 wants to merge 2 commits into
devfrom
docs/circle-cctp-demo-evidence
Open

docs(grants): Circle Arc application evidence — live CCTP demos, real-attestation fixture#151
dadadave80 wants to merge 2 commits into
devfrom
docs/circle-cctp-demo-evidence

Conversation

@dadadave80

Copy link
Copy Markdown
Owner

Circle Arc grant — application evidence package

Everything a reviewer needs to verify the "CCTP + USDC currently integrated" claim, before the video is even played.

The fixture is real now

test/fixtures/cctp/arc-to-base-hook-v2.json was a placeholder since #148; it now holds the captured Iris message + attestation from the 2026-07-17 live run (Arc burn 0x45071a…5ac39 → Base relay 0xc41fbe…badfc, block 44258756). The message is 420 bytes = 376 (CCTP v2 burn) + 44 (Lattice hook envelope) — the byte math independently confirms the envelope rode inside the attested message.

test_Fork_RelayWithHookCreditsVaultFromRealAttestation now runs green (previously skipped): it forks Base Sepolia one block before the real relay, replays the actual attested bytes through the live destination diamond's relayMessageWithHook, asserts the beneficiary is credited exactly 1 USDC, and asserts a second relay reverts on the consumed nonce. The receive path is proven against real attested bytes, reproducible by anyone with a Base RPC.

Broadcast evidence committed (ENS-M1 precedent)

  • 3× hook-demo multichain setups (broadcast/multi/CCTPHookDemo.s.sol-…) — the third is the documented run (hub 0x3446…)
  • hook relay logs (broadcast/CCTPHookDemo.s.sol/84532/)
  • Arc-hub transfer demo: setups + relays on all three chains (broadcast/CCTPUSDCDemo.s.sol/, broadcast/multi/CCTPUSDCDemo…)
  • Excluded: the probe-generated multi/CCTPHookDemo.s.sol-latest (local-anvil data) and a --resume-duplicate dir

Docs

  • README gains "Live cross-chain USDC demos (Circle CCTP v2 · Arc testnet)" — both demos explained, every address/tx an explorer link (Base links point at Blockscout, which reads the Sourcify verification), one-command reproduce.
  • PROGRESS.md restructured as a per-grant index (ENS content untouched) + a Circle Arc evidence table: adapter permalinks, hub/diamond/vault, USDC delivered to both destinations (mint txs), the one-tx mint+hook proof with the decoded Credited event, the replayable fixture, broadcast paths.

Gates: fixture fork test green against live Base; full deterministic suite unaffected (docs + fixture + logs only).

…broadcast logs

Application-evidence package for the Circle 2026 Cohort 2 (Arc) grant:

- test/fixtures/cctp/arc-to-base-hook-v2.json: the placeholder becomes a
  REAL capture from the 2026-07-17 live run — the 420-byte Iris message
  (376 CCTP v2 burn + 44 Lattice hook envelope) and 130-byte attestation
  for Arc burn 0x45071a…5ac39, relayed on Base in 0xc41fbe…badfc (block
  44258756). test_Fork_RelayWithHookCreditsVaultFromRealAttestation now
  RUNS (was skipping): pinned-fork replay through the live Base diamond
  credits exactly 1 USDC and the second relay reverts (nonce consumed).

- broadcast evidence committed (ENS-M1 precedent): the three real hook-
  demo multichain setups, the hook relay logs (84532), and the Arc-hub
  transfer demo logs (setups + relays on 11155111/84532/5042002). The
  probe-generated multi/-latest and a resume-duplicate dir are excluded.

- README: 'Live cross-chain USDC demos' section — both demos, all
  addresses/txs as explorer links (Sourcify-aware: Base links point at
  Blockscout), one-command reproduce.

- PROGRESS.md: restructured as a per-grant index (ENS section unchanged)
  plus a 'Circle Arc Grant' evidence table: adapter permalinks, hub /
  diamond / vault, USDC deliveries to both destinations, the one-tx
  mint+hook proof with the decoded Credited event, the replayable
  fixture, and broadcast-log paths.
Per operator direction: the evidence set is the -latest broadcast of each
step (ENS-M1 precedent), not the per-run timestamped history — 7 files:
hook setup (multi) + hook relay, transfer setup (multi + Arc per-chain) +
both destination relays + the legacy Sepolia burn.

broadcast/multi/CCTPHookDemo.s.sol-latest is restored from the last real
testnet run's timestamped copy (Arc hub 0x3446…, the documented one) —
the on-disk file had been overwritten by a local two-anvil probe.

.gitignore now excludes timestamped run copies (run-1*.json and
multi/*.s.sol-1*) so future demo runs never clutter git status; -latest
names never match either pattern.
@dadadave80

Copy link
Copy Markdown
Owner Author

Second commit 3d07ede: evidence trimmed to -latest only (per operator direction, matching the ENS-M1 precedent).

Tracked evidence is now exactly 7 files — the latest broadcast of each step: hook setup (multi/CCTPHookDemo.s.sol-latest, restored from the real testnet run after a local probe had overwritten the on-disk copy — verified to contain the documented Arc hub 0x3446…) + hook relay, transfer setup (multi + Arc per-chain) + both destination relays + the legacy Sepolia burn.

.gitignore now excludes per-run timestamped copies (run-1*.json, multi/*.s.sol-1*), so future demo runs leave git status clean — this also silenced the pre-existing untracked ENS run-file noise.

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.

1 participant