6 #ifndef KAGOME_CORE_RUNTIME_WAVM_CORE_API_PROVIDER_HPP 7 #define KAGOME_CORE_RUNTIME_WAVM_CORE_API_PROVIDER_HPP 22 class BlockHeaderRepository;
27 class ModuleRepository;
28 class SingleModuleCache;
29 class RuntimePropertiesCache;
34 class IntrinsicModule;
35 class CompartmentWrapper;
36 class InstanceEnvironmentFactory;
41 public std::enable_shared_from_this<CoreApiFactoryImpl> {
44 std::shared_ptr<CompartmentWrapper> compartment,
45 std::shared_ptr<ModuleParams> module_params,
46 std::shared_ptr<IntrinsicModule> intrinsic_module,
47 std::shared_ptr<storage::trie::TrieStorage> storage,
48 std::shared_ptr<blockchain::BlockHeaderRepository> block_header_repo,
49 std::shared_ptr<const InstanceEnvironmentFactory> instance_env_factory,
50 std::shared_ptr<storage::changes_trie::ChangesTracker> changes_tracker,
51 std::shared_ptr<SingleModuleCache> last_compiled_module,
52 std::shared_ptr<runtime::RuntimePropertiesCache> cache);
54 [[nodiscard]] std::unique_ptr<Core> make(
55 std::shared_ptr<const crypto::Hasher> hasher,
56 const std::vector<uint8_t> &runtime_code)
const override;
63 std::shared_ptr<storage::trie::TrieStorage>
storage_;
67 std::shared_ptr<runtime::RuntimePropertiesCache>
cache_;
72 #endif // KAGOME_CORE_RUNTIME_WAVM_CORE_API_PROVIDER_HPP
std::shared_ptr< storage::changes_trie::ChangesTracker > changes_tracker_
std::shared_ptr< ModuleParams > module_params_
std::shared_ptr< CompartmentWrapper > compartment_
std::shared_ptr< runtime::RuntimePropertiesCache > cache_
std::shared_ptr< IntrinsicModule > intrinsic_module_
std::shared_ptr< SingleModuleCache > last_compiled_module_
std::shared_ptr< storage::trie::TrieStorage > storage_
std::shared_ptr< const InstanceEnvironmentFactory > instance_env_factory_
std::shared_ptr< blockchain::BlockHeaderRepository > block_header_repo_