hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
vm_caller.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_AMETSUCHI_VM_CALLER_HPP
7 #define IROHA_AMETSUCHI_VM_CALLER_HPP
8 
9 #include <functional>
10 #include <memory>
11 #include <optional>
12 #include <string>
13 
14 #include "common/result_fwd.hpp"
17 
18 namespace iroha::ametsuchi {
19  class BurrowStorage;
20  class CommandExecutor;
21  class SpecificQueryExecutor;
22 
23  class VmCaller {
24  public:
25  virtual ~VmCaller() = default;
26 
28  call(std::string const &tx_hash,
30  shared_model::interface::types::EvmCodeHexStringView input,
32  std::optional<shared_model::interface::types::EvmCalleeHexStringView>
33  callee,
34  BurrowStorage &burrow_storage,
35  CommandExecutor &command_executor,
36  SpecificQueryExecutor &query_executor) const = 0;
37  };
38 } // namespace iroha::ametsuchi
39 
40 #endif
Definition: block_query.hpp:17
Definition: specific_query_executor.hpp:30
Definition: result_fwd.hpp:27
virtual ~VmCaller()=default
std::string AccountIdType
Type of account id.
Definition: types.hpp:38
Definition: command_executor.hpp:48
Definition: burrow_storage.hpp:19
virtual iroha::expected::Result< std::optional< std::string >, std::string > call(std::string const &tx_hash, shared_model::interface::types::CommandIndexType cmd_index, shared_model::interface::types::EvmCodeHexStringView input, shared_model::interface::types::AccountIdType const &caller, std::optional< shared_model::interface::types::EvmCalleeHexStringView > callee, BurrowStorage &burrow_storage, CommandExecutor &command_executor, SpecificQueryExecutor &query_executor) const =0
int32_t CommandIndexType
Type of command index within a transaction.
Definition: types.hpp:100
Definition: vm_caller.hpp:23