Skip to content

Commit

Permalink
Merge pull request #871 from multiversx/set-boosted-yields-percentage…
Browse files Browse the repository at this point in the history
…-fix

set boosted yields percentage fix
  • Loading branch information
psorinionut authored Apr 9, 2024
2 parents c4c7d83 + 231795e commit 5c98533
Show file tree
Hide file tree
Showing 13 changed files with 46 additions and 20 deletions.
13 changes: 12 additions & 1 deletion dex/farm-with-locked-rewards/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use farm::{
exit_penalty::{
DEFAULT_BURN_GAS_LIMIT, DEFAULT_MINUMUM_FARMING_EPOCHS, DEFAULT_PENALTY_PERCENT,
},
EnterFarmResultType, ExitFarmWithPartialPosResultType,
EnterFarmResultType, ExitFarmWithPartialPosResultType, MAX_PERCENT,
};
use farm_base_impl::base_traits_impl::FarmContract;

Expand Down Expand Up @@ -256,6 +256,17 @@ pub trait Farm:
self.set_per_block_rewards::<NoMintWrapper<Self>>(per_block_amount);
}

#[endpoint(setBoostedYieldsRewardsPercentage)]
fn set_boosted_yields_rewards_percentage(&self, percentage: u64) {
self.require_caller_has_admin_permissions();
require!(percentage <= MAX_PERCENT, "Invalid percentage");

let mut storage_cache = StorageCache::new(self);
NoMintWrapper::<Self>::generate_aggregated_rewards(self, &mut storage_cache);

self.boosted_yields_rewards_percentage().set(percentage);
}

