mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-08-27 04:11:08 +00:00
Public accounts' pre-transaction values no longer need to be part of the circuit's proven public output. Materialization already replays public_diffs against live sequencer state, never the witnessed pre-state, and proof-internal consistency has nothing left to check once the field isn't part of the output at all. Duplicate/inconsistent witnessing was already structurally impossible via the circuit's own post_states tracking, independent of whether pre_state was exported, so no new in-circuit assertion is needed to compensate. Drop the field from PrivacyPreservingCircuitOutput and Message; reimplement Message::public_account_ids() from deduped public_diffs account ids. Update every downstream mirror (indexer protocol/FFI, explorer UI, mock service) to the same id-only shape, and rebuild the guest ELF, program artifacts, and prebuilt sequencer fixture to match the changed journal layout.
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.