Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
contract_instance_manager.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
barretenberg/vm2/common/aztec_types.hpp
"
4
#include "
barretenberg/vm2/common/field.hpp
"
5
#include "
barretenberg/vm2/simulation/address_derivation.hpp
"
6
#include "
barretenberg/vm2/simulation/events/contract_instance_retrieval_event.hpp
"
7
#include "
barretenberg/vm2/simulation/events/event_emitter.hpp
"
8
#include "
barretenberg/vm2/simulation/lib/db_interfaces.hpp
"
9
#include "
barretenberg/vm2/simulation/update_check.hpp
"
10
11
namespace
bb::avm2::simulation
{
12
13
struct
ContractInstanceNotFoundError
:
public
std::runtime_error {
14
ContractInstanceNotFoundError
(
AztecAddress
address
,
const
std::string& message)
15
:
std
::runtime_error(message)
16
,
address
(
address
)
17
{}
18
19
AztecAddress
address
;
20
};
21
29
class
ContractInstanceManagerInterface
{
30
public
:
31
virtual
~ContractInstanceManagerInterface
() =
default
;
32
38
virtual
std::optional<ContractInstance>
get_contract_instance
(
const
FF
&
contract_address
) = 0;
39
};
40
41
class
ContractInstanceManager
:
public
ContractInstanceManagerInterface
{
42
public
:
43
ContractInstanceManager
(
ContractDBInterface
&
contract_db
,
44
HighLevelMerkleDBInterface
&
merkle_db
,
45
UpdateCheckInterface
&
update_check
,
46
EventEmitterInterface<ContractInstanceRetrievalEvent>
&
event_emitter
);
47
48
std::optional<ContractInstance>
get_contract_instance
(
const
FF
&
contract_address
)
override
;
49
50
private
:
51
ContractDBInterface
&
contract_db
;
52
HighLevelMerkleDBInterface
&
merkle_db
;
53
UpdateCheckInterface
&
update_check
;
54
EventEmitterInterface<ContractInstanceRetrievalEvent>
&
event_emitter
;
55
};
56
57
}
// namespace bb::avm2::simulation
aztec_types.hpp
bb::avm2::get_contract_instance
Definition
get_contract_instance.hpp:33
bb::avm2::simulation::ContractDBInterface
Definition
db_interfaces.hpp:17
bb::avm2::simulation::ContractInstanceManager
Definition
contract_instance_manager.hpp:41
bb::avm2::simulation::ContractInstanceManager::merkle_db
HighLevelMerkleDBInterface & merkle_db
Definition
contract_instance_manager.hpp:52
bb::avm2::simulation::ContractInstanceManager::update_check
UpdateCheckInterface & update_check
Definition
contract_instance_manager.hpp:53
bb::avm2::simulation::ContractInstanceManager::contract_db
ContractDBInterface & contract_db
Definition
contract_instance_manager.hpp:51
bb::avm2::simulation::ContractInstanceManager::event_emitter
EventEmitterInterface< ContractInstanceRetrievalEvent > & event_emitter
Definition
contract_instance_manager.hpp:54
bb::avm2::simulation::ContractInstanceManagerInterface
Core shared component for contract instance retrieval and validation.
Definition
contract_instance_manager.hpp:29
bb::avm2::simulation::ContractInstanceManagerInterface::~ContractInstanceManagerInterface
virtual ~ContractInstanceManagerInterface()=default
bb::avm2::simulation::ContractInstanceManagerInterface::get_contract_instance
virtual std::optional< ContractInstance > get_contract_instance(const FF &contract_address)=0
Retrieve and validate a contract instance.
bb::avm2::simulation::EventEmitterInterface
Definition
event_emitter.hpp:10
bb::avm2::simulation::HighLevelMerkleDBInterface
Definition
db_interfaces.hpp:74
bb::avm2::simulation::UpdateCheckInterface
Definition
update_check.hpp:10
bb::avm2::update_check
Definition
update_check.hpp:34
contract_address
AztecAddress contract_address
Definition
written_public_data_slots_tree_check.test.cpp:96
contract_instance_retrieval_event.hpp
db_interfaces.hpp
event_emitter.hpp
bb::avm2::simulation
Definition
address_derivation.cpp:8
bb::avm2::AztecAddress
FF AztecAddress
Definition
aztec_types.hpp:11
bb::avm2::FF
AvmFlavorSettings::FF FF
Definition
field.hpp:10
std
STL namespace.
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
address_derivation.hpp
update_check.hpp
bb::avm2::simulation::ContractInstanceNotFoundError
Definition
contract_instance_manager.hpp:13
bb::avm2::simulation::ContractInstanceNotFoundError::address
AztecAddress address
Definition
contract_instance_manager.hpp:19
bb::avm2::simulation::ContractInstanceNotFoundError::ContractInstanceNotFoundError
ContractInstanceNotFoundError(AztecAddress address, const std::string &message)
Definition
contract_instance_manager.hpp:14
field.hpp
src
barretenberg
vm2
simulation
contract_instance_manager.hpp
Generated by
1.9.8