#[view(calculateRewardsForGivenPosition)]
fn calculate_rewards_for_given_position(
&self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ use fees_collector_mock::*;
use energy_factory::{energy::EnergyModule, SimpleLockEnergy};
use energy_query::{Energy, EnergyQueryModule};
use farm_boosted_yields::boosted_yields_factors::BoostedYieldsFactorsModule;
use farm_boosted_yields::FarmBoostedYieldsModule;
use farm_token::FarmTokenModule;
use farm_with_locked_rewards::Farm;
use locking_module::lock_with_energy_module::LockWithEnergyModule;
Expand Down
2 changes: 1 addition & 1 deletion dex/farm-with-locked-rewards/wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ multiversx_sc_wasm_adapter::endpoints! {
startProduceRewards => start_produce_rewards_endpoint
endProduceRewards => end_produce_rewards_endpoint
setPerBlockRewardAmount => set_per_block_rewards_endpoint
setBoostedYieldsRewardsPercentage => set_boosted_yields_rewards_percentage
calculateRewardsForGivenPosition => calculate_rewards_for_given_position
getRewardPerShare => reward_per_share
getRewardReserve => reward_reserve
Expand Down Expand Up @@ -67,7 +68,6 @@ multiversx_sc_wasm_adapter::endpoints! {
getMinimumFarmingEpoch => minimum_farming_epochs
getBurnGasLimit => burn_gas_limit
getPairContractManagedAddress => pair_contract_address
setBoostedYieldsRewardsPercentage => set_boosted_yields_rewards_percentage
collectUndistributedBoostedRewards => collect_undistributed_boosted_rewards
getBoostedYieldsRewardsPercentage => boosted_yields_rewards_percentage
getAccumulatedRewardsForWeek => accumulated_rewards_for_week
Expand Down
4 changes: 2 additions & 2 deletions dex/farm/src/base_functions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use contexts::storage_cache::StorageCache;
use farm_base_impl::base_traits_impl::{DefaultFarmWrapper, FarmContract};
use fixed_supply_token::FixedSupplyToken;

use crate::exit_penalty;
use crate::{exit_penalty, MAX_PERCENT};

pub type DoubleMultiPayment<M> = MultiValue2<EsdtTokenPayment<M>, EsdtTokenPayment<M>>;
pub type ClaimRewardsResultType<M> = DoubleMultiPayment<M>;
Expand Down Expand Up @@ -346,7 +346,7 @@ where
if user_farming_epochs >= min_farming_epochs {
BigUint::zero()
} else {
total_exit_amount * sc.penalty_percent().get() / exit_penalty::MAX_PERCENT
total_exit_amount * sc.penalty_percent().get() / MAX_PERCENT
}
}

Expand Down
3 changes: 2 additions & 1 deletion dex/farm/src/exit_penalty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ use common_errors::ERROR_PARAMETERS;
use common_structs::Epoch;
use pair::pair_actions::remove_liq::ProxyTrait as _;

pub const MAX_PERCENT: u64 = 10_000;
use crate::MAX_PERCENT;

pub const DEFAULT_PENALTY_PERCENT: u64 = 100;
pub const DEFAULT_MINUMUM_FARMING_EPOCHS: u64 = 3;
pub const DEFAULT_BURN_GAS_LIMIT: u64 = 50_000_000;
Expand Down
13 changes: 13 additions & 0 deletions dex/farm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ use farm_base_impl::base_traits_impl::FarmContract;
pub type EnterFarmResultType<M> = DoubleMultiPayment<M>;
pub type ExitFarmWithPartialPosResultType<M> = DoubleMultiPayment<M>;

pub const MAX_PERCENT: u64 = 10_000;

#[multiversx_sc::contract]
pub trait Farm:
rewards::RewardsModule
Expand Down Expand Up @@ -245,6 +247,17 @@ pub trait Farm:
self.set_per_block_rewards::<Wrapper<Self>>(per_block_amount);
}

#[endpoint(setBoostedYieldsRewardsPercentage)]
fn set_boosted_yields_rewards_percentage(&self, percentage: u64) {
self.require_caller_has_admin_permissions();
require!(percentage <= MAX_PERCENT, "Invalid percentage");

let mut storage_cache = StorageCache::new(self);
Wrapper::<Self>::generate_aggregated_rewards(self, &mut storage_cache);

self.boosted_yields_rewards_percentage().set(percentage);
}

#[view(calculateRewardsForGivenPosition)]
fn calculate_rewards_for_given_position(
&self,
Expand Down
2 changes: 1 addition & 1 deletion dex/farm/wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ multiversx_sc_wasm_adapter::endpoints! {
startProduceRewards => start_produce_rewards_endpoint
endProduceRewards => end_produce_rewards_endpoint
setPerBlockRewardAmount => set_per_block_rewards_endpoint
setBoostedYieldsRewardsPercentage => set_boosted_yields_rewards_percentage
calculateRewardsForGivenPosition => calculate_rewards_for_given_position
getRewardPerShare => reward_per_share
getRewardReserve => reward_reserve
Expand Down Expand Up @@ -64,7 +65,6 @@ multiversx_sc_wasm_adapter::endpoints! {
getMinimumFarmingEpoch => minimum_farming_epochs
getBurnGasLimit => burn_gas_limit
getPairContractManagedAddress => pair_contract_address
setBoostedYieldsRewardsPercentage => set_boosted_yields_rewards_percentage
collectUndistributedBoostedRewards => collect_undistributed_boosted_rewards
getBoostedYieldsRewardsPercentage => boosted_yields_rewards_percentage
getAccumulatedRewardsForWeek => accumulated_rewards_for_week
Expand Down
8 changes: 0 additions & 8 deletions energy-integration/farm-boosted-yields/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,6 @@ pub trait FarmBoostedYieldsModule:
+ weekly_rewards_splitting::update_claim_progress_energy::UpdateClaimProgressEnergyModule
+ energy_query::EnergyQueryModule
{
#[endpoint(setBoostedYieldsRewardsPercentage)]
fn set_boosted_yields_rewards_percentage(&self, percentage: u64) {
self.require_caller_has_admin_permissions();
require!(percentage <= MAX_PERCENT, "Invalid percentage");

self.boosted_yields_rewards_percentage().set(percentage);
}

#[endpoint(collectUndistributedBoostedRewards)]
fn collect_undistributed_boosted_rewards(&self) {
self.require_caller_has_admin_permissions();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

use energy_factory::energy::EnergyModule;
use energy_query::Energy;
use farm_boosted_yields::FarmBoostedYieldsModule;
use farm_with_locked_rewards::Farm;
use multiversx_sc::{
codec::multi_types::OptionalValue,
Expand Down
13 changes: 12 additions & 1 deletion farm-staking/farm-staking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ multiversx_sc::derive_imports!();

use base_impl_wrapper::FarmStakingWrapper;
use contexts::storage_cache::StorageCache;
use farm::base_functions::DoubleMultiPayment;
use farm::{base_functions::DoubleMultiPayment, MAX_PERCENT};
use farm_base_impl::base_traits_impl::FarmContract;
use fixed_supply_token::FixedSupplyToken;
use token_attributes::StakingFarmTokenAttributes;
Expand Down Expand Up @@ -130,6 +130,17 @@ pub trait FarmStaking:
(merged_farm_token, boosted_rewards_payment).into()
}

#[endpoint(setBoostedYieldsRewardsPercentage)]
fn set_boosted_yields_rewards_percentage(&self, percentage: u64) {
self.require_caller_has_admin_permissions();
require!(percentage <= MAX_PERCENT, "Invalid percentage");

let mut storage_cache = StorageCache::new(self);
FarmStakingWrapper::<Self>::generate_aggregated_rewards(self, &mut storage_cache);

self.boosted_yields_rewards_percentage().set(percentage);
}

#[view(calculateRewardsForGivenPosition)]
fn calculate_rewards_for_given_position(
&self,
Expand Down
1 change: 0 additions & 1 deletion farm-staking/farm-staking/tests/farm_staking_setup/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ use config::*;
use energy_factory::energy::EnergyModule;
use energy_query::{Energy, EnergyQueryModule};
use farm_boosted_yields::boosted_yields_factors::BoostedYieldsFactorsModule;
use farm_boosted_yields::FarmBoostedYieldsModule;
use farm_staking::claim_stake_farm_rewards::ClaimStakeFarmRewardsModule;
use farm_staking::custom_rewards::CustomRewardsModule;
use farm_staking::stake_farm::StakeFarmModule;
Expand Down
2 changes: 1 addition & 1 deletion farm-staking/farm-staking/wasm/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ multiversx_sc_wasm_adapter::endpoints! {
init => init
upgrade => upgrade
mergeFarmTokens => merge_farm_tokens_endpoint
setBoostedYieldsRewardsPercentage => set_boosted_yields_rewards_percentage
calculateRewardsForGivenPosition => calculate_rewards_for_given_position
topUpRewards => top_up_rewards
withdrawRewards => withdraw_rewards
Expand Down Expand Up @@ -70,7 +71,6 @@ multiversx_sc_wasm_adapter::endpoints! {
unstakeFarmThroughProxy => unstake_farm_through_proxy
unbondFarm => unbond_farm
claimBoostedRewards => claim_boosted_rewards
setBoostedYieldsRewardsPercentage => set_boosted_yields_rewards_percentage
collectUndistributedBoostedRewards => collect_undistributed_boosted_rewards
getBoostedYieldsRewardsPercentage => boosted_yields_rewards_percentage
getAccumulatedRewardsForWeek => accumulated_rewards_for_week
Expand Down
3 changes: 2 additions & 1 deletion locked-asset/proxy_dex/tests/proxy_farm_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ use common_structs::FarmTokenAttributes;
use config::ConfigModule;
use energy_factory::{energy::EnergyModule, SimpleLockEnergy};
use energy_query::Energy;
use farm::exit_penalty::{DEFAULT_PENALTY_PERCENT, MAX_PERCENT};
use farm::exit_penalty::DEFAULT_PENALTY_PERCENT;
use farm::MAX_PERCENT;
use multiversx_sc::{
codec::{multi_types::OptionalValue, Empty},
types::{BigInt, EsdtLocalRole, EsdtTokenPayment},
Expand Down

0 comments on commit 5c98533

Please sign in to comment.