aztec-nr - noir_aztec::protocol::blob_data

Function create_tx_start_marker

pub fn create_tx_start_marker(
    num_blob_fields: u32,
    array_lengths: TxEffectArrayLengths,
    private_logs_length: u32,
    public_logs_length: u32,
    contract_class_log_length: u32,
    revert_code: u8,
) -> Field

Create the first field that marks the start of a tx. It's a concatenation of: TX_START_PREFIX | num_note_hashes | num_nullifiers | num_l2_to_l1_msgs | num_public_data_writes | num_private_logs | private_logs_length | public_logs_length | contract_class_log_length | revert_code | num_blob_fields

TX_START_PREFIX occupies the bytes up to the point where num_note_hashes begins. num_blob_fields occupies 4 bytes, allowing a maximum of 2 ** 32 fields. public_logs_length occupies 4 bytes, allowing a maximum of 2 ** 32 fields. revert_code occupies 1 byte. Each of the remaining values occupies 2 bytes, allowing a maximum of 2 ** 16 elements each. A test below ensures they do not exceed these limits.