6 #ifndef KAGOME_CORE_RUNTIME_BINARYEN_CORE_API_FACTORY_IMPL_HPP 7 #define KAGOME_CORE_RUNTIME_BINARYEN_CORE_API_FACTORY_IMPL_HPP 21 class BlockHeaderRepository;
25 class TrieStorageProvider;
27 class RuntimeEnvironmentFactory;
28 class RuntimePropertiesCache;
33 class InstanceEnvironmentFactory;
34 class BinaryenMemoryFactory;
38 public std::enable_shared_from_this<CoreApiFactoryImpl> {
41 std::shared_ptr<const InstanceEnvironmentFactory> instance_env_factory,
42 std::shared_ptr<const blockchain::BlockHeaderRepository> header_repo,
43 std::shared_ptr<storage::changes_trie::ChangesTracker> changes_tracker,
44 std::shared_ptr<runtime::RuntimePropertiesCache> cache);
46 std::unique_ptr<Core> make(
47 std::shared_ptr<const crypto::Hasher> hasher,
48 const std::vector<uint8_t> &runtime_code)
const override;
52 std::shared_ptr<const blockchain::BlockHeaderRepository>
header_repo_;
54 std::shared_ptr<runtime::RuntimePropertiesCache>
cache_;
59 #endif // KAGOME_CORE_RUNTIME_BINARYEN_CORE_API_FACTORY_IMPL_HPP
std::shared_ptr< runtime::RuntimePropertiesCache > cache_
std::shared_ptr< storage::changes_trie::ChangesTracker > changes_tracker_
std::shared_ptr< const blockchain::BlockHeaderRepository > header_repo_
std::shared_ptr< const InstanceEnvironmentFactory > instance_env_factory_