Skip to content

Commit 4dc5d45

Browse files
committed
fix: reward asset and linting
1 parent 2b50554 commit 4dc5d45

File tree

13 files changed

+101
-82
lines changed

13 files changed

+101
-82
lines changed

contracts/alliance-hub/src/tests/stake_unstake.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ fn test_stake_invalid() {
9999
let msg = ExecuteMsg::Stake {};
100100
let info = mock_info("user1", &[coin(100, "asset2")]);
101101
let err = execute(deps.as_mut(), mock_env(), info, msg).unwrap_err();
102-
assert_eq!(err, ContractError::AssetNotWhitelisted("native:asset2".to_string()));
102+
assert_eq!(
103+
err,
104+
ContractError::AssetNotWhitelisted("native:asset2".to_string())
105+
);
103106

104107
// Stake multiple assets in a single call
105108
let msg = ExecuteMsg::Stake {};

contracts/alliance-lp-hub/src/astro_models.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
use cosmwasm_schema::{QueryResponses, cw_serde};
2-
use cosmwasm_std::{Decimal, Addr, Uint128};
1+
use cosmwasm_schema::{cw_serde, QueryResponses};
2+
use cosmwasm_std::{Addr, Decimal, Uint128};
33
use cw20::Cw20ReceiveMsg;
44
use cw_asset::AssetInfo;
55

6-
7-
86
#[cw_serde]
97
pub enum ExecuteAstroMsg {
108
/// Receives a message of type [`Cw20ReceiveMsg`]. Handles cw20 LP token deposits.
@@ -29,7 +27,6 @@ pub enum Cw20Msg {
2927
DepositFor(String),
3028
}
3129

32-
3330
#[cw_serde]
3431
#[derive(QueryResponses)]
3532
pub enum QueryAstroMsg {
@@ -85,4 +82,4 @@ pub enum AstroAssetInfo {
8582
Token { contract_addr: Addr },
8683
/// Native token
8784
NativeToken { denom: String },
88-
}
85+
}

contracts/alliance-lp-hub/src/contract.rs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ fn stake(
193193
deps.storage,
194194
sender.clone(),
195195
received_asset.info.clone(),
196-
reward_token,
196+
reward_token.clone(),
197197
)?;
198198
if !rewards.is_zero() {
199199
UNCLAIMED_REWARDS.update(
@@ -285,6 +285,15 @@ fn stake(
285285
Ok(balance.unwrap_or(Uint128::zero()) + received_asset.amount)
286286
},
287287
)?;
288+
289+
let asset_reward_rate = ASSET_REWARD_RATE
290+
.load(deps.storage, (asset_key.clone(), reward_token.clone()))
291+
.unwrap_or(Decimal::zero());
292+
USER_ASSET_REWARD_RATE.save(
293+
deps.storage,
294+
(sender, asset_key, reward_token),
295+
&asset_reward_rate,
296+
)?;
288297
Ok(res)
289298
}
290299

@@ -360,7 +369,7 @@ fn claim_rewards(
360369
) -> Result<Response, ContractError> {
361370
let user = info.sender;
362371
let config = CONFIG.load(deps.storage)?;
363-
let reward_token = AssetInfoKey::from(AssetInfo::Native(config.alliance_token_denom));
372+
let reward_token = AssetInfoKey::from(AssetInfo::Native(config.alliance_reward_denom.clone()));
364373
let rewards = _claim_alliance_rewards(deps.storage, user.clone(), asset.clone(), reward_token)?;
365374
let unclaimed_rewards = UNCLAIMED_REWARDS
366375
.load(
@@ -411,14 +420,14 @@ fn _claim_alliance_rewards(
411420
let rewards = ((asset_reward_rate - user_reward_rate) * user_staked).to_uint_floor();
412421

413422
if rewards.is_zero() {
414-
return Ok(Uint128::zero());
423+
Ok(Uint128::zero())
415424
} else {
416425
USER_ASSET_REWARD_RATE.save(storage, state_key, &asset_reward_rate)?;
417-
return Ok(rewards);
426+
Ok(rewards)
418427
}
419428
} else {
420429
USER_ASSET_REWARD_RATE.save(storage, state_key, &asset_reward_rate)?;
421-
return Ok(Uint128::zero());
430+
Ok(Uint128::zero())
422431
}
423432
}
424433

@@ -711,7 +720,7 @@ fn update_alliance_reward_callback(
711720
(asset_key.clone(), reward_asset_info_key.clone()),
712721
|rate| -> StdResult<_> {
713722
let mut reward_rate = rate.unwrap_or_default();
714-
reward_rate = reward_rate + rate_to_update;
723+
reward_rate += rate_to_update;
715724
Ok(reward_rate)
716725
},
717726
)?;
@@ -878,5 +887,6 @@ fn reply_claim_astro_rewards(
878887
)?;
879888
}
880889
}
881-
return Ok(res.add_attribute("action", "claim_astro_rewards_success"));
890+
891+
Ok(res.add_attribute("action", "claim_astro_rewards_success"))
882892
}

contracts/alliance-lp-hub/src/helpers.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use cosmwasm_std::MessageInfo;
33

44
use crate::models::Config;
55

