Decentralised Art Server
High-performance C++ backend that exposes HTML interface and a secure REST API for managing Performative Transactions entities
 
Loading...
Searching...
No Matches
condition.hpp
Go to the documentation of this file.
1#pragma once
2#include <string>
3#include <regex>
4#include <algorithm>
5
6#include <absl/hash/hash.h>
7#include <spdlog/spdlog.h>
8
9#include "condition.pb.h"
10
11#include "parser.hpp"
12#include "chain.hpp"
13
14namespace dcn
15{
24 template <typename H>
25 inline H AbslHashValue(H h, const Condition & c) {
26 return H::combine(std::move(h), c.name(), c.sol_src());
27 }
28
29 parse::Result<std::string> constructConditionSolidityCode(const Condition & condition);
30}
31
32namespace dcn::pt
33{
42
43 std::optional<ConditionAddedEvent> decodeConditionAddedEvent(
44 const std::uint8_t* data,
45 std::size_t data_size,
46 const evmc::bytes32 topics[],
47 std::size_t num_topics);
48
49 std::optional<ConditionAddedEvent> decodeConditionAddedEvent(
50 const std::string & data_hex,
51 const std::vector<std::string> & topics_hex);
52
53}
54
55namespace dcn::parse
56{
61 template<>
62 Result<json> parseToJson(Condition condition, use_json_t);
63
68 template<>
69 Result<Condition> parseFromJson(json json_obj, use_json_t);
70
76 template<>
77 Result<std::string> parseToJson(Condition condition, use_protobuf_t);
78
83 template<>
84 Result<Condition> parseFromJson(std::string json_str, use_protobuf_t);
85
86
91 template<>
92 Result<json> parseToJson(ConditionRecord condition_record, use_json_t);
93
98 template<>
99 Result<std::string> parseToJson(ConditionRecord condition_record, use_protobuf_t);
100
105 template<>
106 Result<ConditionRecord> parseFromJson(json json_obj, use_json_t);
107
112 template<>
113 Result<ConditionRecord> parseFromJson(std::string json_str, use_protobuf_t);
114}
evmc::address Address
Definition address.hpp:18
Definition http.hpp:190
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.
Definition condition.hpp:33
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:84
Definition decentralised_art.hpp:33
parse::Result< std::string > constructConditionSolidityCode(const Condition &condition)
Definition condition.cpp:10
H AbslHashValue(H h, const Condition &c)
Combines hash values for a Condition object.
Definition condition.hpp:25
nlohmann::json json
Definition parser.hpp:7
Definition condition.hpp:35
chain::Address owner
Definition condition.hpp:39
std::uint32_t args_count
Definition condition.hpp:40
chain::Address condition_address
Definition condition.hpp:38
std::string name
Definition condition.hpp:37
chain::Address caller
Definition condition.hpp:36