diff --git a/libraries/chain/include/graphene/chain/evaluator.hpp b/libraries/chain/include/graphene/chain/evaluator.hpp index add4bc48..74d31378 100644 --- a/libraries/chain/include/graphene/chain/evaluator.hpp +++ b/libraries/chain/include/graphene/chain/evaluator.hpp @@ -193,7 +193,9 @@ namespace graphene { namespace chain { const auto& op = o.get(); prepare_fee(op.fee_payer(), op.fee); - FC_ASSERT( core_fee_paid >= db().current_fee_schedule().calculate_fee( op ).amount ); + FC_ASSERT( core_fee_paid >= db().current_fee_schedule().calculate_fee( op ).amount, + "Insufficient Fee Paid", + ("core_fee_paid",core_fee_paid)("required",db().current_fee_schedule().calculate_fee( op ).amount) ); return eval->do_evaluate(op); } diff --git a/libraries/chain/protocol/fee_schedule.cpp b/libraries/chain/protocol/fee_schedule.cpp index 50665465..d5633a74 100644 --- a/libraries/chain/protocol/fee_schedule.cpp +++ b/libraries/chain/protocol/fee_schedule.cpp @@ -72,22 +72,24 @@ namespace graphene { namespace chain { template result_type operator()( ParamType& op )const { - memset( (char*)&op, sizeof(op), 0 ); + memset( (char*)&op, 0, sizeof(op) ); } }; void fee_schedule::zero_all_fees() { *this = get_default(); - for( auto& i : parameters ) + for( fee_parameters& i : parameters ) i.visit( zero_fee_visitor() ); } asset fee_schedule::calculate_fee( const operation& op, const price& core_exchange_rate )const { + //idump( (op)(core_exchange_rate) ); fee_parameters params; params.set_which(op.which()); auto itr = parameters.find(params); if( itr != parameters.end() ) params = *itr; + //idump( (params) ); auto base_value = op.visit( calc_fee_visitor( params ) ); auto scaled = fc::uint128(base_value) * scale; scaled /= GRAPHENE_100_PERCENT;