6-
76
// Controller is used to perform administrative operations that deals with delegating the virtual
87
// tokens to the expected validators
98
pub fn is_controller(info: &MessageInfo, config: &Config) -> Result<(), ContractError> {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
pub mod astro_models;
12
pub mod contract;
3+
pub mod helpers;
24
pub mod models;
35
pub mod query;
46
pub mod state;
5-
pub mod astro_models;
6-
pub mod helpers;
77

88
#[cfg(test)]
99
mod tests;

contracts/alliance-lp-hub/src/models.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ use cosmwasm_schema::{cw_serde, QueryResponses};
88
use cosmwasm_std::{Addr, Coins, Uint128};
99
use cw20::Cw20ReceiveMsg;
1010
use cw_asset::{Asset, AssetInfo, AssetInfoKey};
11-
use std::{
12-
collections::{HashMap, HashSet},
13-
};
11+
use std::collections::{HashMap, HashSet};
1412

1513
pub type AssetDenom = String;
1614

contracts/alliance-lp-hub/src/query.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,10 @@ fn get_all_pending_rewards(deps: Deps, query: AllPendingRewardsQuery) -> StdResu
144144
let deposit_asset = AssetInfoKey::from(assets.0.check(deps.api, None)?);
145145
let reward_asset = AssetInfoKey::from(assets.1.check(deps.api, None)?);
146146

147-
let asset_reward_rate =
148-
ASSET_REWARD_RATE.load(deps.storage, (deposit_asset.clone(), reward_asset.clone()))?;
149-
let user_balance = BALANCES.load(deps.storage, (addr.clone(), deposit_asset.clone()))?;
147+
let asset_reward_rate = ASSET_REWARD_RATE
148+
.load(deps.storage, (deposit_asset.clone(), reward_asset.clone()))?;
149+
let user_balance =
150+
BALANCES.load(deps.storage, (addr.clone(), deposit_asset.clone()))?;
150151
let unclaimed_rewards = UNCLAIMED_REWARDS
151152
.load(deps.storage, (addr.clone(), deposit_asset))
152153
.unwrap_or_default();

contracts/alliance-lp-hub/src/state.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,4 @@ pub const TEMP_BALANCE: Map<AssetInfoKey, Uint128> = Map::new("temp_balance");
3737
// Temporary variable used to store the user address
3838
// so we can access it on reply_claim_astro_rewards
3939
// callback function and account for the rewards
40-
pub const TEMP_USR_ADDR: Item<Addr> = Item::new("temp_addr_stake");
40+
pub const TEMP_USR_ADDR: Item<Addr> = Item::new("temp_addr_stake");

contracts/alliance-lp-hub/src/tests/helpers.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::contract::{execute, instantiate};
22
use crate::models::{
3-
AllPendingRewardsQuery, AssetQuery, Config, ExecuteMsg, InstantiateMsg, PendingRewardsRes,
4-
QueryMsg, StakedBalanceRes, ModifyAssetPair,
3+
AllPendingRewardsQuery, AssetQuery, Config, ExecuteMsg, InstantiateMsg, ModifyAssetPair,
4+
PendingRewardsRes, QueryMsg, StakedBalanceRes,
55
};
66
use crate::query::query;
77
use crate::state::CONFIG;
@@ -11,7 +11,7 @@ use alliance_protocol::alliance_protocol::{
1111
};
1212
use alliance_protocol::token_factory::CustomExecuteMsg;
1313
use cosmwasm_std::testing::{mock_env, mock_info};
14-
use cosmwasm_std::{coin, from_json, Deps, DepsMut, Response, StdResult, Uint128, Binary, Addr};
14+
use cosmwasm_std::{coin, from_json, Addr, Binary, Deps, DepsMut, Response, StdResult, Uint128};
1515
use cw20::Cw20ReceiveMsg;
1616
use cw_asset::{Asset, AssetInfo};
1717

@@ -24,7 +24,7 @@ pub fn setup_contract(deps: DepsMut) -> Response<CustomExecuteMsg> {
2424
let init_msg = InstantiateMsg {
2525
governance: "gov".to_string(),
2626
fee_collector_address: "collector_address".to_string(),
27-
astro_incentives_address : "astro_incentives".to_string(),
27+
astro_incentives_address: "astro_incentives".to_string(),
2828
controller: "controller".to_string(),
2929
reward_denom: "uluna".to_string(),
3030
};
@@ -51,19 +51,17 @@ pub fn modify_asset(deps: DepsMut, assets: Vec<ModifyAssetPair>) -> Response {
5151
execute(deps, env, info, msg).unwrap()
5252
}
5353

54-
5554
pub fn stake(deps: DepsMut, user: &str, amount: u128, denom: &str) -> Response {
5655
let info = mock_info(user, &[coin(amount, denom)]);
5756
let env = mock_env();
5857
let msg = ExecuteMsg::Stake {};
5958
execute(deps, env, info, msg).unwrap()
6059
}
6160

62-
6361
pub fn stake_cw20(deps: DepsMut, user: &str, amount: u128, denom: &str) -> Response {
6462
let mut info = mock_info(user, &[]);
6563
let env = mock_env();
66-
let msg = ExecuteMsg::Receive(Cw20ReceiveMsg{
64+
let msg = ExecuteMsg::Receive(Cw20ReceiveMsg {
6765
sender: String::from(user),
6866
amount: Uint128::new(amount),
6967
msg: Binary::default(),
@@ -133,7 +131,12 @@ pub fn claim_rewards(deps: DepsMut, user: &str, denom: &str) -> Response {
133131
execute(deps, env, info, msg).unwrap()
134132
}
135133

136-
pub fn query_rewards(deps: Deps, user: &str, deposit_asset: &str, reward_asset: &str ) -> PendingRewardsRes {
134+
pub fn query_rewards(
135+
deps: Deps,
136+
user: &str,
137+
deposit_asset: &str,
138+
reward_asset: &str,
139+
) -> PendingRewardsRes {
137140
from_json(
138141
query(
139142
deps,
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
mod alliance;
12
mod helpers;
23
mod instantiate;
3-
mod stake_unstake;
4+
mod mock_querier;
45
mod rewards;
5-
mod alliance;
6-
mod mock_querier;
6+
mod stake_unstake;

0 commit comments

Comments
 (0)