Skip to content

Commit 20c395d

Browse files
authored
feat(avm)!: add protocol contract root to pub inputs (#17078)
Adds the protocol contract tree root to the public inputs. Minimal and fallback tests utilise the "root of zero instances"
1 parent eec39d1 commit 20c395d

36 files changed

+1655
-1374
lines changed

barretenberg/cpp/pil/vm2/constants_gen.pil

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -102,51 +102,52 @@ namespace constants;
102102
pol AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX = 5;
103103
pol AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX = 6;
104104
pol AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX = 7;
105-
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX = 8;
106-
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX = 8;
107-
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX = 9;
108-
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX = 10;
109-
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX = 11;
110-
pol AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX = 12;
111-
pol AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX = 13;
112-
pol AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX = 13;
113-
pol AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX = 14;
114-
pol AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX = 18;
115-
pol AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX = 22;
116-
pol AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX = 54;
117-
pol AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX = 86;
118-
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX = 87;
119-
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX = 90;
120-
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX = 93;
121-
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX = 93;
122-
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX = 157;
123-
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX = 221;
124-
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX = 229;
125-
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX = 229;
126-
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX = 293;
127-
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX = 357;
128-
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX = 365;
129-
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX = 365;
130-
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX = 366;
131-
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX = 367;
132-
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX = 368;
133-
pol AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX = 369;
134-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX = 370;
135-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX = 371;
136-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX = 372;
137-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX = 373;
138-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX = 374;
139-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX = 375;
140-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX = 375;
141-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX = 439;
142-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX = 503;
143-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX = 511;
144-
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX = 615;
145-
pol AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX = 679;
146-
pol AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX = 680;
147-
pol AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH = 681;
105+
pol AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACT_TREE_ROOT = 8;
106+
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX = 9;
107+
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX = 9;
108+
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX = 10;
109+
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX = 11;
110+
pol AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX = 12;
111+
pol AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX = 13;
112+
pol AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX = 14;
113+
pol AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX = 14;
114+
pol AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX = 15;
115+
pol AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX = 19;
116+
pol AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX = 23;
117+
pol AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX = 55;
118+
pol AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX = 87;
119+
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX = 88;
120+
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX = 91;
121+
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX = 94;
122+
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX = 94;
123+
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX = 158;
124+
pol AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX = 222;
125+
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX = 230;
126+
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX = 230;
127+
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX = 294;
128+
pol AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX = 358;
129+
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX = 366;
130+
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX = 366;
131+
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX = 367;
132+
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX = 368;
133+
pol AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX = 369;
134+
pol AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX = 370;
135+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX = 371;
136+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX = 372;
137+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX = 373;
138+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX = 374;
139+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX = 375;
140+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX = 376;
141+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX = 376;
142+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX = 440;
143+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX = 504;
144+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX = 512;
145+
pol AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX = 616;
146+
pol AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX = 680;
147+
pol AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX = 681;
148+
pol AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH = 682;
148149
pol AVM_NUM_PUBLIC_INPUT_COLUMNS = 4;
149-
pol AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH = 2724;
150+
pol AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH = 2728;
150151
pol AVM_PC_SIZE_IN_BITS = 32;
151152
pol AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_HEIGHT = 6;
152153
pol AVM_WRITTEN_PUBLIC_DATA_SLOTS_TREE_INITIAL_ROOT = 18291678969210913367302010540259942201271604198321103848479209155223586227821;

barretenberg/cpp/pil/vm2/protocol_contract.pil

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,29 @@
11
include "./trees/merkle_check.pil";
22
include "precomputed.pil";
3+
include "public_inputs.pil";
34
include "constants_gen.pil";
45
include "poseidon2_hash.pil";
56

7+
/**
8+
* This internal gadget constrains the retrieval of the derived address given the
9+
* canonical address of a protocol contract.
10+
* It computes the leaf hash using the preimage {canonical_addr, derived_addr} and
11+
* performs the membership check against the protocol contract tree.
12+
* The use of the correct tree is guaranteed by a constrained lookup of the root used
13+
* in the membership check with the root contained in the public inputs.
14+
* The root in the public inputs is constrained by upstream circuits (and eventually L1)
15+
*
16+
* N.B: We do not currently support non-membership checks, however this can be updated to
17+
* support non-membership checks.
18+
*
19+
* Usage (from contract_instance_retrieval.pil):
20+
* contract_instance_retrieval.is_protocol_contract {
21+
* contract_instance_retrieval.address,
22+
* contract_instance_retrieval.derived_address
23+
* } in
24+
* sel { canonical_address, derived_address };
25+
*
26+
*/
627
namespace protocol_contract;
728

829
pol commit sel;
@@ -14,7 +35,14 @@ namespace protocol_contract;
1435
pol commit canonical_address;
1536
pol commit derived_address;
1637

17-
pol commit root; // todo(ilyas): this needs to be constrained against public inputs
38+
pol commit pi_index; // todo: while we don't support constants in lookups
39+
sel * (pi_index - constants.AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACT_TREE_ROOT) = 0;
40+
pol commit root;
41+
#[PUBLIC_INPUT_PROTOCOL_CONTRACT_ROOT]
42+
sel { pi_index, root }
43+
in
44+
public_inputs.sel { precomputed.clk, public_inputs.cols[0] };
45+
1846
pol commit tree_depth; // todo: while we don't support constants in lookups
1947
sel * (constants.PROTOCOL_CONTRACT_TREE_HEIGHT - tree_depth) = 0;
2048

barretenberg/cpp/src/barretenberg/vm2/common/avm_inputs.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ std::vector<std::vector<FF>> PublicInputs::to_columns() const
144144
cols[0][AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX] = globalVariables.feeRecipient;
145145
set_gas_fees_in_cols(globalVariables.gasFees, cols, AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX);
146146

147+
// Protocol Contract Tree Root
148+
cols[0][AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACT_TREE_ROOT] = protocolContractTreeRoot;
149+
147150
// Start tree snapshots
148151
set_snapshot_in_cols(startTreeSnapshots.l1ToL2MessageTree,
149152
cols,

barretenberg/cpp/src/barretenberg/vm2/common/avm_inputs.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ struct PublicInputs {
2828
///////////////////////////////////
2929
// Inputs
3030
GlobalVariables globalVariables;
31+
FF protocolContractTreeRoot;
3132
TreeSnapshots startTreeSnapshots;
3233
Gas startGasUsed;
3334
GasSettings gasSettings;
@@ -86,6 +87,7 @@ struct PublicInputs {
8687
bool operator==(const PublicInputs& other) const = default;
8788

8889
MSGPACK_FIELDS(globalVariables,
90+
protocolContractTreeRoot,
8991
startTreeSnapshots,
9092
startGasUsed,
9193
gasSettings,

barretenberg/cpp/src/barretenberg/vm2/common/aztec_constants.hpp

Lines changed: 60 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#define UPDATED_CLASS_IDS_SLOT 1
3131
#define PUBLIC_LOG_SIZE_IN_FIELDS 13
3232
#define AVM_ACCUMULATED_DATA_LENGTH 400
33-
#define AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH 1020
33+
#define AVM_CIRCUIT_PUBLIC_INPUTS_LENGTH 1021
3434
#define AVM_VERIFICATION_KEY_LENGTH_IN_FIELDS 86
3535
#define MAX_PUBLIC_CALLS_TO_UNIQUE_CONTRACT_CLASS_IDS 21
3636
#define MEM_TAG_FF 0
@@ -109,65 +109,66 @@
109109
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_COINBASE_ROW_IDX 5
110110
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_FEE_RECIPIENT_ROW_IDX 6
111111
#define AVM_PUBLIC_INPUTS_GLOBAL_VARIABLES_GAS_FEES_ROW_IDX 7
112-
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX 8
113-
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX 8
114-
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX 9
115-
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX 10
116-
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX 11
117-
#define AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX 12
118-
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX 13
119-
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX 13
120-
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX 14
121-
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_FEES_PER_GAS_ROW_IDX 15
122-
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_PRIORITY_FEES_PER_GAS_ROW_IDX 16
123-
#define AVM_PUBLIC_INPUTS_EFFECTIVE_GAS_FEES_ROW_IDX 17
124-
#define AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX 18
125-
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_ROW_IDX 19
126-
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_SETUP_CALLS_ROW_IDX 19
127-
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_APP_LOGIC_CALLS_ROW_IDX 20
128-
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_TEARDOWN_CALL_ROW_IDX 21
129-
#define AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX 22
130-
#define AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX 54
131-
#define AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX 86
132-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 87
133-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 87
134-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 88
135-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 89
136-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 90
137-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 90
138-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 91
139-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 92
140-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX 93
141-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 93
142-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 157
143-
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 221
144-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX 229
145-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 229
146-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 293
147-
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 357
148-
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX 365
149-
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX 365
150-
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX 366
151-
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX 367
152-
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX 368
153-
#define AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX 369
154-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 370
155-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 370
156-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 371
157-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 372
158-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX 373
159-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX 374
160-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX 375
161-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 375
162-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 439
163-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 503
164-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX 511
165-
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX 615
166-
#define AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX 679
167-
#define AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX 680
168-
#define AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH 681
112+
#define AVM_PUBLIC_INPUTS_PROTOCOL_CONTRACT_TREE_ROOT 8
113+
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_ROW_IDX 9
114+
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX 9
115+
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX 10
116+
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX 11
117+
#define AVM_PUBLIC_INPUTS_START_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX 12
118+
#define AVM_PUBLIC_INPUTS_START_GAS_USED_ROW_IDX 13
119+
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_ROW_IDX 14
120+
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_GAS_LIMITS_ROW_IDX 14
121+
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_TEARDOWN_GAS_LIMITS_ROW_IDX 15
122+
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_FEES_PER_GAS_ROW_IDX 16
123+
#define AVM_PUBLIC_INPUTS_GAS_SETTINGS_MAX_PRIORITY_FEES_PER_GAS_ROW_IDX 17
124+
#define AVM_PUBLIC_INPUTS_EFFECTIVE_GAS_FEES_ROW_IDX 18
125+
#define AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX 19
126+
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_ROW_IDX 20
127+
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_SETUP_CALLS_ROW_IDX 20
128+
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_APP_LOGIC_CALLS_ROW_IDX 21
129+
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_TEARDOWN_CALL_ROW_IDX 22
130+
#define AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX 23
131+
#define AVM_PUBLIC_INPUTS_PUBLIC_APP_LOGIC_CALL_REQUESTS_ROW_IDX 55
132+
#define AVM_PUBLIC_INPUTS_PUBLIC_TEARDOWN_CALL_REQUEST_ROW_IDX 87
133+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 88
134+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 88
135+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 89
136+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 90
137+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 91
138+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 91
139+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 92
140+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 93
141+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX 94
142+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 94
143+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 158
144+
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 222
145+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_ROW_IDX 230
146+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 230
147+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 294
148+
#define AVM_PUBLIC_INPUTS_PREVIOUS_REVERTIBLE_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 358
149+
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_ROW_IDX 366
150+
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX 366
151+
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX 367
152+
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX 368
153+
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX 369
154+
#define AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX 370
155+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_ROW_IDX 371
156+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX 371
157+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_NULLIFIERS_ROW_IDX 372
158+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_L2_TO_L1_MSGS_ROW_IDX 373
159+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_LOGS_ROW_IDX 374
160+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ARRAY_LENGTHS_PUBLIC_DATA_WRITES_ROW_IDX 375
161+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_ROW_IDX 376
162+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX 376
163+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_NULLIFIERS_ROW_IDX 440
164+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_L2_TO_L1_MSGS_ROW_IDX 504
165+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_LOGS_ROW_IDX 512
166+
#define AVM_PUBLIC_INPUTS_AVM_ACCUMULATED_DATA_PUBLIC_DATA_WRITES_ROW_IDX 616
167+
#define AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX 680
168+
#define AVM_PUBLIC_INPUTS_REVERTED_ROW_IDX 681
169+
#define AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH 682
169170
#define AVM_NUM_PUBLIC_INPUT_COLUMNS 4
170-
#define AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH 2724
171+
#define AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH 2728
171172
#define AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED 20000
172173
#define AVM_V2_VERIFICATION_KEY_LENGTH_IN_FIELDS_PADDED 1000
173174
#define AVM_MAX_PROCESSABLE_L2_GAS 6000000

0 commit comments

Comments
 (0)