BitShares-Core
7.0.2
BitShares blockchain node software and command-line wallet software
|
Go to the documentation of this file.
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);
virtual int get_type() const override
typename impl::apply< List, Delegate >::type apply
Apply a list of types as arguments to another template.
tracks the blockchain state in an extensible manner
const account_statistics_object * fee_paying_account_statistics
bool skip_fee_schedule_check
virtual operation_result evaluate(transaction_evaluation_state &eval_state, const operation &op, bool apply)=0
object_id_type get_relative_id(object_id_type rel_id) const
const asset_object * fee_asset
virtual operation_result apply(const operation &op)=0
tracks the parameters of an asset
virtual operation_result evaluate(transaction_evaluation_state &eval_state, const operation &op, bool apply=true) override
void pay_fba_fee(uint64_t fba_id)
virtual void convert_fee()
tracks the asset information that changes frequently
This class represents an account on the object graph.
void db_adjust_balance(const account_id_type &fee_payer, asset fee_from_account)
const asset_dynamic_data_object * fee_asset_dyn_data
virtual operation_result apply(const operation &o) final override
virtual int get_type() const =0
share_type calculate_fee_for_operation(const operation &op) const
virtual operation_result evaluate(const operation &op)=0
virtual operation_result evaluate(const operation &o) final override
void prepare_fee(account_id_type account_id, asset fee)
Fetch objects relevant to fee payer and set pointer members.
const account_object * fee_paying_account
virtual operation_result start_evaluate(transaction_evaluation_state &eval_state, const operation &op, bool apply)
#define GRAPHENE_ASSERT(expr, exc_type, FORMAT,...)
transaction_evaluation_state * trx_state
virtual ~generic_evaluator()