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 = 4;
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 };
30 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
31 ColumnAndShifts::poseidon2_hash_input_0,
32 ColumnAndShifts::poseidon2_hash_input_1,
33 ColumnAndShifts::poseidon2_hash_input_2,
34 ColumnAndShifts::poseidon2_hash_output
35 };
36};
37
40template <typename FF_>
43
45
47 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_SALTED_INITIALIZATION_HASH_POSEIDON2_1";
48 static constexpr std::string_view RELATION_NAME = "address_derivation";
49 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
50 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
51 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
52 static constexpr Column COUNTS = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts;
53 static constexpr Column INVERSES = Column::lookup_address_derivation_salted_initialization_hash_poseidon2_1_inv;
54 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
55 ColumnAndShifts::address_derivation_deployer_addr,
56 ColumnAndShifts::precomputed_zero,
57 ColumnAndShifts::precomputed_zero,
58 ColumnAndShifts::address_derivation_salted_init_hash
59 };
60 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
61 ColumnAndShifts::poseidon2_hash_input_0,
62 ColumnAndShifts::poseidon2_hash_input_1,
63 ColumnAndShifts::poseidon2_hash_input_2,
64 ColumnAndShifts::poseidon2_hash_output
65 };
66};
67
70template <typename FF_>
73
75
77 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PARTIAL_ADDRESS_POSEIDON2";
78 static constexpr std::string_view RELATION_NAME = "address_derivation";
79 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
80 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
81 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
82 static constexpr Column COUNTS = Column::lookup_address_derivation_partial_address_poseidon2_counts;
83 static constexpr Column INVERSES = Column::lookup_address_derivation_partial_address_poseidon2_inv;
84 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
85 ColumnAndShifts::address_derivation_partial_address_domain_separator,
86 ColumnAndShifts::address_derivation_class_id,
87 ColumnAndShifts::address_derivation_salted_init_hash,
88 ColumnAndShifts::address_derivation_partial_address
89 };
90 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
91 ColumnAndShifts::poseidon2_hash_input_0,
92 ColumnAndShifts::poseidon2_hash_input_1,
93 ColumnAndShifts::poseidon2_hash_input_2,
94 ColumnAndShifts::poseidon2_hash_output
95 };
96};
97
100template <typename FF_>
103
105
107 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_0";
108 static constexpr std::string_view RELATION_NAME = "address_derivation";
109 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
110 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
111 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_start;
112 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_0_counts;
113 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_0_inv;
114 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
115 ColumnAndShifts::address_derivation_public_keys_hash_domain_separator,
116 ColumnAndShifts::address_derivation_nullifier_key_x,
117 ColumnAndShifts::address_derivation_nullifier_key_y,
118 ColumnAndShifts::address_derivation_public_keys_hash
119 };
120 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
121 ColumnAndShifts::poseidon2_hash_input_0,
122 ColumnAndShifts::poseidon2_hash_input_1,
123 ColumnAndShifts::poseidon2_hash_input_2,
124 ColumnAndShifts::poseidon2_hash_output
125 };
126};
127
130template <typename FF_>
133
135
137 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_1";
138 static constexpr std::string_view RELATION_NAME = "address_derivation";
139 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
140 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
141 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_sel;
142 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_1_counts;
143 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_1_inv;
144 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
145 ColumnAndShifts::precomputed_zero,
146 ColumnAndShifts::address_derivation_incoming_viewing_key_x,
147 ColumnAndShifts::address_derivation_incoming_viewing_key_y,
148 ColumnAndShifts::address_derivation_public_keys_hash
149 };
150 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
151 ColumnAndShifts::poseidon2_hash_input_0,
152 ColumnAndShifts::poseidon2_hash_input_1,
153 ColumnAndShifts::poseidon2_hash_input_2,
154 ColumnAndShifts::poseidon2_hash_output
155 };
156};
157
160template <typename FF_>
163
165
167 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_2";
168 static constexpr std::string_view RELATION_NAME = "address_derivation";
169 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
170 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
171 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_sel;
172 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_2_counts;
173 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_2_inv;
174 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
175 ColumnAndShifts::precomputed_zero,
176 ColumnAndShifts::address_derivation_outgoing_viewing_key_x,
177 ColumnAndShifts::address_derivation_outgoing_viewing_key_y,
178 ColumnAndShifts::address_derivation_public_keys_hash
179 };
180 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
181 ColumnAndShifts::poseidon2_hash_input_0,
182 ColumnAndShifts::poseidon2_hash_input_1,
183 ColumnAndShifts::poseidon2_hash_input_2,
184 ColumnAndShifts::poseidon2_hash_output
185 };
186};
187
190template <typename FF_>
193
195
197 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_3";
198 static constexpr std::string_view RELATION_NAME = "address_derivation";
199 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
200 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
201 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_sel;
202 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_3_counts;
203 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_3_inv;
204 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
205 ColumnAndShifts::precomputed_zero,
206 ColumnAndShifts::address_derivation_tagging_key_x,
207 ColumnAndShifts::address_derivation_tagging_key_y,
208 ColumnAndShifts::address_derivation_public_keys_hash
209 };
210 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
211 ColumnAndShifts::poseidon2_hash_input_0,
212 ColumnAndShifts::poseidon2_hash_input_1,
213 ColumnAndShifts::poseidon2_hash_input_2,
214 ColumnAndShifts::poseidon2_hash_output
215 };
216};
217
220template <typename FF_>
223
225
227 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_4";
228 static constexpr std::string_view RELATION_NAME = "address_derivation";
229 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
230 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
231 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
232 static constexpr Column COUNTS = Column::lookup_address_derivation_public_keys_hash_poseidon2_4_counts;
233 static constexpr Column INVERSES = Column::lookup_address_derivation_public_keys_hash_poseidon2_4_inv;
234 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
235 ColumnAndShifts::precomputed_zero,
236 ColumnAndShifts::precomputed_zero,
237 ColumnAndShifts::precomputed_zero,
238 ColumnAndShifts::address_derivation_public_keys_hash
239 };
240 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
241 ColumnAndShifts::poseidon2_hash_input_0,
242 ColumnAndShifts::poseidon2_hash_input_1,
243 ColumnAndShifts::poseidon2_hash_input_2,
244 ColumnAndShifts::poseidon2_hash_output
245 };
246};
247
250template <typename FF_>
253
255
257 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PREADDRESS_POSEIDON2";
258 static constexpr std::string_view RELATION_NAME = "address_derivation";
259 static constexpr size_t LOOKUP_TUPLE_SIZE = 4;
260 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
261 static constexpr Column DST_SELECTOR = Column::poseidon2_hash_end;
262 static constexpr Column COUNTS = Column::lookup_address_derivation_preaddress_poseidon2_counts;
263 static constexpr Column INVERSES = Column::lookup_address_derivation_preaddress_poseidon2_inv;
264 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
265 ColumnAndShifts::address_derivation_preaddress_domain_separator,
266 ColumnAndShifts::address_derivation_public_keys_hash,
267 ColumnAndShifts::address_derivation_partial_address,
268 ColumnAndShifts::address_derivation_preaddress
269 };
270 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
271 ColumnAndShifts::poseidon2_hash_input_0,
272 ColumnAndShifts::poseidon2_hash_input_1,
273 ColumnAndShifts::poseidon2_hash_input_2,
274 ColumnAndShifts::poseidon2_hash_output
275 };
276};
277
280template <typename FF_>
283
285
287 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_PREADDRESS_SCALAR_MUL";
288 static constexpr std::string_view RELATION_NAME = "address_derivation";
289 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
290 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
291 static constexpr Column DST_SELECTOR = Column::scalar_mul_start;
292 static constexpr Column COUNTS = Column::lookup_address_derivation_preaddress_scalar_mul_counts;
293 static constexpr Column INVERSES = Column::lookup_address_derivation_preaddress_scalar_mul_inv;
294 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
295 ColumnAndShifts::address_derivation_preaddress,
296 ColumnAndShifts::address_derivation_g1_x,
297 ColumnAndShifts::address_derivation_g1_y,
298 ColumnAndShifts::precomputed_zero,
299 ColumnAndShifts::address_derivation_preaddress_public_key_x,
300 ColumnAndShifts::address_derivation_preaddress_public_key_y,
301 ColumnAndShifts::precomputed_zero
302 };
303 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
304 ColumnAndShifts::scalar_mul_scalar, ColumnAndShifts::scalar_mul_point_x, ColumnAndShifts::scalar_mul_point_y,
305 ColumnAndShifts::scalar_mul_point_inf, ColumnAndShifts::scalar_mul_res_x, ColumnAndShifts::scalar_mul_res_y,
306 ColumnAndShifts::scalar_mul_res_inf
307 };
308};
309
312template <typename FF_>
315
317
319 static constexpr std::string_view NAME = "LOOKUP_ADDRESS_DERIVATION_ADDRESS_ECADD";
320 static constexpr std::string_view RELATION_NAME = "address_derivation";
321 static constexpr size_t LOOKUP_TUPLE_SIZE = 9;
322 static constexpr Column SRC_SELECTOR = Column::address_derivation_sel;
323 static constexpr Column DST_SELECTOR = Column::ecc_sel;
324 static constexpr Column COUNTS = Column::lookup_address_derivation_address_ecadd_counts;
325 static constexpr Column INVERSES = Column::lookup_address_derivation_address_ecadd_inv;
326 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
327 ColumnAndShifts::address_derivation_preaddress_public_key_x,
328 ColumnAndShifts::address_derivation_preaddress_public_key_y,
329 ColumnAndShifts::precomputed_zero,
330 ColumnAndShifts::address_derivation_incoming_viewing_key_x,
331 ColumnAndShifts::address_derivation_incoming_viewing_key_y,
332 ColumnAndShifts::precomputed_zero,
333 ColumnAndShifts::address_derivation_address,
334 ColumnAndShifts::address_derivation_address_y,
335 ColumnAndShifts::precomputed_zero
336 };
337 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
338 ColumnAndShifts::ecc_p_x, ColumnAndShifts::ecc_p_y, ColumnAndShifts::ecc_p_is_inf,
339 ColumnAndShifts::ecc_q_x, ColumnAndShifts::ecc_q_y, ColumnAndShifts::ecc_q_is_inf,
340 ColumnAndShifts::ecc_r_x, ColumnAndShifts::ecc_r_y, ColumnAndShifts::ecc_r_is_inf
341 };
342};
343
346template <typename FF_>
349
350} // 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