69 maybe_instance.has_value(),
70 "Derived address should be found if the instance was retrieved and vice versa");
73 .address = contract_address,
75 .nullifier_tree_root = tree_state.nullifier_tree.tree.root,
76 .public_data_tree_root = tree_state.public_data_tree.tree.root,
77 .exists = derived_address.has_value(),
78 .is_protocol_contract =
true,
80 return maybe_instance;
86 .address = contract_address,
87 .contract_instance = {},
88 .nullifier_tree_root = tree_state.nullifier_tree.tree.root,
89 .public_data_tree_root = tree_state.public_data_tree.tree.root,
90 .deployment_nullifier = contract_address,
98 "Contract instance should be found if nullifier exists: address=" << contract_address);
102 update_check.check_current_class_id(contract_address, instance);
105 .address = contract_address,
106 .contract_instance = instance,
108 .nullifier_tree_root = tree_state.nullifier_tree.tree.root,
109 .public_data_tree_root = tree_state.public_data_tree.tree.root,
110 .deployment_nullifier = contract_address,
ContractInstanceManager(ContractDBInterface &contract_db, HighLevelMerkleDBInterface &merkle_db, UpdateCheckInterface &update_check, FieldGreaterThanInterface &ff_gt, const ProtocolContracts &protocol_contracts, EventEmitterInterface< ContractInstanceRetrievalEvent > &event_emitter)
Construct a ContractInstanceManager.