10namespace fc {
namespace crypto {
24 using storage_type = std::variant<ecc::signature_shim, r1::signature_shim, webauthn::signature, em::signature_shim>;
32 explicit signature(
const string& base58str);
62 void from_variant(
const variant& var, crypto::signature& vo);
66 template <>
struct hash<
fc::crypto::signature> {
signature(signature &&)=default
signature & operator=(const signature &)=default
friend bool operator!=(const signature &p1, const signature &p2)
std::variant< ecc::signature_shim, r1::signature_shim, webauthn::signature, em::signature_shim > storage_type
size_t variable_size() const
friend std::size_t hash_value(const signature &b)
std::string to_string(const fc::yield_function_t &yield=fc::yield_function_t()) const
friend bool operator==(const signature &p1, const signature &p2)
signature(const signature &)=default
friend bool operator<(const signature &p1, const signature &p2)
constexpr const char * signature_prefix[]
constexpr const char * signature_base_prefix
size_t hash_value(const signature &b)
void from_variant(const fc::variant &v, sysio::chain::chain_id_type &cid)
void to_variant(const sysio::chain::shared_public_key &var, fc::variant &vo)
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
defines visit functions for T Unless this is specialized, visit() will not be defined for T.
std::size_t operator()(const fc::crypto::signature &k) const