From cfd77773c71ce091ac9c14fb6bc0f90d85c2005d Mon Sep 17 00:00:00 2001 From: SynaptiCAD User Date: Mon, 19 Mar 2018 18:51:19 -0400 Subject: [PATCH] [DLN] reorder operations to match testnet, add asserts to reject operations before new testnet hardfork '1000' (actual hardfork time still needs to be set in 1000.hf) --- libraries/chain/betting_market_evaluator.cpp | 11 ++++++++++- libraries/chain/event_evaluator.cpp | 3 +++ libraries/chain/event_group_evaluator.cpp | 2 ++ .../include/graphene/chain/protocol/operations.hpp | 10 +++++----- libraries/chain/sport_evaluator.cpp | 2 ++ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/libraries/chain/betting_market_evaluator.cpp b/libraries/chain/betting_market_evaluator.cpp index 70ec164f..33c21056 100644 --- a/libraries/chain/betting_market_evaluator.cpp +++ b/libraries/chain/betting_market_evaluator.cpp @@ -36,6 +36,7 @@ namespace graphene { namespace chain { void_result betting_market_rules_create_evaluator::do_evaluate(const betting_market_rules_create_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); return void_result(); } FC_CAPTURE_AND_RETHROW( (op) ) } @@ -52,6 +53,7 @@ object_id_type betting_market_rules_create_evaluator::do_apply(const betting_mar void_result betting_market_rules_update_evaluator::do_evaluate(const betting_market_rules_update_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); _rules = &op.betting_market_rules_id(db()); FC_ASSERT(op.new_name.valid() || op.new_description.valid(), "nothing to update"); @@ -72,6 +74,7 @@ void_result betting_market_rules_update_evaluator::do_apply(const betting_market void_result betting_market_group_create_evaluator::do_evaluate(const betting_market_group_create_operation& op) { try { database& d = db(); + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); // the event_id in the operation can be a relative id. If it is, @@ -119,6 +122,7 @@ object_id_type betting_market_group_create_evaluator::do_apply(const betting_mar void_result betting_market_group_update_evaluator::do_evaluate(const betting_market_group_update_operation& op) { try { database& d = db(); + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); _betting_market_group = &op.betting_market_group_id(d); @@ -192,6 +196,7 @@ void_result betting_market_group_update_evaluator::do_apply(const betting_market void_result betting_market_create_evaluator::do_evaluate(const betting_market_create_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); // the betting_market_group_id in the operation can be a relative id. If it is, @@ -223,6 +228,7 @@ object_id_type betting_market_create_evaluator::do_apply(const betting_market_cr void_result betting_market_update_evaluator::do_evaluate(const betting_market_update_operation& op) { try { database& d = db(); + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); _betting_market = &op.betting_market_id(d); FC_ASSERT(op.new_group_id.valid() || op.new_description.valid() || op.new_payout_condition.valid(), "nothing to change"); @@ -261,7 +267,7 @@ void_result betting_market_update_evaluator::do_apply(const betting_market_updat void_result bet_place_evaluator::do_evaluate(const bet_place_operation& op) { try { const database& d = db(); - + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); _betting_market = &op.betting_market_id(d); _betting_market_group = &_betting_market->group_id(d); @@ -332,6 +338,7 @@ object_id_type bet_place_evaluator::do_apply(const bet_place_operation& op) void_result bet_cancel_evaluator::do_evaluate(const bet_cancel_operation& op) { try { const database& d = db(); + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); _bet_to_cancel = &op.bet_to_cancel(d); FC_ASSERT( op.bettor_id == _bet_to_cancel->bettor_id, "You can only cancel your own bets" ); @@ -347,6 +354,7 @@ void_result bet_cancel_evaluator::do_apply(const bet_cancel_operation& op) void_result betting_market_group_resolve_evaluator::do_evaluate(const betting_market_group_resolve_operation& op) { try { database& d = db(); + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); _betting_market_group = &op.betting_market_group_id(d); d.validate_betting_market_group_resolutions(*_betting_market_group, op.resolutions); return void_result(); @@ -360,6 +368,7 @@ void_result betting_market_group_resolve_evaluator::do_apply(const betting_marke void_result betting_market_group_cancel_unmatched_bets_evaluator::do_evaluate(const betting_market_group_cancel_unmatched_bets_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); _betting_market_group = &op.betting_market_group_id(db()); return void_result(); } FC_CAPTURE_AND_RETHROW( (op) ) } diff --git a/libraries/chain/event_evaluator.cpp b/libraries/chain/event_evaluator.cpp index f4e032da..8c7d812c 100644 --- a/libraries/chain/event_evaluator.cpp +++ b/libraries/chain/event_evaluator.cpp @@ -34,6 +34,7 @@ namespace graphene { namespace chain { void_result event_create_evaluator::do_evaluate(const event_create_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); //database& d = db(); @@ -72,6 +73,7 @@ object_id_type event_create_evaluator::do_apply(const event_create_operation& op void_result event_update_evaluator::do_evaluate(const event_update_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); FC_ASSERT(op.new_event_group_id || op.new_name || op.new_season || op.new_start_time || op.new_status, "nothing to change"); @@ -115,6 +117,7 @@ void_result event_update_status_evaluator::do_evaluate(const event_update_status FC_ASSERT(trx_state->_is_proposed_trx); database& d = db(); + FC_ASSERT(d.head_block_time() >= HARDFORK_1000_TIME); //check that the event to update exists _event_to_update = &op.event_id(d); diff --git a/libraries/chain/event_group_evaluator.cpp b/libraries/chain/event_group_evaluator.cpp index 1435bcd0..1b0d8195 100644 --- a/libraries/chain/event_group_evaluator.cpp +++ b/libraries/chain/event_group_evaluator.cpp @@ -33,6 +33,7 @@ namespace graphene { namespace chain { void_result event_group_create_evaluator::do_evaluate(const event_group_create_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); // the sport id in the operation can be a relative id. If it is, @@ -62,6 +63,7 @@ object_id_type event_group_create_evaluator::do_apply(const event_group_create_o void_result event_group_update_evaluator::do_evaluate(const event_group_update_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); FC_ASSERT(op.new_sport_id.valid() || op.new_name.valid(), "nothing to change"); if( op.new_sport_id.valid() ) diff --git a/libraries/chain/include/graphene/chain/protocol/operations.hpp b/libraries/chain/include/graphene/chain/protocol/operations.hpp index 8ba7edcf..58cc2cba 100644 --- a/libraries/chain/include/graphene/chain/protocol/operations.hpp +++ b/libraries/chain/include/graphene/chain/protocol/operations.hpp @@ -97,8 +97,13 @@ namespace graphene { namespace chain { asset_settle_cancel_operation, // VIRTUAL asset_claim_fees_operation, fba_distribute_operation, // VIRTUAL + tournament_create_operation, + tournament_join_operation, + game_move_operation, asset_update_dividend_operation, asset_dividend_distribution_operation, // VIRTUAL + tournament_payout_operation, // VIRTUAL + tournament_leave_operation, sport_create_operation, sport_update_operation, event_group_create_operation, @@ -117,11 +122,6 @@ namespace graphene { namespace chain { bet_matched_operation, // VIRTUAL bet_cancel_operation, bet_canceled_operation, // VIRTUAL - tournament_create_operation, - tournament_join_operation, - game_move_operation, - tournament_payout_operation, // VIRTUAL - tournament_leave_operation, betting_market_group_update_operation, betting_market_update_operation, event_update_status_operation diff --git a/libraries/chain/sport_evaluator.cpp b/libraries/chain/sport_evaluator.cpp index babcf77b..afc19da2 100644 --- a/libraries/chain/sport_evaluator.cpp +++ b/libraries/chain/sport_evaluator.cpp @@ -33,6 +33,7 @@ namespace graphene { namespace chain { void_result sport_create_evaluator::do_evaluate(const sport_create_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); return void_result(); @@ -50,6 +51,7 @@ object_id_type sport_create_evaluator::do_apply(const sport_create_operation& op void_result sport_update_evaluator::do_evaluate(const sport_update_operation& op) { try { + FC_ASSERT(db().head_block_time() >= HARDFORK_1000_TIME); FC_ASSERT(trx_state->_is_proposed_trx); FC_ASSERT(op.new_name.valid()); return void_result();