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
dcn::chain Namespace Reference

Classes

struct  DeployError
 
struct  DeployReceipt
 
struct  ExecuteError
 
struct  ExecuteReceipt
 
class  IChain
 
struct  IngestionConfig
 
struct  IngestionRuntimeOptions
 
struct  ResolvedScalarEntries
 
struct  ScalarHashEntry
 
struct  ScalarLabel
 

Typedefs

using Address = evmc::address
 
using RpcCall = std::function< std::optional< nlohmann::json >(const std::string &rpc_url, const nlohmann::json &request)>
 
using json = nlohmann::json
 

Functions

std::optional< chain::AddressreadAddressWord (const std::uint8_t *data, std::size_t data_size, std::size_t offset=0)
 
std::optional< chain::AddressreadAddressWord (const std::vector< std::uint8_t > &data, std::size_t offset=0)
 
chain::Address topicWordToAddress (const evmc::bytes32 &topic_word)
 
chain::Address ethAddressFromPublicKey (const std::uint8_t *pubkey, std::size_t len)
 
std::vector< std::uint8_t > constructSelector (std::string signature)
 
evmc::bytes32 constructEventTopic (std::string signature)
 
std::optional< std::vector< evmc::bytes32 > > decodeTopicWords (const std::vector< std::string > &topics_hex)
 
std::uint64_t readUint256 (const std::vector< std::uint8_t > &bytes, std::size_t offset)
 
std::uint32_t readUint32Padded (const std::vector< uint8_t > &bytes, std::size_t offset)
 
std::uint32_t readUint32 (const std::vector< std::uint8_t > &bytes, std::size_t offset)
 
std::uint64_t readOffset (const std::vector< std::uint8_t > &bytes, std::size_t offset)
 
std::optional< std::size_t > readWordAsSizeT (const std::uint8_t *data, std::size_t data_size, std::size_t offset)
 
std::optional< std::uint32_t > readUint32Word (const std::uint8_t *data, std::size_t data_size, std::size_t offset)
 
std::optional< std::string > decodeAbiString (const std::uint8_t *data, std::size_t data_size, std::size_t string_offset)
 
std::optional< std::vector< std::string > > decodeAbiStringArray (const std::uint8_t *data, std::size_t data_size, std::size_t array_offset)
 
std::optional< std::vector< std::uint32_t > > decodeAbiUint32Array (const std::uint8_t *data, std::size_t data_size, std::size_t array_offset)
 
std::optional< std::vector< std::int32_t > > decodeAbiInt32Array (const std::uint8_t *data, std::size_t data_size, std::size_t array_offset)
 
bool equalBytes32 (const evmc::bytes32 &lhs, const evmc::bytes32 &rhs)
 
bool lessBytes32 (const evmc::bytes32 &lhs, const evmc::bytes32 &rhs)
 
evmc::bytes32 keccakBytes (const std::uint8_t *data, std::size_t size)
 
evmc::bytes32 keccakString (std::string_view value)
 
evmc::bytes32 composeFormatHash (const evmc::bytes32 &lhs, const evmc::bytes32 &rhs)
 
evmc::bytes32 dimPathHash (std::uint32_t dim_id)
 
evmc::bytes32 concatPathHash (const evmc::bytes32 &left, const evmc::bytes32 &right)
 
evmc::bytes32 scalarPathLabelHash (const evmc::bytes32 &scalar_hash, const evmc::bytes32 &path_hash)
 
evmc::bytes32 labelHashToFormatHash (const evmc::bytes32 &label_hash)
 
evmc::bytes32 computeFormatHashFromLabelHashes (const std::vector< evmc::bytes32 > &label_hashes)
 
evmc::bytes32 computeFormatHash (const std::vector< ScalarHashEntry > &hash_entries)
 
std::vector< ScalarLabelcanonicalizeScalarLabels (const std::vector< ScalarLabel > &labels)
 
bool scalarLabelsEqual (const std::vector< ScalarLabel > &lhs, const std::vector< ScalarLabel > &rhs)
 

Typedef Documentation

◆ Address

using dcn::chain::Address = typedef evmc::address

◆ json

using dcn::chain::json = typedef nlohmann::json

◆ RpcCall

using dcn::chain::RpcCall = typedef std::function<std::optional<nlohmann::json>(const std::string & rpc_url, const nlohmann::json & request)>

Function Documentation

◆ canonicalizeScalarLabels()

std::vector< ScalarLabel > dcn::chain::canonicalizeScalarLabels ( const std::vector< ScalarLabel > &  labels)

