Main Proof Request
Last updated
const ssz_def_t* op_ssz_verification_type(op_ssz_type_t type) {
switch (type) {
case OP_SSZ_VERIFY_REQUEST:
return &C4_REQUEST_CONTAINER;class C4OpRequest(Container):
version : ByteVector [4] # the [domain, major, minor, patch] version of the request, domain=6 = OP-Stack
data : Union [ # the data to prove (OP-Stack reuses Ethereum's data union for compatibility)
None, #
Bytes32, # the blockhash which is used for blockhash proof
Bytes[1073741824], # the bytes of the data
Uint256, # the balance of an account
EthTxData, # the transaction data
EthReceiptData, # the transaction receipt
List [EthReceiptDataLog, 1024], # result of eth_getLogs
EthBlockData, # the block data
EthProofData, # the result of an eth_getProof
EthSimulationResult, # the result of an colibri_simulateTransaction
EthBlockHeaderData, # compact block header data
List [EthReceiptData, 2048]] # all receipts of a block
proof : Union [ # the proof of the data (OP-Stack specific proof types)
None, #
OpAccountProof, # a Proof of an Account like eth_getBalance or eth_getStorageAt
OpTransactionProof, # a Proof of a Transaction like eth_getTransactionByHash
OpReceiptProof, # a Proof of a TransactionReceipt
List [OpLogsBlock, 256], # a Proof for multiple Receipts and txs
OpCallProof, # a Proof of a Call like eth_call
OpBlockProof] # Proof for BlockData
sync_data : Union [ # the sync data containing proofs for the transition between the two periods (OP-Stack reuses Ethereum's sync_data union)
None, #
C4EthLcSyncdata, # Light Client Sync Data
C4EthZkSyncdata, # ZK Proof Sync Data (legacy SP1 v5, 260-byte groth16 proof)
C4EthZkSyncdataV6] # ZK Proof Sync Data (SP1 v6 "Hypercube", 356-byte groth16 proof)