6#include <absl/hash/hash.h>
7#include <spdlog/spdlog.h>
9#include "condition.pb.h"
26 return H::combine(std::move(h), c.name(), c.args_count());
51 const std::uint8_t* data,
52 std::size_t data_size,
53 const evmc::bytes32 topics[],
54 std::size_t num_topics);
57 const std::string & data_hex,
58 const std::vector<std::string> & topics_hex);
evmc::address Address
Definition address.hpp:18
Result< json > parseToJson(T message, use_json_t)
Converts a T to a JSON object using JSON.
Result< T > parseFromJson(json json, use_json_t)
Converts a JSON string to a T using JSON.
std::expected< T, ParseError > Result
Definition parse_error.hpp:26
Definition condition.hpp:40
std::optional< ConditionAddedEvent > decodeConditionAddedEvent(const std::uint8_t *data, std::size_t data_size, const evmc::bytes32 topics[], std::size_t num_topics)
Definition condition.cpp:96
Definition decentralised_art.hpp:35
parse::Result< std::string > constructConditionSolidityCode(const Condition &condition)
Definition condition.cpp:45
H AbslHashValue(H h, const Condition &c)
Combines hash values for a Condition object.
Definition condition.hpp:25
parse::Result< std::uint32_t > countConditionArgs(const std::string &sol_src)
Counts the number of distinct args[N] slots referenced by a condition's source. This is the chain-der...
Definition condition.cpp:10
nlohmann::json json
Definition parser.hpp:7
Definition condition.hpp:42
chain::Address owner
Definition condition.hpp:46
std::uint32_t args_count
Definition condition.hpp:47
chain::Address condition_address
Definition condition.hpp:45
std::string name
Definition condition.hpp:44
chain::Address caller
Definition condition.hpp:43