Ensure proposals for fee updates with new operations cannot happen before HF

This commit is contained in:
Fabian Schuh 2019-02-07 13:10:18 +01:00
parent 7598d54fa7
commit 80600494d7
No known key found for this signature in database
GPG key ID: F2538A4B282D6238
2 changed files with 33 additions and 6 deletions

View file

@ -71,6 +71,12 @@ namespace graphene { namespace chain {
FC_ASSERT( itr != parameters.end() );
return itr->template get<typename Operation::fee_parameters_type>();
}
template<typename Operation>
const bool exists()const
{
auto itr = parameters.find(typename Operation::fee_parameters_type());
return itr != parameters.end();
}
/**
* @note must be sorted by fee_parameters.which() and have no duplicates

View file

@ -46,13 +46,34 @@ struct proposal_operation_hardfork_visitor
void operator()(const T &v) const {}
void operator()(const committee_member_update_global_parameters_operation &op) const {
if( block_time < HARDFORK_1000_TIME ) // TODO: remove after hf
if( block_time < HARDFORK_1000_TIME ) { // TODO: remove after hf
FC_ASSERT( !op.new_parameters.extensions.value.min_bet_multiplier.valid()
&& !op.new_parameters.extensions.value.max_bet_multiplier.valid()
&& !op.new_parameters.extensions.value.betting_rake_fee_percentage.valid()
&& !op.new_parameters.extensions.value.permitted_betting_odds_increments.valid()
&& !op.new_parameters.extensions.value.live_betting_delay_time.valid(),
"Parameter extensions are not allowed yet!" );
&& !op.new_parameters.extensions.value.max_bet_multiplier.valid()
&& !op.new_parameters.extensions.value.betting_rake_fee_percentage.valid()
&& !op.new_parameters.extensions.value.permitted_betting_odds_increments.valid()
&& !op.new_parameters.extensions.value.live_betting_delay_time.valid(),
"Parameter extensions are not allowed yet!" );
FC_ASSERT( !op.new_parameters.current_fees->exists<sport_create_operation>()
&& !op.new_parameters.current_fees->exists<sport_update_operation>()
&& !op.new_parameters.current_fees->exists<sport_delete_operation>()
&& !op.new_parameters.current_fees->exists<event_group_create_operation>()
&& !op.new_parameters.current_fees->exists<event_group_update_operation>()
&& !op.new_parameters.current_fees->exists<event_group_delete_operation>()
&& !op.new_parameters.current_fees->exists<event_create_operation>()
&& !op.new_parameters.current_fees->exists<event_update_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_rules_create_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_rules_update_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_group_create_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_create_operation>()
&& !op.new_parameters.current_fees->exists<bet_place_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_group_resolve_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_group_cancel_unmatched_bets_operation>()
&& !op.new_parameters.current_fees->exists<bet_cancel_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_group_update_operation>()
&& !op.new_parameters.current_fees->exists<betting_market_update_operation>()
&& !op.new_parameters.current_fees->exists<event_update_status_operation>(),
"Bookie-specific operations not available before HARDFORK_1000_TIME" );
}
}
void operator()(const graphene::chain::tournament_payout_operation &o) const {