add hardfork guards
This commit is contained in:
parent
6efbf84339
commit
0a5d694568
3 changed files with 22 additions and 3 deletions
|
|
@ -140,6 +140,18 @@ struct proposal_operation_hardfork_visitor
|
||||||
FC_ASSERT( vbco.balance_type == vesting_balance_type::unspecified, "balance_type in vesting create not allowed yet!" );
|
FC_ASSERT( vbco.balance_type == vesting_balance_type::unspecified, "balance_type in vesting create not allowed yet!" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void operator()(const son_create_operation &v) const {
|
||||||
|
FC_ASSERT( block_time >= HARDFORK_SON_TIME, "son_create_operation not allowed yet!" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()(const son_update_operation &v) const {
|
||||||
|
FC_ASSERT( block_time >= HARDFORK_SON_TIME, "son_update_operation not allowed yet!" );
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()(const son_delete_operation &v) const {
|
||||||
|
FC_ASSERT( block_time >= HARDFORK_SON_TIME, "son_delete_operation not allowed yet!" );
|
||||||
|
}
|
||||||
|
|
||||||
// loop and self visit in proposals
|
// loop and self visit in proposals
|
||||||
void operator()(const proposal_create_operation &v) const {
|
void operator()(const proposal_create_operation &v) const {
|
||||||
for (const op_wrapper &op : v.proposed_ops)
|
for (const op_wrapper &op : v.proposed_ops)
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,14 @@
|
||||||
|
|
||||||
#include <graphene/chain/database.hpp>
|
#include <graphene/chain/database.hpp>
|
||||||
#include <graphene/chain/son_object.hpp>
|
#include <graphene/chain/son_object.hpp>
|
||||||
|
#include <graphene/chain/hardfork.hpp>
|
||||||
|
|
||||||
namespace graphene { namespace chain {
|
namespace graphene { namespace chain {
|
||||||
|
|
||||||
void_result create_son_evaluator::do_evaluate(const son_create_operation& op)
|
void_result create_son_evaluator::do_evaluate(const son_create_operation& op)
|
||||||
{ try{
|
{ try{
|
||||||
FC_ASSERT(db().get(op.owner_account).is_lifetime_member(), "Only Lifetime members may register a SON.");
|
FC_ASSERT(db().head_block_time() >= HARDFORK_SON_TIME, "Not allowed until SON HARDFORK");
|
||||||
|
FC_ASSERT(db().get(op.owner_account).is_lifetime_member(), "Only Lifetime members may register a SON.");
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
||||||
|
|
@ -28,6 +30,7 @@ object_id_type create_son_evaluator::do_apply(const son_create_operation& op)
|
||||||
|
|
||||||
void_result update_son_evaluator::do_evaluate(const son_update_operation& op)
|
void_result update_son_evaluator::do_evaluate(const son_update_operation& op)
|
||||||
{ try {
|
{ try {
|
||||||
|
FC_ASSERT(db().head_block_time() >= HARDFORK_SON_TIME, "Not allowed until SON HARDFORK"); // can be removed after HF date pass
|
||||||
const auto& idx = db().get_index_type<son_member_index>().indices().get<by_id>();
|
const auto& idx = db().get_index_type<son_member_index>().indices().get<by_id>();
|
||||||
FC_ASSERT( idx.find(op.son_id) != idx.end() );
|
FC_ASSERT( idx.find(op.son_id) != idx.end() );
|
||||||
return void_result();
|
return void_result();
|
||||||
|
|
@ -48,6 +51,7 @@ object_id_type update_son_evaluator::do_apply(const son_update_operation& op)
|
||||||
|
|
||||||
void_result delete_son_evaluator::do_evaluate(const son_delete_operation& op)
|
void_result delete_son_evaluator::do_evaluate(const son_delete_operation& op)
|
||||||
{ try {
|
{ try {
|
||||||
|
FC_ASSERT(db().head_block_time() >= HARDFORK_SON_TIME, "Not allowed until SON_HARDFORK"); // can be removed after HF date pass
|
||||||
const auto& idx = db().get_index_type<son_member_index>().indices().get<by_id>();
|
const auto& idx = db().get_index_type<son_member_index>().indices().get<by_id>();
|
||||||
FC_ASSERT( idx.find(op.son_id) != idx.end() );
|
FC_ASSERT( idx.find(op.son_id) != idx.end() );
|
||||||
return void_result();
|
return void_result();
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,11 @@ public:
|
||||||
BOOST_FIXTURE_TEST_SUITE( son_operation_tests, database_fixture )
|
BOOST_FIXTURE_TEST_SUITE( son_operation_tests, database_fixture )
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( create_son_test ) {
|
BOOST_AUTO_TEST_CASE( create_son_test ) {
|
||||||
|
generate_blocks( HARDFORK_SON_TIME );
|
||||||
|
while( db.head_block_time() <= HARDFORK_SON_TIME )
|
||||||
|
{
|
||||||
|
generate_block();
|
||||||
|
}
|
||||||
std::string test_url = "https://create_son_test";
|
std::string test_url = "https://create_son_test";
|
||||||
test_create_son_member_evaluator test_eval( db );
|
test_create_son_member_evaluator test_eval( db );
|
||||||
son_create_operation op;
|
son_create_operation op;
|
||||||
|
|
@ -60,9 +65,7 @@ BOOST_AUTO_TEST_CASE( create_son_test ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE( update_son_test ){
|
BOOST_AUTO_TEST_CASE( update_son_test ){
|
||||||
|
|
||||||
INVOKE(create_son_test);
|
INVOKE(create_son_test);
|
||||||
|
|
||||||
std::string new_url = "https://anewurl.com";
|
std::string new_url = "https://anewurl.com";
|
||||||
test_update_son_member_evaluator test_eval( db );
|
test_update_son_member_evaluator test_eval( db );
|
||||||
son_update_operation op;
|
son_update_operation op;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue