Scorum
scorumpower_delegation.cpp
Go to the documentation of this file.
1 #include <tuple>
6 
7 using namespace scorum::protocol;
8 
9 namespace scorum {
10 namespace chain {
11 
12 dbs_scorumpower_delegation::dbs_scorumpower_delegation(database& db)
13  : base_service_type(db)
14 {
15 }
16 
17 const scorumpower_delegation_object& dbs_scorumpower_delegation::get(const account_name_type& delegator,
18  const account_name_type& delegatee) const
19 {
20  try
21  {
22  return db_impl().get<scorumpower_delegation_object, by_delegation>(boost::make_tuple(delegator, delegatee));
23  }
24  FC_CAPTURE_AND_RETHROW((delegator)(delegatee))
25 }
26 
27 bool dbs_scorumpower_delegation::is_exists(const account_name_type& delegator, const account_name_type& delegatee) const
28 {
29  return find_by<by_delegation>(boost::make_tuple(delegator, delegatee)) != nullptr;
30 }
31 
32 const scorumpower_delegation_expiration_object& dbs_scorumpower_delegation::create_expiration(
33  const account_name_type& delegator, const asset& scorumpower, const time_point_sec& expiration)
34 {
35  const auto& new_o
36  = db_impl().create<scorumpower_delegation_expiration_object>([&](scorumpower_delegation_expiration_object& o) {
37  o.delegator = delegator;
38  o.scorumpower = scorumpower;
39  o.expiration = expiration;
40  });
41  return new_o;
42 }
43 
44 } // namespace chain
45 } // namespace scorum
tracks the blockchain state in an extensible manner
Definition: database.hpp:52
dba::db_index & db_impl()
Definition: dbs_base.cpp:22
const scorumpower_delegation_expiration_object & create_expiration(const account_name_type &delegator, const asset &scorumpower, const time_point_sec &expiration) override
fc::fixed_string_16 account_name_type
Definition: types.hpp:62
Definition: asset.cpp:15