29 namespace graphene {
namespace chain {
32 class generic_evaluator;
33 class transaction_evaluation_state;
35 class account_statistics_object;
37 class asset_dynamic_data_object;
137 return eval.start_evaluate(eval_state, op,
apply);
141 template<
typename DerivedEvaluator>
145 virtual int get_type()
const override {
return operation::tag<typename DerivedEvaluator::operation_type>::value; }
149 auto* eval =
static_cast<DerivedEvaluator*
>(
this);
150 const auto& op = o.
get<
typename DerivedEvaluator::operation_type>();
158 "Insufficient Fee Paid",
162 return eval->do_evaluate(op);
167 auto* eval =
static_cast<DerivedEvaluator*
>(
this);
168 const auto& op = o.
get<
typename DerivedEvaluator::operation_type>();
173 auto result = eval->do_apply(op);
const asset_object * fee_asset
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)
This class represents an account on the object graphAccounts are the primary unit of authority on the...
tracks the blockchain state in an extensible manner
const account_object * fee_paying_account
object_id_type get_relative_id(object_id_type rel_id) const
virtual operation_result evaluate(const operation &op)=0
virtual int get_type() const =0
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 calculate_fee_for_operation(const operation &op) const
virtual operation_result apply(const operation &o) final override
const account_statistics_object * fee_paying_account_statistics
virtual void convert_fee()
tracks the parameters of an assetAll assets have a globally unique symbol name that controls how they...
bool skip_fee_schedule_check
virtual operation_result start_evaluate(transaction_evaluation_state &eval_state, const operation &op, bool apply)
virtual operation_result apply(const operation &op)=0
#define GRAPHENE_ASSERT(expr, exc_type, FORMAT,...)
virtual int get_type() const override
virtual operation_result evaluate(const operation &o) final override
virtual ~generic_evaluator()
const asset_dynamic_data_object * fee_asset_dyn_data
virtual operation_result evaluate(transaction_evaluation_state &eval_state, const operation &op, bool apply=true) override
transaction_evaluation_state * trx_state