Files
logos-execution-zone/test_fixtures
Marvin Jones 0ef2d61fee refactor(lee): migrate program self/caller identity from ProgramId to AccountId
ProgramInput/ProgramOutput.self_program_id/caller_program_id, and the
dispatcher's CallerData.program_id, now carry AccountId (renamed to
self_account_id/caller_account_id) instead of ProgramId. These fields
are self-reported/cross-checked dispatch bookkeeping, not RISC0 image
identity, and AccountId already crosses the guest/host boundary this
way via every pre_state.account_id.

ProgramId is now confined to what's actually image-id-keyed:
env::verify, Program.id (from compute_image_id()), and the
for_public_pda/for_private_pda derivation formulas, each recovering
the real ProgramId from AccountId via the existing bijection exactly
where needed.

Rebuilds artifacts and the prebuilt sequencer db fixture to match.
2026-08-14 16:43:59 -04:00
..

test_fixtures

Shared test/bench fixtures that spin up bedrock + sequencer + indexer + wallet end-to-end.

Library

TestContext drives the full stack for integration tests and benches:

let ctx = TestContext::new().await?;              // fast: restores the prebuilt db dump
let ctx = TestContext::builder()
    .from_scratch()                                // apply genesis + claim supply live
    .with_genesis(actions)                         // custom genesis (implies from_scratch)
    .disable_indexer()
    .build().await?;

TestContext::new() restores fixtures/prebuilt_sequencer_db.dump (genesis + initial-supply claim blocks) instead of re-applying genesis and re-proving the private claims, then syncs the wallet. Use from_scratch() to build genesis live.

Binary

regenerate_test_fixture regenerates that dump (needs Docker):

just regenerate-test-fixture   # RISC0_DEV_MODE=1 cargo run -p test_fixtures --bin regenerate_test_fixture

Rerun and commit fixtures/prebuilt_sequencer_db.dump after changing genesis, the default accounts, block format, or initial state.