8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_SALTED_INITIALIZATION_HASH_POSEIDON2_0";
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
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
40template <
typename FF_>
47 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_SALTED_INITIALIZATION_HASH_POSEIDON2_1";
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
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
70template <
typename FF_>
77 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PARTIAL_ADDRESS_POSEIDON2";
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
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
100template <
typename FF_>
107 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_0";
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
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
130template <
typename FF_>
137 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_1";
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
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
160template <
typename FF_>
167 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_2";
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
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
190template <
typename FF_>
197 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_3";
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
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
220template <
typename FF_>
227 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PUBLIC_KEYS_HASH_POSEIDON2_4";
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
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
250template <
typename FF_>
257 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PREADDRESS_POSEIDON2";
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
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
280template <
typename FF_>
287 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_PREADDRESS_SCALAR_MUL";
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
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
312template <
typename FF_>
319 static constexpr std::string_view
NAME =
"LOOKUP_ADDRESS_DERIVATION_ADDRESS_ECADD";
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
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
346template <
typename FF_>
This file contains the template for the generic lookup that can be specialized to enforce various loo...
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS