#pragma once #include #include #include namespace graphene { namespace chain { using namespace graphene::db; class nft_metadata_object : public abstract_object { public: static const uint8_t space_id = protocol_ids; static const uint8_t type_id = nft_metadata_type; account_id_type owner; std::string name; std::string symbol; std::string base_uri; optional revenue_partner; optional revenue_split; bool is_transferable = false; bool is_sellable = true; optional account_role; }; class nft_object : public abstract_object { public: static const uint8_t space_id = protocol_ids; static const uint8_t type_id = nft_object_type; nft_metadata_id_type nft_metadata_id; account_id_type owner; account_id_type approved; vector approved_operators; std::string token_uri; }; struct by_name; struct by_symbol; using nft_metadata_multi_index_type = multi_index_container< nft_metadata_object, indexed_by< ordered_unique< tag, member >, ordered_unique< tag, member >, ordered_unique< tag, member > > >; using nft_metadata_index = generic_index; struct by_metadata; struct by_metadata_and_owner; struct by_owner; struct by_owner_and_id; using nft_multi_index_type = multi_index_container< nft_object, indexed_by< ordered_unique< tag, member >, ordered_non_unique< tag, member >, ordered_non_unique< tag, composite_key, member > >, ordered_non_unique< tag, member >, ordered_unique< tag, composite_key, member > > > >; using nft_index = generic_index; } } // graphene::chain FC_REFLECT_DERIVED( graphene::chain::nft_metadata_object, (graphene::db::object), (owner) (name) (symbol) (base_uri) (revenue_partner) (revenue_split) (is_transferable) (is_sellable) (account_role) ) FC_REFLECT_DERIVED( graphene::chain::nft_object, (graphene::db::object), (nft_metadata_id) (owner) (approved) (approved_operators) (token_uri) )