@@ -543,6 +543,12 @@ namespace golos { namespace chain {
543543
544544 const auto & mprops = _db.get_witness_schedule_object ().median_props ;
545545
546+ if (_db.has_hardfork (STEEMIT_HARDFORK_0_20__1075 )) {
547+ GOLOS_CHECK_LOGIC (_c.abs_rshares == 0 ,
548+ logic_exception::comment_must_not_have_been_voted,
549+ " Comment must not have been voted on changing auction window reward destination." );
550+ }
551+
546552 GOLOS_CHECK_PARAM (cawrd.destination , {
547553 GOLOS_CHECK_VALUE (cawrd.destination != to_reward_fund || mprops.allow_return_auction_reward_to_fund ,
548554 " Returning to reward fund is disallowed."
@@ -566,6 +572,12 @@ namespace golos { namespace chain {
566572 const auto & mprops = _db.get_witness_schedule_object ().median_props ;
567573
568574 auto percent = ccrp.percent ; // Workaround for correct param name in GOLOS_CHECK_PARAM
575+
576+ if (_db.has_hardfork (STEEMIT_HARDFORK_0_20__1075 )) {
577+ GOLOS_CHECK_LOGIC (_c.abs_rshares == 0 ,
578+ logic_exception::comment_must_not_have_been_voted,
579+ " Comment must not have been voted on changing curation rewards percent." );
580+ }
569581
570582 GOLOS_CHECK_PARAM (percent, {
571583 GOLOS_CHECK_VALUE (mprops.min_curation_percent <= ccrp.percent && ccrp.percent <= mprops.max_curation_percent ,
@@ -1516,8 +1528,13 @@ namespace golos { namespace chain {
15161528 for (; vdo_itr != vdo_idx.end () && vdo_itr->delegatee == voter.name ; ++vdo_itr) {
15171529 delegator_vote_interest_rate dvir;
15181530 dvir.account = vdo_itr->delegator ;
1519- dvir.interest_rate = vdo_itr->vesting_shares .amount .value * vdo_itr->interest_rate
1520- / voter.effective_vesting_shares ().amount .value ;
1531+ if (_db.head_block_num () < GOLOS_BUG1074_BLOCK && !_db.has_hardfork (STEEMIT_HARDFORK_0_20__1074 )) {
1532+ dvir.interest_rate = vdo_itr->vesting_shares .amount .value * vdo_itr->interest_rate /
1533+ voter.effective_vesting_shares ().amount .value ;
1534+ } else {
1535+ dvir.interest_rate = (uint128_t (vdo_itr->vesting_shares .amount .value ) *
1536+ vdo_itr->interest_rate / voter.effective_vesting_shares ().amount .value ).to_uint64 ();
1537+ }
15211538 dvir.payout_strategy = vdo_itr->payout_strategy ;
15221539 if (dvir.interest_rate > 0 ) {
15231540 delegator_vote_interest_rates.emplace_back (std::move (dvir));
0 commit comments