Scorum
update_nft_meta_evaluator.cpp
Go to the documentation of this file.
2 
5 
11 
12 namespace scorum {
13 namespace chain {
17  : evaluator_impl<data_service_factory_i, update_nft_meta_evaluator>(services)
18  , _account_dba(account_dba)
19  , _nft_dba(nft_dba)
20  , _hardfork_service(services.hardfork_property_service())
21 {
22 }
23 
25 {
26  FC_ASSERT(_hardfork_service.has_hardfork(SCORUM_HARDFORK_0_5), "Hardfork #5 is required");
27  FC_ASSERT(_nft_dba.is_exists_by<by_uuid>(op.uuid), R"(NFT with uuid "${uuid}" must exist.)", ("uuid", op.uuid));
28  FC_ASSERT(_account_dba.is_exists_by<by_name>(op.moderator), R"(Account "${moderator}" must exist.)",
29  ("moderator", op.moderator));
30 
31 #ifndef IS_LOW_MEM
32  auto& nft = _nft_dba.get_by<by_uuid>(op.uuid);
33  _nft_dba.update(nft, [&](auto& nft) { fc::from_string(nft.json_metadata, op.json_metadata); });
34 #endif
35 }
36 } // namespace chain
37 } // namespace scorum
bool is_exists_by(const Key &arg) const
update_nft_meta_evaluator(data_service_factory_i &, dba::db_accessor< account_object > &, dba::db_accessor< nft_object > &)
Definition: asset.cpp:15
virtual bool has_hardfork(uint32_t hardfork) const =0
This operation update NFT metadata.