16void set_snapshot_in_cols(
const AppendOnlyTreeSnapshot& snapshot, std::vector<std::vector<FF>>& cols,
size_t row_idx)
18 cols[0][row_idx] = snapshot.root;
19 cols[1][row_idx] = snapshot.nextAvailableLeafIndex;
22void set_gas_in_cols(
const Gas& gas, std::vector<std::vector<FF>>& cols,
size_t row_idx)
24 cols[0][row_idx] = gas.daGas;
25 cols[1][row_idx] = gas.l2Gas;
28void set_gas_fees_in_cols(
const GasFees& gas_fees, std::vector<std::vector<FF>>& cols,
size_t row_idx)
30 cols[0][row_idx] = gas_fees.feePerDaGas;
31 cols[1][row_idx] = gas_fees.feePerL2Gas;
34void set_public_call_request_in_cols(
const PublicCallRequest& request,
35 std::vector<std::vector<FF>>& cols,
38 cols[0][row_idx] = request.msgSender;
39 cols[1][row_idx] = request.contractAddress;
40 cols[2][row_idx] =
static_cast<uint8_t
>(request.isStaticCall);
41 cols[3][row_idx] = request.calldataHash;
45 std::vector<std::vector<FF>>& cols,
46 size_t array_start_row_idx)
48 for (
size_t i = 0; i < requests.size(); ++i) {
49 size_t row = array_start_row_idx + i;
50 set_public_call_request_in_cols(requests[i], cols, row);
56 std::vector<std::vector<FF>>& cols,
57 size_t array_start_row_idx)
59 for (
size_t i = 0; i < arr.size(); ++i) {
60 size_t row = array_start_row_idx + i;
61 cols[0][row] = arr[i];
67 std::vector<std::vector<FF>>& cols,
68 size_t array_start_row_idx)
70 for (
size_t i = 0; i < arr.size(); ++i) {
71 size_t row = array_start_row_idx + i;
72 cols[0][row] = arr[i].message.recipient;
73 cols[1][row] = arr[i].message.content;
74 cols[2][row] = arr[i].contractAddress;
78void set_public_logs_in_cols(
const PublicLogs& public_logs,
79 std::vector<std::vector<FF>>& cols,
80 size_t array_start_row_idx)
83 cols[0][array_start_row_idx] = public_logs.length;
85 for (
size_t i = 0; i < public_logs.length; ++i) {
92 std::vector<std::vector<FF>>& cols,
93 size_t array_start_row_idx)
95 for (
size_t i = 0; i < writes.size(); ++i) {
96 size_t row = array_start_row_idx + i;
97 cols[0][row] = writes[i].leafSlot;
98 cols[1][row] = writes[i].value;
102void set_protocol_contracts_in_cols(
const ProtocolContracts& protocol_contracts,
103 std::vector<std::vector<FF>>& cols,
104 size_t protocol_contracts_start_row_idx)
106 set_field_array_in_cols(protocol_contracts.derivedAddresses, cols, protocol_contracts_start_row_idx);
118 msgpack::unpack(
reinterpret_cast<const char*
>(
data.data()),
data.size()).get().convert(inputs);
125 msgpack::unpack(
reinterpret_cast<const char*
>(
data.data()),
data.size()).get().convert(inputs);
157 set_snapshot_in_cols(
159 set_snapshot_in_cols(
161 set_snapshot_in_cols(
171 set_gas_fees_in_cols(
192 set_public_call_request_array_in_cols(
194 set_public_call_request_array_in_cols(
196 set_public_call_request_in_cols(
238 set_snapshot_in_cols(
240 set_snapshot_in_cols(
242 set_snapshot_in_cols(
244 set_snapshot_in_cols(
261 set_field_array_in_cols(
263 set_field_array_in_cols(
265 set_l2_to_l1_msg_array_in_cols(
267 set_public_logs_in_cols(
269 set_public_data_writes_in_cols(
283 std::vector<FF> flat;
284 for (
const auto& col : columns) {
286 throw std::invalid_argument(
"Public inputs column size does not match the expected max length.");
288 flat.insert(flat.end(), col.begin(), col.end());
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_EFFECTIVE_GAS_FEES_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX
#define AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACTS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX
#define FLAT_PUBLIC_LOGS_HEADER_LENGTH
#define AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PROVER_ID_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_BLOCK_NUMBER_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_APP_LOGIC_CALLS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_SLOT_NUMBER_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_VERSION_ROW_IDX
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_TEARDOWN_CALL_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_TIMESTAMP_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_FEES_PER_GAS_ROW_IDX
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_SETUP_CALLS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_CHAIN_ID_ROW_IDX
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX
#define AVM_NUM_PUBLIC_INPUT_COLUMNS
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_PRIORITY_FEES_PER_GAS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX
#define AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX
const std::vector< FF > data
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
uint32_t publicDataWrites
std::array< FF, MAX_NULLIFIERS_PER_TX > nullifiers
std::array< PublicDataWrite, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX > publicDataWrites
std::array< ScopedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_TX > l2ToL1Msgs
std::array< FF, MAX_NOTE_HASHES_PER_TX > noteHashes
GasFees maxPriorityFeesPerGas
AztecAddress feeRecipient
std::array< ScopedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_TX > l2ToL1Msgs
std::array< FF, MAX_NULLIFIERS_PER_TX > nullifiers
std::array< FF, MAX_NOTE_HASHES_PER_TX > noteHashes
AppendOnlyTreeSnapshot noteHashTree
AppendOnlyTreeSnapshot nullifierTree
AppendOnlyTreeSnapshot l1ToL2MessageTree
AppendOnlyTreeSnapshot publicDataTree