#include <address_derivation_trace.hpp>
◆ process()
Process address derivation events and populate the relevant columns in the trace. Corresponds to the subtrace address_derivation.pil.
This trace is non memory-aware and does not handle any errors. It relies on the poseidon2, scalar_mul, and ecc traces to constrain correctness of the address, which is derived as:
- salted_init_hash = Poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, salt, init_hash, deployer_addr)
- partial_address = Poseidon2(DOM_SEP__PARTIAL_ADDRESS, class_id, salted_init_hash)
- public_keys_hash = Poseidon2(DOM_SEP__PUBLIC_KEYS_HASH, [...public_keys.to_fields()])
- preaddress = Poseidon2(DOM_SEP__CONTRACT_ADDRESS_V1, public_keys_hash, partial_address)
- preaddress_public_key = preaddress * G1 (Grumpkin scalar multiplication)
- address = (preaddress_public_key + incoming_viewing_key).x (Grumpkin EC add)
- Parameters
-
| events | The container of address derivation events to process. |
| trace | The trace container. |
Definition at line 31 of file address_derivation_trace.cpp.
◆ interactions
Initial value:=
InteractionDefinition()
.add<InteractionType::LookupSequential, lookup_address_derivation_public_keys_hash_poseidon2_0_settings>()
.add<InteractionType::LookupSequential, lookup_address_derivation_public_keys_hash_poseidon2_2_settings>()
.add<InteractionType::LookupSequential, lookup_address_derivation_public_keys_hash_poseidon2_4_settings>()
.add<InteractionType::LookupSequential, lookup_address_derivation_preaddress_scalar_mul_settings>()
lookup_settings< lookup_address_derivation_address_ecadd_settings_ > lookup_address_derivation_address_ecadd_settings
lookup_settings< lookup_address_derivation_partial_address_poseidon2_settings_ > lookup_address_derivation_partial_address_poseidon2_settings
lookup_settings< lookup_address_derivation_salted_initialization_hash_poseidon2_1_settings_ > lookup_address_derivation_salted_initialization_hash_poseidon2_1_settings
lookup_settings< lookup_address_derivation_preaddress_poseidon2_settings_ > lookup_address_derivation_preaddress_poseidon2_settings
lookup_settings< lookup_address_derivation_public_keys_hash_poseidon2_3_settings_ > lookup_address_derivation_public_keys_hash_poseidon2_3_settings
lookup_settings< lookup_address_derivation_salted_initialization_hash_poseidon2_0_settings_ > lookup_address_derivation_salted_initialization_hash_poseidon2_0_settings
lookup_settings< lookup_address_derivation_public_keys_hash_poseidon2_1_settings_ > lookup_address_derivation_public_keys_hash_poseidon2_1_settings
Definition at line 18 of file address_derivation_trace.hpp.
The documentation for this class was generated from the following files: