Files
logos-execution-zone/lez/programs
Marvin Jones 73f1295e76 fix(lee,lez): PDA-addressed sequencer_stake dispatch, restore first-sight PDA authorization, rebuild artifacts
sequencer_stake was still using the legacy AccountId::from(program_id) bijection
for its own dispatch address, the mover chained call, and its config account's
program_owner — broken now that genesis-seeded programs dispatch at their
loader-PDA address. self_program_id is now supplied by the caller per
instruction (matching the ping_sender/bridge_lock pattern) instead of recovered
via bijection from self_account_id, and mover_program_id becomes
mover_account_id, supplied as a real dispatch address.

The privacy-preserving circuit's execution_state.rs lost its first-sight PDA
authorization handling (caller-seed matching, family-binding, and the
"mask caller-seeded public PDAs unauthorized before export" step) in the
caller_image_id migration; restored, adapted to the new signature.

Rebuild every artifact and the prebuilt test fixture to match.
2026-08-22 21:14:29 -04:00
..

Programs

This crate serves two purposes at once:

  1. Provide one entrypoint for cargo risczero build to build guest binaries used in LEZ in one shot.
  2. Provide access to the built binaries wrapped with Program type.

Binaries

This crate contains binaries taken from sub-directories: one per each program. This binaries are meant to be compiled with cargo risczero build. No other use is intended for them.

Library

You may import this crate as a library but it will only make sense if you enable artifacts feature flag. Enabling this flag will make crate expect that binaries where already built and put in the right place (use just build-artifacts for that).

Why not just risc0_build::embed_methods() ?

Because this will either provide non-deterministic guest build or requires Docker. And forcing to use Docker to build the project is not an option for us especially because we also build Docker images for our services, which would mean we would have to call docker from docker (and this is not really feasible).

risc0_build::embed_methods() works well when you don't need deterministic build or Docker is not a problem. This is the case for our tests and we use it there.