From 5a922821da3591184dfe5ca6de798bb6c64657eb Mon Sep 17 00:00:00 2001 From: serkixenos Date: Thu, 16 Dec 2021 17:37:51 -0400 Subject: [PATCH 1/2] Revert change to a son_update_operation --- libraries/app/application.cpp | 4 ++-- libraries/chain/include/graphene/chain/protocol/son.hpp | 3 +-- libraries/chain/son_evaluator.cpp | 5 +---- libraries/wallet/wallet.cpp | 1 - 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/libraries/app/application.cpp b/libraries/app/application.cpp index 713a204a..1ecdd8f7 100644 --- a/libraries/app/application.cpp +++ b/libraries/app/application.cpp @@ -859,11 +859,11 @@ application::~application() { void application::set_program_options(boost::program_options::options_description &cli, boost::program_options::options_description &cfg) const { - cfg.add_options()("p2p-endpoint", bpo::value(), "Endpoint for P2P node to listen on"); + cfg.add_options()("p2p-endpoint", bpo::value()->default_value("0.0.0.0:9777"), "Endpoint for P2P node to listen on"); cfg.add_options()("seed-node,s", bpo::value>()->composing(), "P2P nodes to connect to on startup (may specify multiple times)"); cfg.add_options()("seed-nodes", bpo::value()->composing(), "JSON array of P2P nodes to connect to on startup"); cfg.add_options()("checkpoint,c", bpo::value>()->composing(), "Pairs of [BLOCK_NUM,BLOCK_ID] that should be enforced as checkpoints."); - cfg.add_options()("rpc-endpoint", bpo::value()->implicit_value("127.0.0.1:8090"), "Endpoint for websocket RPC to listen on"); + cfg.add_options()("rpc-endpoint", bpo::value()->default_value("127.0.0.1:8090"), "Endpoint for websocket RPC to listen on"); cfg.add_options()("rpc-tls-endpoint", bpo::value()->implicit_value("127.0.0.1:8089"), "Endpoint for TLS websocket RPC to listen on"); cfg.add_options()("server-pem,p", bpo::value()->implicit_value("server.pem"), "The TLS certificate file for this server"); cfg.add_options()("server-pem-password,P", bpo::value()->implicit_value(""), "Password for this certificate"); diff --git a/libraries/chain/include/graphene/chain/protocol/son.hpp b/libraries/chain/include/graphene/chain/protocol/son.hpp index 42ead5b6..9d6ef653 100644 --- a/libraries/chain/include/graphene/chain/protocol/son.hpp +++ b/libraries/chain/include/graphene/chain/protocol/son.hpp @@ -33,7 +33,6 @@ namespace graphene { namespace chain { optional new_signing_key; optional> new_sidechain_public_keys; optional new_pay_vb; - optional new_status; account_id_type fee_payer()const { return owner_account; } share_type calculate_fee(const fee_parameters_type& k)const { return 0; } @@ -105,7 +104,7 @@ FC_REFLECT(graphene::chain::son_create_operation, (fee)(owner_account)(url)(depo FC_REFLECT(graphene::chain::son_update_operation::fee_parameters_type, (fee) ) FC_REFLECT(graphene::chain::son_update_operation, (fee)(son_id)(owner_account)(new_url)(new_deposit) - (new_signing_key)(new_sidechain_public_keys)(new_pay_vb)(new_status) ) + (new_signing_key)(new_sidechain_public_keys)(new_pay_vb) ) FC_REFLECT(graphene::chain::son_deregister_operation::fee_parameters_type, (fee) ) FC_REFLECT(graphene::chain::son_deregister_operation, (fee)(son_id)(payer) ) diff --git a/libraries/chain/son_evaluator.cpp b/libraries/chain/son_evaluator.cpp index e732c145..776eb065 100644 --- a/libraries/chain/son_evaluator.cpp +++ b/libraries/chain/son_evaluator.cpp @@ -79,9 +79,6 @@ void_result update_son_evaluator::do_evaluate(const son_update_operation& op) FC_ASSERT(vbo.policy.which() == vesting_policy::tag::value, "Payment balance must have linear vesting policy"); } - if(op.new_status.valid()) { - FC_ASSERT(db().get(op.son_id).status == son_status::deregistered, "SON must be in deregistered state"); - } return void_result(); } FC_CAPTURE_AND_RETHROW( (op) ) } @@ -97,7 +94,7 @@ object_id_type update_son_evaluator::do_apply(const son_update_operation& op) if(op.new_signing_key.valid()) so.signing_key = *op.new_signing_key; if(op.new_sidechain_public_keys.valid()) so.sidechain_public_keys = *op.new_sidechain_public_keys; if(op.new_pay_vb.valid()) so.pay_vb = *op.new_pay_vb; - if(op.new_status.valid()) so.status = son_status::inactive; + if(so.status == son_status::deregistered) so.status = son_status::inactive; }); } return op.son_id; diff --git a/libraries/wallet/wallet.cpp b/libraries/wallet/wallet.cpp index cc013736..8edfbd65 100644 --- a/libraries/wallet/wallet.cpp +++ b/libraries/wallet/wallet.cpp @@ -2122,7 +2122,6 @@ public: son_update_operation son_update_op; son_update_op.son_id = son.id; son_update_op.owner_account = son.son_account; - son_update_op.new_status = son_status::inactive; signed_transaction tx; tx.operations.push_back( son_update_op ); set_operation_fees( tx, _remote_db->get_global_properties().parameters.current_fees ); -- 2.45.2 From a5d6bcb825c7b494b5e86602e3a63d46bc367538 Mon Sep 17 00:00:00 2001 From: Vladislav Dobromyslov Date: Fri, 28 Jan 2022 02:58:20 -0400 Subject: [PATCH 2/2] #267 Use set (sorted by std::greater) instead of unordered_set for new_ids --- libraries/db/include/graphene/db/undo_database.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/db/include/graphene/db/undo_database.hpp b/libraries/db/include/graphene/db/undo_database.hpp index 4b727372..25040087 100644 --- a/libraries/db/include/graphene/db/undo_database.hpp +++ b/libraries/db/include/graphene/db/undo_database.hpp @@ -29,15 +29,15 @@ namespace graphene { namespace db { using std::unordered_map; - using fc::flat_set; + using fc::flat_set; class object_database; struct undo_state { - unordered_map > old_values; - unordered_map old_index_next_ids; - std::unordered_set new_ids; - unordered_map > removed; + unordered_map > old_values; + unordered_map old_index_next_ids; + std::set > new_ids; + unordered_map > removed; }; -- 2.45.2