15void set_snapshot_in_cols(
const AppendOnlyTreeSnapshot& snapshot, std::vector<std::vector<FF>>& cols,
size_t row_idx)
17 cols[0][row_idx] = snapshot.root;
18 cols[1][row_idx] = snapshot.nextAvailableLeafIndex;
21void set_gas_in_cols(
const Gas& gas, std::vector<std::vector<FF>>& cols,
size_t row_idx)
23 cols[0][row_idx] = gas.daGas;
24 cols[1][row_idx] = gas.l2Gas;
27void set_gas_fees_in_cols(
const GasFees& gas_fees, std::vector<std::vector<FF>>& cols,
size_t row_idx)
29 cols[0][row_idx] = gas_fees.feePerDaGas;
30 cols[1][row_idx] = gas_fees.feePerL2Gas;
33void set_public_call_request_in_cols(
const PublicCallRequest& request,
34 std::vector<std::vector<FF>>& cols,
37 cols[0][row_idx] = request.msgSender;
38 cols[1][row_idx] = request.contractAddress;
39 cols[2][row_idx] =
static_cast<uint8_t
>(request.isStaticCall);
40 cols[3][row_idx] = request.calldataHash;
44 std::vector<std::vector<FF>>& cols,
45 size_t array_start_row_idx)
47 for (
size_t i = 0; i < requests.size(); ++i) {
48 size_t row = array_start_row_idx + i;
49 set_public_call_request_in_cols(requests[i], cols, row);
55 std::vector<std::vector<FF>>& cols,
56 size_t array_start_row_idx)
58 for (
size_t i = 0; i < arr.size(); ++i) {
59 size_t row = array_start_row_idx + i;
60 cols[0][row] = arr[i];
66 std::vector<std::vector<FF>>& cols,
67 size_t array_start_row_idx)
69 for (
size_t i = 0; i < arr.size(); ++i) {
70 size_t row = array_start_row_idx + i;
71 cols[0][row] = arr[i].message.recipient;
72 cols[1][row] = arr[i].message.content;
73 cols[2][row] = arr[i].contractAddress;
79 std::vector<std::vector<FF>>& cols,
80 size_t array_start_row_idx)
82 for (
size_t i = 0; i < logs.size(); ++i) {
86 cols[0][first_row_for_log + j] = logs[i].contractAddress;
87 cols[1][first_row_for_log + j] = logs[i].emittedLength;
89 cols[2][first_row_for_log + j] = logs[i].fields[j];
96 std::vector<std::vector<FF>>& cols,
97 size_t array_start_row_idx)
99 for (
size_t i = 0; i < writes.size(); ++i) {
100 size_t row = array_start_row_idx + i;
101 cols[0][row] = writes[i].leafSlot;
102 cols[1][row] = writes[i].value;
115 msgpack::unpack(
reinterpret_cast<const char*
>(
data.data()),
data.size()).get().convert(inputs);
122 msgpack::unpack(
reinterpret_cast<const char*
>(
data.data()),
data.size()).get().convert(inputs);
151 set_snapshot_in_cols(
153 set_snapshot_in_cols(
155 set_snapshot_in_cols(
165 set_gas_fees_in_cols(
183 set_public_call_request_array_in_cols(
185 set_public_call_request_array_in_cols(
187 set_public_call_request_in_cols(
229 set_snapshot_in_cols(
231 set_snapshot_in_cols(
233 set_snapshot_in_cols(
235 set_snapshot_in_cols(
254 set_field_array_in_cols(
256 set_field_array_in_cols(
258 set_l2_to_l1_msg_array_in_cols(
260 set_public_logs_in_cols(
262 set_public_data_writes_in_cols(
276 std::vector<FF> flat;
277 for (
const auto& col : columns) {
279 throw std::invalid_argument(
"Public inputs column size does not match the expected max length.");
281 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_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 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_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_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_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 PUBLIC_LOG_SIZE_IN_FIELDS
#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< PublicLog, MAX_PUBLIC_LOGS_PER_TX > publicLogs
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