diff --git a/libraries/chain/account_evaluator.cpp b/libraries/chain/account_evaluator.cpp index 1f29bb0a..f34af18f 100644 --- a/libraries/chain/account_evaluator.cpp +++ b/libraries/chain/account_evaluator.cpp @@ -62,6 +62,13 @@ void_result account_create_evaluator::do_evaluate( const account_create_operatio FC_ASSERT( !op.extensions.value.owner_special_authority.valid() ); FC_ASSERT( !op.extensions.value.active_special_authority.valid() ); } + if( d.head_block_time() < HARDFORK_599_TIME ) + { + FC_ASSERT( !op.extensions.value.null_ext.valid() ); + FC_ASSERT( !op.extensions.value.owner_special_authority.valid() ); + FC_ASSERT( !op.extensions.value.active_special_authority.valid() ); + FC_ASSERT( !op.extensions.value.buyback_options.valid() ); + } FC_ASSERT( d.find_object(op.options.voting_account), "Invalid proxy account specified." ); FC_ASSERT( fee_paying_account->is_lifetime_member(), "Only Lifetime members may register an account." ); @@ -223,6 +230,12 @@ void_result account_update_evaluator::do_evaluate( const account_update_operatio FC_ASSERT( !o.extensions.value.owner_special_authority.valid() ); FC_ASSERT( !o.extensions.value.active_special_authority.valid() ); } + if( d.head_block_time() < HARDFORK_599_TIME ) + { + FC_ASSERT( !o.extensions.value.null_ext.valid() ); + FC_ASSERT( !o.extensions.value.owner_special_authority.valid() ); + FC_ASSERT( !o.extensions.value.active_special_authority.valid() ); + } const auto& chain_params = d.get_global_properties().parameters; diff --git a/libraries/chain/hardfork.d/599.hf b/libraries/chain/hardfork.d/599.hf new file mode 100644 index 00000000..71f7e94e --- /dev/null +++ b/libraries/chain/hardfork.d/599.hf @@ -0,0 +1,4 @@ +// #599 Unpacking of extension is incorrect +#ifndef HARDFORK_599_TIME +#define HARDFORK_599_TIME (fc::time_point_sec( 1458061200 )) +#endif