30 #include <boost/multi_index/composite_key.hpp> 32 namespace graphene {
namespace chain {
71 virtual void object_inserted(
const object& obj )
override;
72 virtual void object_removed(
const object& obj )
override;
73 virtual void about_to_modify(
const object& before )
override;
74 virtual void object_modified(
const object& after )
override;
79 void remove( account_id_type a, proposal_id_type p );
80 void insert_or_remove_delta( proposal_id_type p,
const flat_set<account_id_type>& before,
81 const flat_set<account_id_type>& after );
82 flat_set<account_id_type> available_active_before_modify;
83 flat_set<account_id_type> available_owner_before_modify;
87 typedef boost::multi_index_container<
90 ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >,
91 ordered_unique<tag<by_expiration>,
92 composite_key<proposal_object,
93 member<proposal_object, time_point_sec, &proposal_object::expiration_time>,
94 member< object, object_id_type, &object::id >
tracks all of the proposal objects that requrie approval of an individual account.
time_point_sec expiration_time
flat_set< account_id_type > available_active_approvals
tracks the blockchain state in an extensible manner
#define MAP_OBJECT_ID_TO_TYPE(OBJECT)
flat_set< account_id_type > required_owner_approvals
groups operations that should be applied atomically
flat_set< account_id_type > available_owner_approvals
provides stack-based nullable value similar to boost::optional
FC_REFLECT_TYPENAME(fc::log_message)
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
generic_index< proposal_object, proposal_multi_index_container > proposal_index
map< account_id_type, set< proposal_id_type > > _account_to_proposals
optional< time_point_sec > review_period_time
transaction proposed_transaction
flat_set< account_id_type > required_active_approvals
bool is_authorized_to_execute(database &db) const
boost::multi_index_container< proposal_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_expiration >, composite_key< proposal_object, member< proposal_object, time_point_sec, &proposal_object::expiration_time >, member< object, object_id_type, &object::id > > > >> proposal_multi_index_container
flat_set< public_key_type > available_key_approvals
tracks the approval of a partially approved transaction