Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::avm2::simulation::HybridExecution Class Reference

#include <hybrid_execution.hpp>

Inheritance diagram for bb::avm2::simulation::HybridExecution:
bb::avm2::simulation::Execution bb::avm2::simulation::ExecutionInterface

Public Member Functions

ExecutionResult execute (std::unique_ptr< ContextInterface > enqueued_call_context) override
 
 Execution (AluInterface &alu, BitwiseInterface &bitwise, DataCopyInterface &data_copy, Poseidon2Interface &poseidon2, EccInterface &ecc, ToRadixInterface &to_radix, Sha256Interface &sha256, ExecutionComponentsProviderInterface &execution_components, ContextProviderInterface &context_provider, const InstructionInfoDBInterface &instruction_info_db, ExecutionIdManagerInterface &execution_id_manager, EventEmitterInterface< ExecutionEvent > &event_emitter, EventEmitterInterface< ContextStackEvent > &ctx_stack_emitter, KeccakF1600Interface &keccakf1600, GreaterThanInterface &greater_than, GetContractInstanceInterface &get_contract_instance_component, EmitUnencryptedLogInterface &emit_unencrypted_log_component, DebugLoggerInterface &debug_log_component, HighLevelMerkleDBInterface &merkle_db)
 
- Public Member Functions inherited from bb::avm2::simulation::Execution
 Execution (AluInterface &alu, BitwiseInterface &bitwise, DataCopyInterface &data_copy, Poseidon2Interface &poseidon2, EccInterface &ecc, ToRadixInterface &to_radix, Sha256Interface &sha256, ExecutionComponentsProviderInterface &execution_components, ContextProviderInterface &context_provider, const InstructionInfoDBInterface &instruction_info_db, ExecutionIdManagerInterface &execution_id_manager, EventEmitterInterface< ExecutionEvent > &event_emitter, EventEmitterInterface< ContextStackEvent > &ctx_stack_emitter, KeccakF1600Interface &keccakf1600, GreaterThanInterface &greater_than, GetContractInstanceInterface &get_contract_instance_component, EmitUnencryptedLogInterface &emit_unencrypted_log_component, DebugLoggerInterface &debug_log_component, HighLevelMerkleDBInterface &merkle_db)
 
