Validator Bandwidth & Prover Interface
def prove_payload(self: Prover, new_payload_request: NewPayloadRequest) -> Hash256:
"""
Return ``Hash256`` of the new payload request tree hash root if and only if ``new_payload_request`` is valid.
"""
execution_payload = new_payload_request.execution_payload
parent_beacon_block_root = new_payload_request.parent_beacon_block_root
execution_requests = new_payload_request.execution_requests
if b"" in execution_payload.transactions:
return False
assert self.is_valid_block_hash(execution_payload, parent_beacon_block_root, execution_requests)
assert self.is_valid_versioned_hashes(new_payload_request)
assert self.notify_new_payload(execution_payload, parent_beacon_block_root)
new_payload_request_root = new_payload_request.hash_tree_root()
return new_payload_request_root
def verify_payload(self: Verifier, proof_data: ByteList[MAX_PROOF_SIZE], new_payload_request_root: Hash256) -> bool:
"""
Return ``True`` if and only if the new payload request tree hash root is valid.
"""
return self.verify_proof(proof_data, new_payload_request_root)