From 4e9e3ae054daac7e126d52b89fac1947799dd4b3 Mon Sep 17 00:00:00 2001 From: theoreticalbts Date: Sun, 14 Feb 2016 20:28:37 -0500 Subject: [PATCH] Allow asset to update permission flags when no supply exists #572 --- libraries/chain/asset_evaluator.cpp | 9 ++++++--- libraries/chain/hardfork.d/572.hf | 4 ++++ 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 libraries/chain/hardfork.d/572.hf diff --git a/libraries/chain/asset_evaluator.cpp b/libraries/chain/asset_evaluator.cpp index 17113d9c..3476d2b1 100644 --- a/libraries/chain/asset_evaluator.cpp +++ b/libraries/chain/asset_evaluator.cpp @@ -259,9 +259,12 @@ void_result asset_update_evaluator::do_evaluate(const asset_update_operation& o) } } - // new issuer_permissions must be subset of old issuer permissions - FC_ASSERT(!(o.new_options.issuer_permissions & ~a.options.issuer_permissions), - "Cannot reinstate previously revoked issuer permissions on an asset."); + if( (d.head_block_time() < HARDFORK_572_TIME) || (a.dynamic_asset_data_id(d).current_supply != 0) ) + { + // new issuer_permissions must be subset of old issuer permissions + FC_ASSERT(!(o.new_options.issuer_permissions & ~a.options.issuer_permissions), + "Cannot reinstate previously revoked issuer permissions on an asset."); + } // changed flags must be subset of old issuer permissions FC_ASSERT(!((o.new_options.flags ^ a.options.flags) & ~a.options.issuer_permissions), diff --git a/libraries/chain/hardfork.d/572.hf b/libraries/chain/hardfork.d/572.hf new file mode 100644 index 00000000..f054225f --- /dev/null +++ b/libraries/chain/hardfork.d/572.hf @@ -0,0 +1,4 @@ +// #572 Allow asset to update permission flags when no supply exists +#ifndef HARDFORK_572_TIME +#define HARDFORK_572_TIME (fc::time_point_sec( 1450378800 )) +#endif