6 #ifndef KAGOME_CORE_RUNTIME_WAVM_INSTANCE_ENVIRONMENT_FACTORY_HPP 7 #define KAGOME_CORE_RUNTIME_WAVM_INSTANCE_ENVIRONMENT_FACTORY_HPP 25 class BlockHeaderRepository;
33 class SingleModuleCache;
34 class RuntimePropertiesCache;
38 class IntrinsicModule;
39 class IntrinsicModuleInstance;
40 class IntrinsicResolver;
41 class CompartmentWrapper;
45 :
public std::enable_shared_from_this<InstanceEnvironmentFactory> {
48 std::shared_ptr<storage::trie::TrieStorage> storage,
49 std::shared_ptr<storage::trie::TrieSerializer> serializer,
50 std::shared_ptr<CompartmentWrapper> compartment,
51 std::shared_ptr<ModuleParams> module_params,
52 std::shared_ptr<IntrinsicModule> intrinsic_module,
53 std::shared_ptr<host_api::HostApiFactory> host_api_factory,
54 std::shared_ptr<blockchain::BlockHeaderRepository> block_header_repo,
55 std::shared_ptr<storage::changes_trie::ChangesTracker> changes_tracker,
56 std::shared_ptr<SingleModuleCache> last_compiled_module,
57 std::shared_ptr<RuntimePropertiesCache> cache);
62 WAVM::Runtime::Instance *runtime_instance,
63 std::shared_ptr<IntrinsicModuleInstance> intrinsic_instance)
const;
66 std::shared_ptr<storage::trie::TrieStorage>
storage_;
75 std::shared_ptr<RuntimePropertiesCache>
cache_;
80 #endif // KAGOME_CORE_RUNTIME_WAVM_INSTANCE_ENVIRONMENT_FACTORY_HPP
std::shared_ptr< storage::trie::TrieSerializer > serializer_
std::shared_ptr< blockchain::BlockHeaderRepository > block_header_repo_
std::shared_ptr< IntrinsicModule > intrinsic_module_
std::shared_ptr< ModuleParams > module_params_
std::shared_ptr< host_api::HostApiFactory > host_api_factory_
std::shared_ptr< storage::changes_trie::ChangesTracker > changes_tracker_
std::shared_ptr< storage::trie::TrieStorage > storage_
std::shared_ptr< RuntimePropertiesCache > cache_
std::shared_ptr< SingleModuleCache > last_compiled_module_
std::shared_ptr< CompartmentWrapper > compartment_