void add (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void sub (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void mul (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void div (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void fdiv (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void eq (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void lt (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void lte (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void op_not (ContextInterface &context, MemoryAddress src_addr, MemoryAddress dst_addr)
 
void cast (ContextInterface &context, MemoryAddress src_addr, MemoryAddress dst_addr, uint8_t dst_tag)
 
void get_env_var (ContextInterface &context, MemoryAddress dst_addr, uint8_t var_enum)
 
void set (ContextInterface &context, MemoryAddress dst_addr, uint8_t tag, const FF &value)
 
void mov (ContextInterface &context, MemoryAddress src_addr, MemoryAddress dst_addr)
 
void jump (ContextInterface &context, uint32_t loc)
 
void jumpi (ContextInterface &context, MemoryAddress cond_addr, uint32_t loc)
 
void call (ContextInterface &context, MemoryAddress l2_gas_offset, MemoryAddress da_gas_offset, MemoryAddress addr, MemoryAddress cd_size_offset, MemoryAddress cd_offset)
 
void static_call (ContextInterface &context, MemoryAddress l2_gas_offset, MemoryAddress da_gas_offset, MemoryAddress addr, MemoryAddress cd_size_offset, MemoryAddress cd_offset)
 
void ret (ContextInterface &context, MemoryAddress ret_size_offset, MemoryAddress ret_offset)
 
void revert (ContextInterface &context, MemoryAddress rev_size_offset, MemoryAddress rev_offset)
 
void cd_copy (ContextInterface &context, MemoryAddress cd_size_offset, MemoryAddress cd_offset, MemoryAddress dst_addr)
 
void rd_copy (ContextInterface &context, MemoryAddress rd_size_offset, MemoryAddress rd_offset, MemoryAddress dst_addr)
 
void rd_size (ContextInterface &context, MemoryAddress dst_addr)
 
void internal_call (ContextInterface &context, uint32_t loc)
 
void internal_return (ContextInterface &context)
 
void keccak_permutation (ContextInterface &context, MemoryAddress dst_addr, MemoryAddress src_addr)
 
void success_copy (ContextInterface &context, MemoryAddress dst_addr)
 
void debug_log (ContextInterface &context, MemoryAddress level_offset, MemoryAddress message_offset, MemoryAddress fields_offset, MemoryAddress fields_size_offset, uint16_t message_size)
 
void and_op (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void or_op (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void xor_op (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress dst_addr)
 
void sload (ContextInterface &context, MemoryAddress slot_addr, MemoryAddress dst_addr)
 
void sstore (ContextInterface &context, MemoryAddress src_addr, MemoryAddress slot_addr)
 
void note_hash_exists (ContextInterface &context, MemoryAddress unique_note_hash_addr, MemoryAddress leaf_index_addr, MemoryAddress dst_addr)
 
void nullifier_exists (ContextInterface &context, MemoryAddress nullifier_offset, MemoryAddress address_offset, MemoryAddress exists_offset)
 
void emit_nullifier (ContextInterface &context, MemoryAddress nullifier_addr)
 
void get_contract_instance (ContextInterface &context, MemoryAddress address_offset, MemoryAddress dst_offset, uint8_t member_enum)
 
void emit_note_hash (ContextInterface &context, MemoryAddress note_hash_addr)
 
void l1_to_l2_message_exists (ContextInterface &context, MemoryAddress msg_hash_addr, MemoryAddress leaf_index_addr, MemoryAddress dst_addr)
 
void poseidon2_permutation (ContextInterface &context, MemoryAddress src_addr, MemoryAddress dst_addr)
 
void ecc_add (ContextInterface &context, MemoryAddress p_x_addr, MemoryAddress p_y_addr, MemoryAddress p_inf_addr, MemoryAddress q_x_addr, MemoryAddress q_y_addr, MemoryAddress q_inf_addr, MemoryAddress dst_addr)
 
void to_radix_be (ContextInterface &context, MemoryAddress value_addr, MemoryAddress radix_addr, MemoryAddress num_limbs_addr, MemoryAddress is_output_bits_addr, MemoryAddress dst_addr)
 
void emit_unencrypted_log (ContextInterface &context, MemoryAddress log_size_offset, MemoryAddress log_offset)
 
void send_l2_to_l1_msg (ContextInterface &context, MemoryAddress recipient_addr, MemoryAddress content_addr)
 
void sha256_compression (ContextInterface &context, MemoryAddress output_addr, MemoryAddress state_addr, MemoryAddress input_addr)
 
void shr (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress c_addr)
 
void shl (ContextInterface &context, MemoryAddress a_addr, MemoryAddress b_addr, MemoryAddress c_addr)
 
- Public Member Functions inherited from bb::avm2::simulation::ExecutionInterface
virtual ~ExecutionInterface ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from bb::avm2::simulation::Execution
virtual GasTrackerInterfaceget_gas_tracker ()
 
void set_execution_result (ExecutionResult exec_result)
 
ExecutionResult get_execution_result () const
 
void dispatch_opcode (ExecutionOpCode opcode, ContextInterface &context, const std::vector< Operand > &resolved_operands)
 
template<typename... Ts>
void call_with_operands (void(Execution::*f)(ContextInterface &, Ts...), ContextInterface &context, const std::vector< Operand > &resolved_operands)
 
std::vector< Operandresolve_operands (const Instruction &instruction, const ExecInstructionSpec &spec)
 
void handle_enter_call (ContextInterface &parent_context, std::unique_ptr< ContextInterface > child_context)
 
void handle_exit_call ()
 
void handle_exceptional_halt (ContextInterface &context)
 
void set_and_validate_inputs (ExecutionOpCode opcode, std::vector< TaggedValue > inputs)
 
void set_output (ExecutionOpCode opcode, TaggedValue output)
 
const std::vector< TaggedValue > & get_inputs () const
 
const TaggedValueget_output () const
 
- Protected Attributes inherited from bb::avm2::simulation::Execution
ExecutionComponentsProviderInterfaceexecution_components
 
const InstructionInfoDBInterfaceinstruction_info_db
 
AluInterfacealu
 
BitwiseInterfacebitwise
 
Poseidon2Interfaceposeidon2
 
EccInterfaceembedded_curve
 
ToRadixInterfaceto_radix
 
Sha256Interfacesha256
 
ContextProviderInterfacecontext_provider
 
ExecutionIdManagerInterfaceexecution_id_manager
 
DataCopyInterfacedata_copy
 
KeccakF1600Interfacekeccakf1600
 
GreaterThanInterfacegreater_than
 
GetContractInstanceInterfaceget_contract_instance_component
 
EmitUnencryptedLogInterfaceemit_unencrypted_log_component
 
DebugLoggerInterfacedebug_log_component
 
HighLevelMerkleDBInterfacemerkle_db
 
EventEmitterInterface< ExecutionEvent > & events
 
EventEmitterInterface< ContextStackEvent > & ctx_stack_events
 
ExecutionResult exec_result
 
std::stack< std::unique_ptr< ContextInterface > > external_call_stack
 
std::vector< TaggedValueinputs
 
TaggedValue output
 
std::unique_ptr< GasTrackerInterfacegas_tracker
 

Detailed Description

Definition at line 11 of file hybrid_execution.hpp.

Member Function Documentation

◆ execute()

ExecutionResult bb::avm2::simulation::HybridExecution::execute ( std::unique_ptr< ContextInterface enqueued_call_context)
overridevirtual

Reimplemented from bb::avm2::simulation::Execution.

Definition at line 9 of file hybrid_execution.cpp.

◆ Execution()

bb::avm2::simulation::Execution::Execution ( AluInterface alu,
BitwiseInterface bitwise,
DataCopyInterface data_copy,
Poseidon2Interface poseidon2,
EccInterface ecc,
ToRadixInterface to_radix,
Sha256Interface sha256,
ExecutionComponentsProviderInterface execution_components,
ContextProviderInterface context_provider,
const InstructionInfoDBInterface instruction_info_db,
ExecutionIdManagerInterface execution_id_manager,
EventEmitterInterface< ExecutionEvent > &  event_emitter,
EventEmitterInterface< ContextStackEvent > &  ctx_stack_emitter,
KeccakF1600Interface keccakf1600,
GreaterThanInterface greater_than,
GetContractInstanceInterface get_contract_instance_component,
EmitUnencryptedLogInterface emit_unencrypted_log_component,
DebugLoggerInterface debug_log_component,
HighLevelMerkleDBInterface merkle_db 
)
inline

Definition at line 43 of file execution.hpp.


The documentation for this class was generated from the following files: