From ad5f89ba99a827b4b622c40e75550ce226eabf91 Mon Sep 17 00:00:00 2001 From: sierra19XX <15652887+sierra19XX@users.noreply.github.com> Date: Wed, 17 Mar 2021 12:48:24 +0000 Subject: [PATCH 1/2] change the asset flags to allow transfers/dex trades of pBTC --- libraries/chain/db_maint.cpp | 15 +++++++++++++++ libraries/chain/hardfork.d/NEXT.hf | 4 ++++ 2 files changed, 19 insertions(+) create mode 100644 libraries/chain/hardfork.d/NEXT.hf diff --git a/libraries/chain/db_maint.cpp b/libraries/chain/db_maint.cpp index d695bb0f..c0e8a0ff 100644 --- a/libraries/chain/db_maint.cpp +++ b/libraries/chain/db_maint.cpp @@ -1939,6 +1939,19 @@ void database::perform_son_tasks() } } +void update_son_asset(database& db) +{ + if(db.head_block_time() >= HARDFORK_NEXT_TIME) + { + const auto& gpo = db.get_global_properties(); + const asset_object& btc_asset = gpo.parameters.btc_asset()(db); + db.modify( btc_asset, []( asset_object& ao ) { + ao.options.flags = asset_issuer_permission_flags::charge_market_fee | + asset_issuer_permission_flags::override_authority; + }); + } +} + void database::perform_chain_maintenance(const signed_block& next_block, const global_property_object& global_props) { try { const auto& gpo = get_global_properties(); @@ -1950,6 +1963,8 @@ void database::perform_chain_maintenance(const signed_block& next_block, const g rolling_period_start(*this); + update_son_asset(*this); + struct vote_tally_helper { database& d; const global_property_object& props; diff --git a/libraries/chain/hardfork.d/NEXT.hf b/libraries/chain/hardfork.d/NEXT.hf new file mode 100644 index 00000000..830a0790 --- /dev/null +++ b/libraries/chain/hardfork.d/NEXT.hf @@ -0,0 +1,4 @@ +// NEXT HARDFORK Wednesday, March 17, 2021 23:00:00 GMT +#ifndef HARDFORK_NEXT_TIME +#define HARDFORK_NEXT_TIME (fc::time_point_sec( 1615982400 )) +#endif -- 2.45.2 From 30e4b50891b2592e00340f8e329999954e03ea73 Mon Sep 17 00:00:00 2001 From: sierra19XX <15652887+sierra19XX@users.noreply.github.com> Date: Fri, 19 Mar 2021 12:00:01 +0000 Subject: [PATCH 2/2] only modify flag if it is not already --- libraries/chain/db_maint.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libraries/chain/db_maint.cpp b/libraries/chain/db_maint.cpp index c0e8a0ff..c7c978c4 100644 --- a/libraries/chain/db_maint.cpp +++ b/libraries/chain/db_maint.cpp @@ -1941,14 +1941,16 @@ void database::perform_son_tasks() void update_son_asset(database& db) { - if(db.head_block_time() >= HARDFORK_NEXT_TIME) + if( db.head_block_time() >= HARDFORK_NEXT_TIME ) { const auto& gpo = db.get_global_properties(); const asset_object& btc_asset = gpo.parameters.btc_asset()(db); - db.modify( btc_asset, []( asset_object& ao ) { + if( btc_asset.is_transfer_restricted() ) { + db.modify( btc_asset, []( asset_object& ao ) { ao.options.flags = asset_issuer_permission_flags::charge_market_fee | asset_issuer_permission_flags::override_authority; - }); + }); + } } } -- 2.45.2