void database::pay_order( const account_object& receiver, const asset& receives, const asset& pays ) { const auto& balances = receiver.statistics(*this); modify( balances, [&]( account_statistics_object& b ){ if( pays.asset_id == asset_id_type() ) b.total_core_in_orders -= pays.amount; }); adjust_balance(receiver.get_id(), receives); }
void update_peer_stats( const account_object& voter, const account_object& author, const comment_object& c, int vote )const { if( voter.id == author.id ) return; /// ignore votes for yourself if( c.parent_author.size() ) return; /// only count top level posts const auto& stat = get_or_create_peer_stats( voter.get_id(), author.get_id() ); _db.modify( stat, [&]( peer_stats_object& obj ) { obj.direct_votes++; obj.direct_positive_votes += vote > 0; obj.update_rank(); }); const auto& voteidx = _db.get_index_type<comment_vote_index>().indices().get<by_comment_voter>(); auto itr = voteidx.lower_bound( boost::make_tuple( comment_id_type(c.id), account_id_type() ) ); while( itr != voteidx.end() && itr->comment == c.id ) { update_indirect_vote( voter.id, itr->voter, (itr->vote_percent > 0) == (vote > 0) ); ++itr; } }
void database_fixture::upgrade_to_annual_member(const account_object& account) { try { account_upgrade_operation op; op.account_to_upgrade = account.get_id(); op.fee = db.get_global_properties().parameters.current_fees->calculate_fee(op); trx.operations = {op}; db.push_transaction(trx, ~0); FC_ASSERT( op.account_to_upgrade(db).is_member(db.head_block_time()) ); trx.clear(); verify_asset_supplies(db); } FC_CAPTURE_AND_RETHROW((account)) }
int64_t database_fixture::get_balance( const account_object& account, const asset_object& a )const { return db.get_balance(account.get_id(), a.get_id()).amount.value; }