From 8d8b84cc37cf6862fdd30191bcb859ccbd0c6042 Mon Sep 17 00:00:00 2001 From: abitmore Date: Wed, 18 Oct 2017 22:01:32 +0000 Subject: [PATCH] Proof of concept fix for asset creation fee issue --- libraries/chain/asset_evaluator.cpp | 8 ++++++-- .../chain/include/graphene/chain/asset_evaluator.hpp | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libraries/chain/asset_evaluator.cpp b/libraries/chain/asset_evaluator.cpp index 4e3e9b96..91da528d 100644 --- a/libraries/chain/asset_evaluator.cpp +++ b/libraries/chain/asset_evaluator.cpp @@ -93,8 +93,6 @@ void_result asset_create_evaluator::do_evaluate( const asset_create_operation& o wlog( "Asset ${s} has a name which requires hardfork 385", ("s",op.symbol) ); } - core_fee_paid -= core_fee_paid.value/2; - if( op.bitasset_opts ) { const asset_object& backing = op.bitasset_opts->short_backing_asset(d); @@ -121,6 +119,12 @@ void_result asset_create_evaluator::do_evaluate( const asset_create_operation& o return void_result(); } FC_CAPTURE_AND_RETHROW( (op) ) } +void asset_create_evaluator::pay_fee() +{ + core_fee_paid -= core_fee_paid.value/2; + generic_evaluator::pay_fee(); +} + object_id_type asset_create_evaluator::do_apply( const asset_create_operation& op ) { try { const asset_dynamic_data_object& dyn_asset = diff --git a/libraries/chain/include/graphene/chain/asset_evaluator.hpp b/libraries/chain/include/graphene/chain/asset_evaluator.hpp index 234a60d7..26605a4f 100644 --- a/libraries/chain/include/graphene/chain/asset_evaluator.hpp +++ b/libraries/chain/include/graphene/chain/asset_evaluator.hpp @@ -35,6 +35,11 @@ namespace graphene { namespace chain { void_result do_evaluate( const asset_create_operation& o ); object_id_type do_apply( const asset_create_operation& o ); + + /** override the default behavior defined by generic_evalautor which is to + * post the fee to fee_paying_account_stats.pending_fees + */ + virtual void pay_fee() override; }; class asset_issue_evaluator : public evaluator