1#include <gmock/gmock.h>
2#include <gtest/gtest.h>
20using ::testing::ElementsAre;
24TEST(AddressDerivationTraceGenTest, TraceGeneration)
26 TestTraceContainer
trace;
27 AddressDerivationTraceBuilder
builder;
34 simulation::AddressDerivationEvent addr_event{ .address =
FF(0xdeadbeef),
36 .salted_initialization_hash =
FF(12),
37 .partial_address =
FF(23),
38 .public_keys_hash =
FF(34),
40 .preaddress_public_key = preaddress_public_key,
41 .address_point = address_point };
52 ROW_FIELD_EQ(address_derivation_deployer_addr, instance.deployer),
53 ROW_FIELD_EQ(address_derivation_class_id, instance.original_contract_class_id),
54 ROW_FIELD_EQ(address_derivation_init_hash, instance.initialization_hash),
55 ROW_FIELD_EQ(address_derivation_nullifier_key_x, instance.public_keys.nullifier_key.x),
56 ROW_FIELD_EQ(address_derivation_nullifier_key_y, instance.public_keys.nullifier_key.y),
57 ROW_FIELD_EQ(address_derivation_incoming_viewing_key_x, instance.public_keys.incoming_viewing_key.x),
58 ROW_FIELD_EQ(address_derivation_incoming_viewing_key_y, instance.public_keys.incoming_viewing_key.y),
59 ROW_FIELD_EQ(address_derivation_outgoing_viewing_key_x, instance.public_keys.outgoing_viewing_key.x),
60 ROW_FIELD_EQ(address_derivation_outgoing_viewing_key_y, instance.public_keys.outgoing_viewing_key.y),
61 ROW_FIELD_EQ(address_derivation_tagging_key_x, instance.public_keys.tagging_key.x),
62 ROW_FIELD_EQ(address_derivation_tagging_key_y, instance.public_keys.tagging_key.y),
67 ROW_FIELD_EQ(address_derivation_preaddress_public_key_x, preaddress_public_key.x()),
68 ROW_FIELD_EQ(address_derivation_preaddress_public_key_y, preaddress_public_key.y()),
69 ROW_FIELD_EQ(address_derivation_address_y, address_point.y()),
#define DOM_SEP__SALTED_INITIALIZATION_HASH
#define DOM_SEP__PARTIAL_ADDRESS
#define DOM_SEP__PUBLIC_KEYS_HASH
#define DOM_SEP__CONTRACT_ADDRESS_V1
static const StandardAffinePoint & one()
void process(const simulation::EventEmitterInterface< simulation::AluEvent >::Container &events, TraceContainer &trace)
Process the ALU events and populate the ALU relevant columns in the trace.
std::vector< AvmFullRowConstRef > as_rows() const
#define ROW_FIELD_EQ(field_name, expression)
ContractInstance random_contract_instance()
StandardAffinePoint< AvmFlavorSettings::EmbeddedCurve::AffineElement > EmbeddedCurvePoint
AvmFlavorSettings::G1::Fq Fq
TEST(BoomerangMegaCircuitBuilder, BasicCircuit)