From 6a72fcf8733c454d3d5286aa50035330160316af Mon Sep 17 00:00:00 2001 From: serkixenos <70147861+serkixenos@users.noreply.github.com> Date: Sat, 5 Dec 2020 03:50:31 +0100 Subject: [PATCH] Merge Master to Beatrice (#407) --- docs | 2 +- libraries/app/api.cpp | 4 +-- libraries/app/database_api.cpp | 2 +- libraries/chain/db_block.cpp | 2 +- .../graphene/chain/betting_market_object.hpp | 4 +-- .../chain/include/graphene/chain/database.hpp | 4 +-- .../include/graphene/chain/event_object.hpp | 3 +- .../chain/include/graphene/chain/impacted.hpp | 2 +- .../chain/protocol/betting_market.hpp | 6 ++-- libraries/chain/proposal_evaluator.cpp | 14 ++++++++- tests/betting/betting_tests.cpp | 2 +- tests/common/database_fixture.cpp | 7 +++-- tests/tests/network_broadcast_api_tests.cpp | 30 +++++++++---------- 13 files changed, 49 insertions(+), 33 deletions(-) diff --git a/docs b/docs index 8d8b69d8..8df8f663 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 8d8b69d82482101279460fa02f814d0e4030966f +Subproject commit 8df8f66389853df73ab8f6dd73981be2a6957df8 diff --git a/libraries/app/api.cpp b/libraries/app/api.cpp index e1baf30f..0cf3cbb3 100644 --- a/libraries/app/api.cpp +++ b/libraries/app/api.cpp @@ -181,7 +181,7 @@ namespace graphene { namespace app { void network_broadcast_api::broadcast_transaction(const signed_transaction& trx) { trx.validate(); - _app.chain_database()->check_tansaction_for_duplicated_operations(trx); + _app.chain_database()->check_transaction_for_duplicated_operations(trx); _app.chain_database()->push_transaction(trx); if( _app.p2p_node() != nullptr ) _app.p2p_node()->broadcast_transaction(trx); @@ -189,7 +189,7 @@ namespace graphene { namespace app { fc::variant network_broadcast_api::broadcast_transaction_synchronous(const signed_transaction& trx) { - _app.chain_database()->check_tansaction_for_duplicated_operations(trx); + _app.chain_database()->check_transaction_for_duplicated_operations(trx); fc::promise::ptr prom( new fc::promise() ); broadcast_transaction_with_callback( [=]( const fc::variant& v ){ diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index fbc98aa4..1fb6d140 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -83,7 +83,7 @@ class database_api_impl : public std::enable_shared_from_this // Keys vector> get_key_references( vector key )const; - bool is_public_key_registered(string public_key) const; + bool is_public_key_registered(string public_key) const; // Accounts account_id_type get_account_id_from_string(const std::string& name_or_id)const; diff --git a/libraries/chain/db_block.cpp b/libraries/chain/db_block.cpp index c7881906..c2542214 100644 --- a/libraries/chain/db_block.cpp +++ b/libraries/chain/db_block.cpp @@ -149,7 +149,7 @@ std::vector database::get_block_ids_on_fork(block_id_type head_of return result; } -void database::check_tansaction_for_duplicated_operations(const signed_transaction& trx) +void database::check_transaction_for_duplicated_operations(const signed_transaction& trx) { const auto& proposal_index = get_index(); std::set existed_operations_digests; diff --git a/libraries/chain/include/graphene/chain/betting_market_object.hpp b/libraries/chain/include/graphene/chain/betting_market_object.hpp index 36e8e664..2abe6b20 100644 --- a/libraries/chain/include/graphene/chain/betting_market_object.hpp +++ b/libraries/chain/include/graphene/chain/betting_market_object.hpp @@ -718,8 +718,8 @@ inline Stream& operator>>( Stream& s, betting_market_group_object& betting_marke } } // graphene::chain FC_REFLECT_DERIVED( graphene::chain::betting_market_rules_object, (graphene::db::object), (name)(description) ) -FC_REFLECT_DERIVED( graphene::chain::betting_market_group_object, (graphene::db::object), (description) ) -FC_REFLECT_DERIVED( graphene::chain::betting_market_object, (graphene::db::object), (group_id) ) +FC_REFLECT_DERIVED( graphene::chain::betting_market_group_object, (graphene::db::object), (description)(event_id)(rules_id)(asset_id)(total_matched_bets_amount)(never_in_play)(delay_before_settling)(settling_time) ) +FC_REFLECT_DERIVED( graphene::chain::betting_market_object, (graphene::db::object), (group_id)(description)(payout_condition)(resolution) ) FC_REFLECT_DERIVED( graphene::chain::bet_object, (graphene::db::object), (bettor_id)(betting_market_id)(amount_to_bet)(backer_multiplier)(back_or_lay)(end_of_delay) ) FC_REFLECT_DERIVED( graphene::chain::betting_market_position_object, (graphene::db::object), (bettor_id)(betting_market_id)(pay_if_payout_condition)(pay_if_not_payout_condition)(pay_if_canceled)(pay_if_not_canceled)(fees_collected) ) diff --git a/libraries/chain/include/graphene/chain/database.hpp b/libraries/chain/include/graphene/chain/database.hpp index 05927399..41c1aa2b 100644 --- a/libraries/chain/include/graphene/chain/database.hpp +++ b/libraries/chain/include/graphene/chain/database.hpp @@ -140,8 +140,8 @@ namespace graphene { namespace chain { void add_checkpoints( const flat_map& checkpts ); const flat_map get_checkpoints()const { return _checkpoints; } bool before_last_checkpoint()const; - - void check_tansaction_for_duplicated_operations(const signed_transaction& trx); + + void check_transaction_for_duplicated_operations(const signed_transaction& trx); bool push_block( const signed_block& b, uint32_t skip = skip_nothing ); processed_transaction push_transaction( const signed_transaction& trx, uint32_t skip = skip_nothing ); diff --git a/libraries/chain/include/graphene/chain/event_object.hpp b/libraries/chain/include/graphene/chain/event_object.hpp index 4258cbb1..56330029 100644 --- a/libraries/chain/include/graphene/chain/event_object.hpp +++ b/libraries/chain/include/graphene/chain/event_object.hpp @@ -158,5 +158,6 @@ typedef generic_index event_object_ return s; } } } // graphene::chain -FC_REFLECT(graphene::chain::event_object, (name)) +FC_REFLECT(graphene::chain::event_object, (name)(season)(start_time)(event_group_id)(at_least_one_betting_market_group_settled)(scores)) + diff --git a/libraries/chain/include/graphene/chain/impacted.hpp b/libraries/chain/include/graphene/chain/impacted.hpp index 3e070ce6..fae276f7 100644 --- a/libraries/chain/include/graphene/chain/impacted.hpp +++ b/libraries/chain/include/graphene/chain/impacted.hpp @@ -38,4 +38,4 @@ void transaction_get_impacted_accounts( const graphene::chain::transaction& tx, fc::flat_set& result, bool ignore_custom_operation_required_auths ); -} } // graphene::app +} } // graphene::app \ No newline at end of file diff --git a/libraries/chain/include/graphene/chain/protocol/betting_market.hpp b/libraries/chain/include/graphene/chain/protocol/betting_market.hpp index 26b6f263..8ed9e2ac 100644 --- a/libraries/chain/include/graphene/chain/protocol/betting_market.hpp +++ b/libraries/chain/include/graphene/chain/protocol/betting_market.hpp @@ -481,13 +481,13 @@ FC_REFLECT( graphene::chain::bet_place_operation, (fee)(bettor_id)(betting_market_id)(amount_to_bet)(backer_multiplier)(back_or_lay)(extensions) ) FC_REFLECT( graphene::chain::bet_matched_operation::fee_parameters_type, ) -FC_REFLECT( graphene::chain::bet_matched_operation, (bettor_id)(bet_id)(amount_bet)(backer_multiplier)(guaranteed_winnings_returned) ) +FC_REFLECT( graphene::chain::bet_matched_operation, (fee)(bettor_id)(bet_id)(amount_bet)(backer_multiplier)(guaranteed_winnings_returned) ) FC_REFLECT( graphene::chain::bet_cancel_operation::fee_parameters_type, (fee) ) FC_REFLECT( graphene::chain::bet_cancel_operation, (fee) (bettor_id) (bet_to_cancel) (extensions) ) FC_REFLECT( graphene::chain::bet_canceled_operation::fee_parameters_type, ) -FC_REFLECT( graphene::chain::bet_canceled_operation, (bettor_id)(bet_id)(stake_returned) ) +FC_REFLECT( graphene::chain::bet_canceled_operation, (fee)(bettor_id)(bet_id)(stake_returned) ) FC_REFLECT( graphene::chain::bet_adjusted_operation::fee_parameters_type, ) -FC_REFLECT( graphene::chain::bet_adjusted_operation, (bettor_id)(bet_id)(stake_returned) ) +FC_REFLECT( graphene::chain::bet_adjusted_operation, (fee) (bettor_id)(bet_id)(stake_returned) ) diff --git a/libraries/chain/proposal_evaluator.cpp b/libraries/chain/proposal_evaluator.cpp index 3ea4a836..38521284 100644 --- a/libraries/chain/proposal_evaluator.cpp +++ b/libraries/chain/proposal_evaluator.cpp @@ -62,10 +62,18 @@ struct proposal_operation_hardfork_visitor FC_ASSERT( !aco.extensions.value.affiliate_distributions.valid(), "Affiliate reward distributions not allowed yet" ); } + void operator()(const sport_create_operation &v) const { + FC_ASSERT( block_time >= HARDFORK_1000_TIME, "sport_create_operation not allowed yet!" ); + } + void operator()(const sport_update_operation &v) const { FC_ASSERT( block_time >= HARDFORK_1000_TIME, "sport_update_operation not allowed yet!" ); } + void operator()(const sport_delete_operation &v) const { + FC_ASSERT( block_time >= HARDFORK_1000_TIME, "sport_delete_operation not allowed yet!" ); + } + void operator()(const event_group_create_operation &v) const { FC_ASSERT( block_time >= HARDFORK_1000_TIME, "event_group_create_operation not allowed yet!" ); } @@ -74,6 +82,10 @@ struct proposal_operation_hardfork_visitor FC_ASSERT( block_time >= HARDFORK_1000_TIME, "event_group_update_operation not allowed yet!" ); } + void operator()(const event_group_delete_operation &v) const { + FC_ASSERT( block_time >= HARDFORK_1000_TIME, "event_group_delete_operation not allowed yet!" ); + } + void operator()(const event_create_operation &v) const { FC_ASSERT( block_time >= HARDFORK_1000_TIME, "event_create_operation not allowed yet!" ); } @@ -111,7 +123,7 @@ struct proposal_operation_hardfork_visitor } void operator()(const bet_cancel_operation &v) const { - FC_ASSERT( block_time >= HARDFORK_1000_TIME, "betting_market_group_resolve_operation not allowed yet!" ); + FC_ASSERT( block_time >= HARDFORK_1000_TIME, "bet_cancel_operation not allowed yet!" ); } void operator()(const betting_market_group_update_operation &v) const { diff --git a/tests/betting/betting_tests.cpp b/tests/betting/betting_tests.cpp index 7dff8b82..29224246 100644 --- a/tests/betting/betting_tests.cpp +++ b/tests/betting/betting_tests.cpp @@ -3013,7 +3013,7 @@ boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[]) { std::cout << "Random number generator seeded to " << time(NULL) << std::endl; // betting operations don't take effect until HARDFORK 1000 - GRAPHENE_TESTING_GENESIS_TIMESTAMP = HARDFORK_1000_TIME.sec_since_epoch() + 2; + GRAPHENE_TESTING_GENESIS_TIMESTAMP = HARDFORK_1000_TIME.sec_since_epoch() + 15; return nullptr; } diff --git a/tests/common/database_fixture.cpp b/tests/common/database_fixture.cpp index d1c8a2b6..42fd6137 100644 --- a/tests/common/database_fixture.cpp +++ b/tests/common/database_fixture.cpp @@ -57,8 +57,10 @@ using namespace graphene::chain::test; +//redefining parameters here to as per updated TESTNET parameters to verify unit test cases uint32_t GRAPHENE_TESTING_GENESIS_TIMESTAMP = 1431700002; + namespace graphene { namespace chain { using std::cout; @@ -234,8 +236,9 @@ string database_fixture::generate_anon_acct_name() void database_fixture::verify_asset_supplies( const database& db ) { //wlog("*** Begin asset supply verification ***"); - const asset_dynamic_data_object& core_asset_data = db.get_core_asset().dynamic_asset_data_id(db); - BOOST_CHECK(core_asset_data.fee_pool == 0); + // It seems peerplays by default DO have core fee pool in genesis so commenting this out + //const asset_dynamic_data_object& core_asset_data = db.get_core_asset().dynamic_asset_data_id(db); + //BOOST_CHECK(core_asset_data.fee_pool == 0); const auto& statistics_index = db.get_index_type().indices(); const auto& balance_index = db.get_index_type().indices(); diff --git a/tests/tests/network_broadcast_api_tests.cpp b/tests/tests/network_broadcast_api_tests.cpp index 4c3e7ed4..aefb7534 100644 --- a/tests/tests/network_broadcast_api_tests.cpp +++ b/tests/tests/network_broadcast_api_tests.cpp @@ -89,7 +89,7 @@ namespace } } -BOOST_FIXTURE_TEST_SUITE( check_tansaction_for_duplicated_operations, database_fixture ) +BOOST_FIXTURE_TEST_SUITE( check_transaction_for_duplicated_operations, database_fixture ) BOOST_AUTO_TEST_CASE( test_exception_throwing_for_the_same_operation_proposed_twice ) { @@ -101,7 +101,7 @@ BOOST_AUTO_TEST_CASE( test_exception_throwing_for_the_same_operation_proposed_tw auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(account_id_type(), alice_id, asset(500))}); //Modifying from BOOST_CHECK to BOOST_WARN just to make sure users might confuse about this error. If any changes in network_boradcast, would recommend to revert the changes - BOOST_WARN_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_WARN_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -117,7 +117,7 @@ BOOST_AUTO_TEST_CASE( check_passes_without_duplication ) ACTORS((alice)) auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(account_id_type(), alice_id, asset(500))}); - BOOST_CHECK_NO_THROW(db.check_tansaction_for_duplicated_operations(trx)); + BOOST_CHECK_NO_THROW(db.check_transaction_for_duplicated_operations(trx)); } catch( const fc::exception& e ) { @@ -135,7 +135,7 @@ BOOST_AUTO_TEST_CASE( check_passes_for_the_same_operation_with_different_assets create_proposal(*this, {make_transfer_operation(account_id_type(), alice_id, asset(500))}); auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(account_id_type(), alice_id, asset(501))}); - BOOST_CHECK_NO_THROW(db.check_tansaction_for_duplicated_operations(trx)); + BOOST_CHECK_NO_THROW(db.check_transaction_for_duplicated_operations(trx)); } catch( const fc::exception& e ) { @@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE( check_fails_for_duplication_in_transaction_with_several_op auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(account_id_type(), alice_id, asset(501)), make_transfer_operation(account_id_type(), alice_id, asset(500))}); //duplicated one //Modifying from BOOST_CHECK to BOOST_WARN just to make sure users might confuse about this error. If any changes in network_boradcast, would recommend to revert the changes - BOOST_WARN_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_WARN_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -176,7 +176,7 @@ BOOST_AUTO_TEST_CASE( check_fails_for_duplicated_operation_in_existed_proposal_w auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(account_id_type(), alice_id, asset(501)), make_transfer_operation(account_id_type(), alice_id, asset(500))}); //duplicated one //Modifying from BOOST_CHECK to BOOST_WARN just to make sure users might confuse about this error. If any changes in network_boradcast, would recommend to revert the changes - BOOST_WARN_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_WARN_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -196,7 +196,7 @@ BOOST_AUTO_TEST_CASE( check_fails_for_duplicated_operation_in_existed_proposal_w auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(account_id_type(), alice_id, asset(500))}); //duplicated one //Modifying from BOOST_CHECK to BOOST_WARN just to make sure users might confuse about this error. If any changes in network_boradcast, would recommend to revert the changes - BOOST_WARN_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_WARN_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -214,7 +214,7 @@ BOOST_AUTO_TEST_CASE( check_passes_for_different_operations_types ) create_proposal(*this, {make_transfer_operation(account_id_type(), alice_id, asset(500))}); auto trx = make_signed_transaction_with_proposed_operation(*this, {make_committee_member_create_operation(asset(1000), account_id_type(), "test url")}); - BOOST_CHECK_NO_THROW(db.check_tansaction_for_duplicated_operations(trx)); + BOOST_CHECK_NO_THROW(db.check_transaction_for_duplicated_operations(trx)); } catch( const fc::exception& e ) { @@ -231,7 +231,7 @@ BOOST_AUTO_TEST_CASE( check_fails_for_same_member_create_operations ) auto trx = make_signed_transaction_with_proposed_operation(*this, {make_committee_member_create_operation(asset(1000), account_id_type(), "test url")}); //Modifying from BOOST_CHECK to BOOST_WARN just to make sure users might confuse about this error. If any changes in network_boradcast, would recommend to revert the changes - BOOST_WARN_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_WARN_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -247,7 +247,7 @@ BOOST_AUTO_TEST_CASE( check_passes_for_different_member_create_operations ) create_proposal(*this, {make_committee_member_create_operation(asset(1000), account_id_type(), "test url")}); auto trx = make_signed_transaction_with_proposed_operation(*this, {make_committee_member_create_operation(asset(1001), account_id_type(), "test url")}); - BOOST_CHECK_NO_THROW(db.check_tansaction_for_duplicated_operations(trx)); + BOOST_CHECK_NO_THROW(db.check_transaction_for_duplicated_operations(trx)); } catch( const fc::exception& e ) { @@ -272,7 +272,7 @@ BOOST_AUTO_TEST_CASE( check_failes_for_several_operations_of_mixed_type ) make_committee_member_create_operation(asset(1002), account_id_type(), "test url")}); //Modifying from BOOST_CHECK to BOOST_WARN just to make sure users might confuse about this error. If any changes in network_boradcast, would recommend to revert the changes - BOOST_WARN_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_WARN_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -298,7 +298,7 @@ BOOST_AUTO_TEST_CASE( check_failes_for_duplicates_in_pending_transactions_list ) push_proposal(*this, moneyman, {duplicate}); auto trx = make_signed_transaction_with_proposed_operation(*this, {duplicate}); - BOOST_CHECK_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_CHECK_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -323,7 +323,7 @@ BOOST_AUTO_TEST_CASE( check_passes_for_no_duplicates_in_pending_transactions_lis push_proposal(*this, moneyman, {make_transfer_operation(alice.id, moneyman.get_id(), asset(100))}); auto trx = make_signed_transaction_with_proposed_operation(*this, {make_transfer_operation(alice.id, moneyman.get_id(), asset(101))}); - BOOST_CHECK_NO_THROW(db.check_tansaction_for_duplicated_operations(trx)); + BOOST_CHECK_NO_THROW(db.check_transaction_for_duplicated_operations(trx)); } catch( const fc::exception& e ) { @@ -351,7 +351,7 @@ BOOST_AUTO_TEST_CASE( check_fails_for_several_transactions_with_duplicates_in_pe auto trx = make_signed_transaction_with_proposed_operation(*this, {duplicate, make_transfer_operation(alice.id, moneyman.get_id(), asset(102))}); - BOOST_CHECK_THROW(db.check_tansaction_for_duplicated_operations(trx), fc::exception); + BOOST_CHECK_THROW(db.check_transaction_for_duplicated_operations(trx), fc::exception); } catch( const fc::exception& e ) { @@ -412,7 +412,7 @@ BOOST_AUTO_TEST_CASE( check_passes_for_duplicated_betting_market_or_group ) create_proposal(*this, { pcop1, pcop2 }); auto trx = make_signed_transaction_with_proposed_operation(*this, { pcop1, pcop2 }); - BOOST_CHECK_NO_THROW( db.check_tansaction_for_duplicated_operations(trx) ); + BOOST_CHECK_NO_THROW( db.check_transaction_for_duplicated_operations(trx) ); } catch( const fc::exception& e ) {