27 #include <graphene/chain/hardfork.hpp> 38 namespace graphene {
namespace chain {
47 if( apply ) result = this->
apply( op );
63 "Account ${acct} '${name}' attempted to pay fee by using asset ${a} '${sym}', " 64 "which is unauthorized due to whitelist / blacklist",
75 FC_ASSERT( core_fee_paid <= fee_asset_dyn_data->fee_pool,
"Fee pool balance of '${b}' is less than the ${r} required to convert ${c}",
const asset_object * fee_asset
void modify(const T &obj, const Lambda &m)
chain_parameters parameters
void adjust_balance(account_id_type account, asset delta)
Adjust a particular account's balance in a given asset by a delta.
void prepare_fee(account_id_type account_id, asset fee)
Fetch objects relevant to fee payer and set pointer members.
void db_adjust_balance(const account_id_type &fee_payer, asset fee_from_account)
bool is_authorized_asset(const database &d, const account_object &acct, const asset_object &asset_obj)
tracks the blockchain state in an extensible manner
asset calculate_fee(const operation &op) const
const account_object * fee_paying_account
bool is_configured(const database &db) const
virtual operation_result evaluate(const operation &op)=0
const fee_schedule & current_fee_schedule() const
std::string to_pretty_string(int64_t)
object_id< SpaceID, TypeID > get_id() const
const T & get(const object_id_type &id) const
asset_dynamic_data_id_type dynamic_asset_data_id
Current supply, fee pool, and collected fees are stored in a separate object as they change frequentl...
string symbol
Ticker symbol for this asset, i.e. "USD".
share_type accumulated_fba_fees
#define FC_CAPTURE_AND_RETHROW(...)
#define FC_ASSERT(TEST,...)
Checks a condition and throws an assert_exception if the test is FALSE.
string name
The account's name. This name must be unique among all account names on the graph. May not be empty.
void pay_fba_fee(uint64_t fba_id)
tracks the asset information that changes frequentlyBecause the asset_object is very large it doesn't...
share_type cashback_vesting_threshold
the maximum cashback that can be received without vesting
share_type calculate_fee_for_operation(const operation &op) const
void pay_fee(share_type core_fee, share_type cashback_vesting_threshold)
share_type fee_pool
in core asset
const account_statistics_object * fee_paying_account_statistics
share_type accumulated_fees
fees accumulate to be paid out over time
virtual void convert_fee()
virtual operation_result start_evaluate(transaction_evaluation_state &eval_state, const operation &op, bool apply)
virtual operation_result apply(const operation &op)=0
account_statistics_id_type statistics
const asset_dynamic_data_object * fee_asset_dyn_data
const global_property_object & get_global_properties() const
transaction_evaluation_state * trx_state