Handle HARDFORK_SON_FOR_HIVE_TIME properly

This commit is contained in:
serkixenos 2021-11-25 20:08:45 -04:00
parent bf0cdbdc6e
commit f279065c79
4 changed files with 17 additions and 6 deletions

View file

@ -84,7 +84,7 @@ vector<std::reference_wrapper<const son_object>> database::sort_votable_objects<
std::vector<std::reference_wrapper<const son_object>> refs; std::vector<std::reference_wrapper<const son_object>> refs;
for( auto& son : all_sons ) for( auto& son : all_sons )
{ {
if(son.has_valid_config() && son.status != son_status::deregistered) if(son.has_valid_config(head_block_time()) && son.status != son_status::deregistered)
{ {
refs.push_back(std::cref(son)); refs.push_back(std::cref(son));
} }
@ -1989,7 +1989,7 @@ void database::perform_son_tasks()
}); });
} }
// create HIVE asset here because son_account is the issuer of the HIVE // create HIVE asset here because son_account is the issuer of the HIVE
if (gpo.parameters.hive_asset() == asset_id_type() && head_block_time() >= HARDFORK_SON_TIME) if (gpo.parameters.hive_asset() == asset_id_type() && head_block_time() >= HARDFORK_SON_FOR_HIVE_TIME)
{ {
const asset_dynamic_data_object& dyn_asset = const asset_dynamic_data_object& dyn_asset =
create<asset_dynamic_data_object>([](asset_dynamic_data_object& a) { create<asset_dynamic_data_object>([](asset_dynamic_data_object& a) {

View file

@ -76,6 +76,7 @@ namespace graphene { namespace chain {
void pay_son_fee(share_type pay, database& db); void pay_son_fee(share_type pay, database& db);
bool has_valid_config()const; bool has_valid_config()const;
bool has_valid_config(time_point_sec head_block_time)const;
}; };
struct by_account; struct by_account;

View file

@ -10,8 +10,18 @@ namespace graphene { namespace chain {
return ((std::string(signing_key).length() > 0) && return ((std::string(signing_key).length() > 0) &&
(sidechain_public_keys.size() > 0) && (sidechain_public_keys.size() > 0) &&
(sidechain_public_keys.find( sidechain_type::bitcoin ) != sidechain_public_keys.end()) && (sidechain_public_keys.find( sidechain_type::bitcoin ) != sidechain_public_keys.end()) &&
(sidechain_public_keys.at(sidechain_type::bitcoin).length() > 0) && (sidechain_public_keys.at(sidechain_type::bitcoin).length() > 0));
}
bool son_object::has_valid_config(time_point_sec head_block_time)const {
bool retval = has_valid_config();
if (head_block_time >= HARDFORK_SON_FOR_HIVE_TIME) {
retval = retval &&
(sidechain_public_keys.find( sidechain_type::hive ) != sidechain_public_keys.end()) && (sidechain_public_keys.find( sidechain_type::hive ) != sidechain_public_keys.end()) &&
(sidechain_public_keys.at(sidechain_type::hive).length() > 0)); (sidechain_public_keys.at(sidechain_type::hive).length() > 0);
}
return retval;
} }
}} }}

View file

@ -39,7 +39,7 @@ public:
fixture_(fixture) fixture_(fixture)
{ {
fixture_.init_nathan(); fixture_.init_nathan();
fixture_.generate_blocks(HARDFORK_SON_TIME); fixture_.generate_blocks(HARDFORK_SON_FOR_HIVE_TIME);
fixture_.generate_block(); fixture_.generate_block();
} }