◆ composeFormatHash()

evmc::bytes32 dcn::chain::composeFormatHash ( const evmc::bytes32 &  lhs,
const evmc::bytes32 &  rhs 
)

◆ computeFormatHash()

evmc::bytes32 dcn::chain::computeFormatHash ( const std::vector< ScalarHashEntry > &  hash_entries)

◆ computeFormatHashFromLabelHashes()

evmc::bytes32 dcn::chain::computeFormatHashFromLabelHashes ( const std::vector< evmc::bytes32 > &  label_hashes)

◆ concatPathHash()

evmc::bytes32 dcn::chain::concatPathHash ( const evmc::bytes32 &  left,
const evmc::bytes32 &  right 
)

◆ constructEventTopic()

evmc::bytes32 dcn::chain::constructEventTopic ( std::string  signature)

◆ constructSelector()

std::vector< std::uint8_t > dcn::chain::constructSelector ( std::string  signature)

◆ decodeAbiInt32Array()

std::optional< std::vector< std::int32_t > > dcn::chain::decodeAbiInt32Array ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  array_offset 
)

◆ decodeAbiString()

std::optional< std::string > dcn::chain::decodeAbiString ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  string_offset 
)

◆ decodeAbiStringArray()

std::optional< std::vector< std::string > > dcn::chain::decodeAbiStringArray ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  array_offset 
)

◆ decodeAbiUint32Array()

std::optional< std::vector< std::uint32_t > > dcn::chain::decodeAbiUint32Array ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  array_offset 
)

◆ decodeTopicWords()

std::optional< std::vector< evmc::bytes32 > > dcn::chain::decodeTopicWords ( const std::vector< std::string > &  topics_hex)

◆ dimPathHash()

evmc::bytes32 dcn::chain::dimPathHash ( std::uint32_t  dim_id)

◆ equalBytes32()

bool dcn::chain::equalBytes32 ( const evmc::bytes32 &  lhs,
const evmc::bytes32 &  rhs 
)

◆ ethAddressFromPublicKey()

chain::Address dcn::chain::ethAddressFromPublicKey ( const std::uint8_t *  pubkey,
std::size_t  len 
)

◆ keccakBytes()

evmc::bytes32 dcn::chain::keccakBytes ( const std::uint8_t *  data,
std::size_t  size 
)

◆ keccakString()

evmc::bytes32 dcn::chain::keccakString ( std::string_view  value)

◆ labelHashToFormatHash()

evmc::bytes32 dcn::chain::labelHashToFormatHash ( const evmc::bytes32 &  label_hash)

◆ lessBytes32()

bool dcn::chain::lessBytes32 ( const evmc::bytes32 &  lhs,
const evmc::bytes32 &  rhs 
)

◆ readAddressWord() [1/2]

std::optional< chain::Address > dcn::chain::readAddressWord ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  offset = 0 
)

◆ readAddressWord() [2/2]

std::optional< chain::Address > dcn::chain::readAddressWord ( const std::vector< std::uint8_t > &  data,
std::size_t  offset = 0 
)

◆ readOffset()

std::uint64_t dcn::chain::readOffset ( const std::vector< std::uint8_t > &  bytes,
std::size_t  offset 
)

◆ readUint256()

std::uint64_t dcn::chain::readUint256 ( const std::vector< std::uint8_t > &  bytes,
std::size_t  offset 
)

◆ readUint32()

std::uint32_t dcn::chain::readUint32 ( const std::vector< std::uint8_t > &  bytes,
std::size_t  offset 
)

◆ readUint32Padded()

std::uint32_t dcn::chain::readUint32Padded ( const std::vector< uint8_t > &  bytes,
std::size_t  offset 
)

◆ readUint32Word()

std::optional< std::uint32_t > dcn::chain::readUint32Word ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  offset 
)

◆ readWordAsSizeT()

std::optional< std::size_t > dcn::chain::readWordAsSizeT ( const std::uint8_t *  data,
std::size_t  data_size,
std::size_t  offset 
)

◆ scalarLabelsEqual()

bool dcn::chain::scalarLabelsEqual ( const std::vector< ScalarLabel > &  lhs,
const std::vector< ScalarLabel > &  rhs 
)

◆ scalarPathLabelHash()

evmc::bytes32 dcn::chain::scalarPathLabelHash ( const evmc::bytes32 &  scalar_hash,
const evmc::bytes32 &  path_hash 
)

◆ topicWordToAddress()

chain::Address dcn::chain::topicWordToAddress ( const evmc::bytes32 &  topic_word)