Overview
Program Inputs
The program inputs contain all information required to verify the correct execution of on-chain blobs in EV-RETH and update the trusted state in the ZKISM.
BlockExecInput
| Name |
Type |
Description |
| header_raw |
[u8] |
The Celestia Block Header |
| dah |
DataAvailabilityHeader |
|
| blobs_raw |
[u8] |
Encoded blobs from Celestia Namespace |
| pub_key |
[u8] |
Sequencer Pubkey |
| namespace |
Namespace |
Celestia Namespace |
| proofs |
[NamespaceProofs] |
Namespace inclusion and exclusion proofs |
| executor_inputs |
[EthClientExecutorInput] |
EV-RETH Executor Inputs |
| trusted_height |
u64 |
Trusted EV Block Height |
| trusted_root |
[u8;32] |
Trusted EV Execution State Root |
BatchExecInput
| Name |
Type |
Description |
| blocks |
[BlockExecInput] |
Inputs required to execute a range of blocks |
Program Outputs
State: Encapsulate the input and output for each state transition step
| Name |
Type |
Description |
| celestia_header_hash |
[u8;32] |
the new Celestia header hash after applying the blocks |
| celestia_height |
u64 |
the new Celestia height after applying the blocks |
| trusted_height |
u64 |
the trusted EV height in the ISM |
| trusted_state_root |
[u8;32] |
the trusted EV state root in the ISM |
| height |
u64 |
the new EV height after applying the blocks |
| state_root |
[u8;32] |
the new EV state root after applying the blocks |
| namespace |
[u8;29] |
the Celestia namespace that contains the data blobs which themselves contain EV blocks |
| public_key |
[u8;32] |
the sequencer's public key for verification |
BatchExecOutput: Circuit outputs used for on-chain verification
| Name |
Type |
Description |
| state_len_bytes |
[u8;8] |
Little endian encoded bytes of the length of the State |
| state |
State |
The starting point of the state transition |
| new_state_len_bytes |
[u8;8] |
Little endian encoded bytes of the length of the new State |
| new_state |
State |
The result of the state transition |