Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lookups_address_derivation.hpp
Go to the documentation of this file.
1// AUTOGENERATED FILE
2#pragma once
3
4#include <cstddef>
5#include <string_view>
6#include <tuple>
7
8#include "../columns.hpp"
11
12namespace bb::avm2 {
13
15
17 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_SALTED_INITIALIZATION_HASH_POSEIDON2_0";
18 static constexpr std::string_view RELATION_NAME = "address_derivation";
19 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
20 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
21 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_start;
22 static constexpr Column COUNTS = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts;
23 static constexpr Column INVERSES = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_0_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
25 ColumnAndShifts::address_derivation_partial_address_domain_separator,
26 ColumnAndShifts::address_derivation_salt,
27 ColumnAndShifts::address_derivation_init_hash,
28 ColumnAndShifts::address_derivation_salted_init_hash,
29 ColumnAndShifts::address_derivation_const_two
30 };
31 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
32 ColumnAndShifts::poseidon2_hash_input_0,
33 ColumnAndShifts::poseidon2_hash_input_1,
34 ColumnAndShifts::poseidon2_hash_input_2,
35 ColumnAndShifts::poseidon2_hash_output,
36 ColumnAndShifts::poseidon2_hash_num_perm_rounds_rem
37 };
38};
39
42template <typename FF_>
45
47
49 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_SALTED_INITIALIZATION_HASH_POSEIDON2_1";
50 static constexpr std::string_view RELATION_NAME = "address_derivation";
51 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
52 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
53 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
54 static constexpr Column COUNTS = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts;
55 static constexpr Column INVERSES = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_1_inv;
56 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
57 ColumnAndShifts::address_derivation_deployer_addr,
58 ColumnAndShifts::precomputed_zero,
59 ColumnAndShifts::precomputed_zero,
60 ColumnAndShifts::address_derivation_salted_init_hash
61 };
62 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
63 ColumnAndShifts::poseidon2_hash_input_0,
64 ColumnAndShifts::poseidon2_hash_input_1,
65 ColumnAndShifts::poseidon2_hash_input_2,
66 ColumnAndShifts::poseidon2_hash_output
67 };
68};
69
72template <typename FF_>
75
77
79 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PARTIAL_ADDRESS_POSEIDON2";
80 static constexpr std::string_view RELATION_NAME = "address_derivation";
81 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
82 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
83 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
84 static constexpr Column COUNTS = Column::lookup_address_derivation_partial_address_poseidon2_counts;
85 static constexpr Column INVERSES = Column::lookup_address_derivation_partial_address_poseidon2_inv;
86 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
87 ColumnAndShifts::address_derivation_sel,
88 ColumnAndShifts::address_derivation_partial_address_domain_separator,
89 ColumnAndShifts::address_derivation_class_id,
90 ColumnAndShifts::address_derivation_salted_init_hash,
91 ColumnAndShifts::address_derivation_partial_address
92 };
93 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
94 ColumnAndShifts::poseidon2_hash_start,
95 ColumnAndShifts::poseidon2_hash_input_0,
96 ColumnAndShifts::poseidon2_hash_input_1,
97 ColumnAndShifts::poseidon2_hash_input_2,
98 ColumnAndShifts::poseidon2_hash_output
99 };
100};
101
104template <typename FF_>
107
109
111 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_0";
112 static constexpr std::string_view RELATION_NAME = "address_derivation";
113 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
114 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
115 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_start;
116 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_0_counts;
117 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_0_inv;
118 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
119 ColumnAndShifts::address_derivation_public_keys_hash_domain_separator,
120 ColumnAndShifts::address_derivation_nullifier_key_x,
121 ColumnAndShifts::address_derivation_nullifier_key_y,
122 ColumnAndShifts::address_derivation_public_keys_hash,
123 ColumnAndShifts::address_derivation_const_five
124 };
125 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
126 ColumnAndShifts::poseidon2_hash_input_0,
127 ColumnAndShifts::poseidon2_hash_input_1,
128 ColumnAndShifts::poseidon2_hash_input_2,
129 ColumnAndShifts::poseidon2_hash_output,
130 ColumnAndShifts::poseidon2_hash_num_perm_rounds_rem
131 };
132};
133
136template <typename FF_>
139
141
143 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_1";
144 static constexpr std::string_view RELATION_NAME = "address_derivation";
145 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
146 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
147 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_sel;
148 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_1_counts;
149 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_1_inv;
150 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
151 ColumnAndShifts::precomputed_zero,
152 ColumnAndShifts::address_derivation_incoming_viewing_key_x,
153 ColumnAndShifts::address_derivation_incoming_viewing_key_y,
154 ColumnAndShifts::address_derivation_public_keys_hash,
155 ColumnAndShifts::address_derivation_const_four
156 };
157 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
158 ColumnAndShifts::poseidon2_hash_input_0,
159 ColumnAndShifts::poseidon2_hash_input_1,
160 ColumnAndShifts::poseidon2_hash_input_2,
161 ColumnAndShifts::poseidon2_hash_output,
162 ColumnAndShifts::poseidon2_hash_num_perm_rounds_rem
163 };
164};
165
168template <typename FF_>
171
173
175 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_2";
176 static constexpr std::string_view RELATION_NAME = "address_derivation";
177 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
178 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
179 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_sel;
180 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_2_counts;
181 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_2_inv;
182 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
183 ColumnAndShifts::precomputed_zero,
184 ColumnAndShifts::address_derivation_outgoing_viewing_key_x,
185 ColumnAndShifts::address_derivation_outgoing_viewing_key_y,
186 ColumnAndShifts::address_derivation_public_keys_hash,
187 ColumnAndShifts::address_derivation_const_three
188 };
189 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
190 ColumnAndShifts::poseidon2_hash_input_0,
191 ColumnAndShifts::poseidon2_hash_input_1,
192 ColumnAndShifts::poseidon2_hash_input_2,
193 ColumnAndShifts::poseidon2_hash_output,
194 ColumnAndShifts::poseidon2_hash_num_perm_rounds_rem
195 };
196};
197
200template <typename FF_>
203
205
207 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_3";
208 static constexpr std::string_view RELATION_NAME = "address_derivation";
209 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
210 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
211 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_sel;
212 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_3_counts;
213 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_3_inv;
214 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
215 ColumnAndShifts::precomputed_zero,
216 ColumnAndShifts::address_derivation_tagging_key_x,
217 ColumnAndShifts::address_derivation_tagging_key_y,
218 ColumnAndShifts::address_derivation_public_keys_hash,
219 ColumnAndShifts::address_derivation_const_two
220 };
221 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
222 ColumnAndShifts::poseidon2_hash_input_0,
223 ColumnAndShifts::poseidon2_hash_input_1,
224 ColumnAndShifts::poseidon2_hash_input_2,
225 ColumnAndShifts::poseidon2_hash_output,
226 ColumnAndShifts::poseidon2_hash_num_perm_rounds_rem
227 };
228};
229
232template <typename FF_>
235
237
239 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_4";
240 static constexpr std::string_view RELATION_NAME = "address_derivation";
241 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
242 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
243 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
244 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_4_counts;
245 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_4_inv;
246 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
247 ColumnAndShifts::precomputed_zero,
248 ColumnAndShifts::precomputed_zero,
249 ColumnAndShifts::precomputed_zero,
250 ColumnAndShifts::address_derivation_public_keys_hash
251 };
252 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
253 ColumnAndShifts::poseidon2_hash_input_0,
254 ColumnAndShifts::poseidon2_hash_input_1,
255 ColumnAndShifts::poseidon2_hash_input_2,
256 ColumnAndShifts::poseidon2_hash_output
257 };
258};
259
262template <typename FF_>
265
267
269 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PREADDRESS_POSEIDON2";
270 static constexpr std::string_view RELATION_NAME = "address_derivation";
271 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
272 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
273 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
274 static constexpr Column COUNTS = Column::lookup_address_derivation_preaddress_poseidon2_counts;
275 static constexpr Column INVERSES = Column::lookup_address_derivation_preaddress_poseidon2_inv;
276 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
277 ColumnAndShifts::address_derivation_sel,
278 ColumnAndShifts::address_derivation_preaddress_domain_separator,
279 ColumnAndShifts::address_derivation_public_keys_hash,
280 ColumnAndShifts::address_derivation_partial_address,
281 ColumnAndShifts::address_derivation_preaddress
282 };
283 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
284 ColumnAndShifts::poseidon2_hash_start,
285 ColumnAndShifts::poseidon2_hash_input_0,
286 ColumnAndShifts::poseidon2_hash_input_1,
287 ColumnAndShifts::poseidon2_hash_input_2,
288 ColumnAndShifts::poseidon2_hash_output
289 };
290};
291
294template <typename FF_>
297
299
301 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PREADDRESS_SCALAR_MUL";
302 static constexpr std::string_view RELATION_NAME = "address_derivation";
303 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
304 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
305 static constexpr Column DST_SELECTOR = Column::scalar_mul_start;
306 static constexpr Column COUNTS = Column::lookup_address_derivation_preaddress_scalar_mul_counts;
307 static constexpr Column INVERSES = Column::lookup_address_derivation_preaddress_scalar_mul_inv;
308 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
309 ColumnAndShifts::address_derivation_preaddress,
310 ColumnAndShifts::address_derivation_g1_x,
311 ColumnAndShifts::address_derivation_g1_y,
312 ColumnAndShifts::precomputed_zero,
313 ColumnAndShifts::address_derivation_preaddress_public_key_x,
314 ColumnAndShifts::address_derivation_preaddress_public_key_y,
315 ColumnAndShifts::precomputed_zero
316 };
317 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
318 ColumnAndShifts::scalar_mul_scalar, ColumnAndShifts::scalar_mul_point_x, ColumnAndShifts::scalar_mul_point_y,
319 ColumnAndShifts::scalar_mul_point_inf, ColumnAndShifts::scalar_mul_res_x, ColumnAndShifts::scalar_mul_res_y,
320 ColumnAndShifts::scalar_mul_res_inf
321 };
322};
323
326template <typename FF_>
329
331
333 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_ADDRESS_ECADD";
334 static constexpr std::string_view RELATION_NAME = "address_derivation";
335 static constexpr size_t LOOKUP_TUPLE_SIZE = 9;
336 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
337 static constexpr Column DST_SELECTOR = Column::ecc_sel;
338 static constexpr Column COUNTS = Column::lookup_address_derivation_address_ecadd_counts;
339 static constexpr Column INVERSES = Column::lookup_address_derivation_address_ecadd_inv;
340 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
341 ColumnAndShifts::address_derivation_preaddress_public_key_x,
342 ColumnAndShifts::address_derivation_preaddress_public_key_y,
343 ColumnAndShifts::precomputed_zero,
344 ColumnAndShifts::address_derivation_incoming_viewing_key_x,
345 ColumnAndShifts::address_derivation_incoming_viewing_key_y,
346 ColumnAndShifts::precomputed_zero,
347 ColumnAndShifts::address_derivation_address,
348 ColumnAndShifts::address_derivation_address_y,
349 ColumnAndShifts::precomputed_zero
350 };
351 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
352 ColumnAndShifts::ecc_p_x, ColumnAndShifts::ecc_p_y, ColumnAndShifts::ecc_p_is_inf,
353 ColumnAndShifts::ecc_q_x, ColumnAndShifts::ecc_q_y, ColumnAndShifts::ecc_q_is_inf,
354 ColumnAndShifts::ecc_r_x, ColumnAndShifts::ecc_r_y, ColumnAndShifts::ecc_r_is_inf
355 };
356};
357
360template <typename FF_>
363
364} // namespace bb::avm2
This file contains the template for the generic lookup that can be specialized to enforce various loo...
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS