fix zero all fees #144
This commit is contained in:
parent
c8f0ea4abe
commit
c8f200868c
2 changed files with 7 additions and 3 deletions
|
|
@ -193,7 +193,9 @@ namespace graphene { namespace chain {
|
||||||
const auto& op = o.get<typename DerivedEvaluator::operation_type>();
|
const auto& op = o.get<typename DerivedEvaluator::operation_type>();
|
||||||
|
|
||||||
prepare_fee(op.fee_payer(), op.fee);
|
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);
|
return eval->do_evaluate(op);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,22 +72,24 @@ namespace graphene { namespace chain {
|
||||||
template<typename ParamType>
|
template<typename ParamType>
|
||||||
result_type operator()( ParamType& op )const
|
result_type operator()( ParamType& op )const
|
||||||
{
|
{
|
||||||
memset( (char*)&op, sizeof(op), 0 );
|
memset( (char*)&op, 0, sizeof(op) );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void fee_schedule::zero_all_fees()
|
void fee_schedule::zero_all_fees()
|
||||||
{
|
{
|
||||||
*this = get_default();
|
*this = get_default();
|
||||||
for( auto& i : parameters )
|
for( fee_parameters& i : parameters )
|
||||||
i.visit( zero_fee_visitor() );
|
i.visit( zero_fee_visitor() );
|
||||||
}
|
}
|
||||||
|
|
||||||
asset fee_schedule::calculate_fee( const operation& op, const price& core_exchange_rate )const
|
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());
|
fee_parameters params; params.set_which(op.which());
|
||||||
auto itr = parameters.find(params);
|
auto itr = parameters.find(params);
|
||||||
if( itr != parameters.end() ) params = *itr;
|
if( itr != parameters.end() ) params = *itr;
|
||||||
|
//idump( (params) );
|
||||||
auto base_value = op.visit( calc_fee_visitor( params ) );
|
auto base_value = op.visit( calc_fee_visitor( params ) );
|
||||||
auto scaled = fc::uint128(base_value) * scale;
|
auto scaled = fc::uint128(base_value) * scale;
|
||||||
scaled /= GRAPHENE_100_PERCENT;
|
scaled /= GRAPHENE_100_PERCENT;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue