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;
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));
}
@ -1989,7 +1989,7 @@ void database::perform_son_tasks()
});
}
// 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 =
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);
bool has_valid_config()const;
bool has_valid_config(time_point_sec head_block_time)const;
};
struct by_account;

View file

@ -10,8 +10,18 @@ namespace graphene { namespace chain {
return ((std::string(signing_key).length() > 0) &&
(sidechain_public_keys.size() > 0) &&
(sidechain_public_keys.find( sidechain_type::bitcoin ) != sidechain_public_keys.end()) &&
(sidechain_public_keys.at(sidechain_type::bitcoin).length() > 0) &&
(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::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.at(sidechain_type::hive).length() > 0);
}
return retval;
}
}}

View file

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