4#include <gmock/gmock.h>
5#include <gtest/gtest.h>
22using ::testing::AllOf;
24TEST(TxTraceGenTest, EnqueuedCallEvent)
26 TestTraceContainer
trace;
29 auto msg_sender = FF::random_element();
31 auto calldata_hash = FF::random_element();
33 simulation::TxStartupEvent startup_event = {
34 .state = { .gas_used = { 500, 1000 }, .tree_states = {}, .written_public_data_slots_tree_snapshot = {} },
35 .gas_limit = { 1000, 2000 },
36 .teardown_gas_limit = { 0, 0 },
39 simulation::TxPhaseEvent tx_event = {
45 simulation::EnqueuedCallEvent{
46 .msg_sender = msg_sender,
49 .calldata_hash = calldata_hash,
56 ASSERT_EQ(rows.size(), 13);
64 tx_read_pi_length_offset,
89TEST(TxTraceGenTest, CollectFeeEvent)
91 TestTraceContainer
trace;
94 auto fee_payer = FF::random_element();
95 auto fee_payer_balance = FF::neg_one();
96 auto effective_fee_per_da_gas = 100;
97 auto effective_fee_per_l2_gas = 200;
98 auto prev_da_gas_used = 1000;
99 auto prev_l2_gas_used = 500;
100 auto fee = effective_fee_per_da_gas * prev_da_gas_used + effective_fee_per_l2_gas * prev_l2_gas_used;
102 simulation::TxStartupEvent startup_event = {
103 .state = { .gas_used = { 500, 1000 }, .tree_states = {}, .written_public_data_slots_tree_snapshot = {} },
104 .gas_limit = { 1000, 2000 },
105 .teardown_gas_limit = { 0, 0 },
112 .event = simulation::CollectGasFeeEvent{
113 .effective_fee_per_da_gas =
114 static_cast<uint128_t>(effective_fee_per_da_gas),
115 .effective_fee_per_l2_gas =
116 static_cast<uint128_t>(effective_fee_per_l2_gas),
117 .fee_payer = fee_payer,
118 .fee_payer_balance = fee_payer_balance,
124 ASSERT_EQ(rows.size(), 13);
142 ROW_FIELD_EQ(tx_effective_fee_per_da_gas,
FF(effective_fee_per_da_gas)),
143 ROW_FIELD_EQ(tx_effective_fee_per_l2_gas,
FF(effective_fee_per_l2_gas)),
153TEST(TxTraceGenTest, PadTreesEvent)
155 TestTraceContainer
trace;
158 simulation::TxStartupEvent startup_event = {
159 .state = { .gas_used = { 500, 1000 }, .tree_states = {}, .written_public_data_slots_tree_snapshot = {} },
160 .gas_limit = { 1000, 2000 },
161 .teardown_gas_limit = { 0, 0 },
170 .nextAvailableLeafIndex = 65,
177 .nextAvailableLeafIndex = 127,
188 .nextAvailableLeafIndex = 128,
195 .nextAvailableLeafIndex = 128,
202 .event = simulation::PadTreesEvent{} };
206 ASSERT_EQ(rows.size(), 13);
230TEST(TxTraceGenTest, CleanupEvent)
232 TestTraceContainer
trace;
235 simulation::TxStartupEvent startup_event = {
236 .state = { .gas_used = { 500, 1000 }, .tree_states = {}, .written_public_data_slots_tree_snapshot = {} },
237 .gas_limit = { 1000, 2000 },
238 .teardown_gas_limit = { 0, 0 },
245 .event = simulation::CleanupEvent{} };
249 ASSERT_EQ(rows.size(), 13);
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_L1_TO_L2_MESSAGE_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_EFFECTIVE_GAS_FEES_ROW_IDX
#define AVM_PUBLIC_INPUTS_FEE_PAYER_ROW_IDX
#define AVM_PUBLIC_INPUTS_TRANSACTION_FEE_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_GAS_USED_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_SETUP_CALL_REQUESTS_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NULLIFIER_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_NOTE_HASH_TREE_ROW_IDX
#define AVM_PUBLIC_INPUTS_PUBLIC_CALL_REQUEST_ARRAY_LENGTHS_SETUP_CALLS_ROW_IDX
#define AVM_PUBLIC_INPUTS_PREVIOUS_NON_REVERTIBLE_ACCUMULATED_DATA_ARRAY_LENGTHS_NOTE_HASHES_ROW_IDX
#define AVM_PUBLIC_INPUTS_END_TREE_SNAPSHOTS_PUBLIC_DATA_TREE_ROW_IDX
void process(const simulation::EventEmitterInterface< simulation::AluEvent >::Container &events, TraceContainer &trace)
std::vector< AvmFullRowConstRef > as_rows() const
AztecAddress contract_address
#define ROW_FIELD_EQ(field_name, expression)
TEST(EmitUnencryptedLogTest, Basic)
unsigned __int128 uint128_t