Skip to content

Commit

Permalink
Merge pull request #403 from astroport-fi/merge/features_020224
Browse files Browse the repository at this point in the history
Release v3.11.0
  • Loading branch information
epanchee authored Feb 2, 2024
2 parents fc992ee + f1aff86 commit d6adad9
Show file tree
Hide file tree
Showing 9 changed files with 224 additions and 43 deletions.
66 changes: 33 additions & 33 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion contracts/tokenomics/incentives/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ name = "astroport-incentives"
version = "1.0.0"
authors = ["Astroport"]
edition = "2021"
description = "Astroport Incentives Contract distributing rewards to LP stakers"
license = "GPL-3.0-only"
repository = "https://github.com/astroport-fi/astroport"
homepage = "https://astroport.fi"

[lib]
crate-type = ["cdylib", "rlib"]
Expand All @@ -17,7 +21,7 @@ cosmwasm-schema = "1.4"
cw2 = "1"
cw20 = "1"
cw-utils = "1"
astroport = { path = "../../../packages/astroport" }
astroport = { path = "../../../packages/astroport", version = "3.11.0" }
thiserror = "1"
itertools = "0.11"

Expand Down
36 changes: 35 additions & 1 deletion contracts/tokenomics/incentives/src/query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ use astroport::incentives::{QueryMsg, RewardType, ScheduleResponse, MAX_PAGE_LIM

use crate::error::ContractError;
use crate::state::{
list_pool_stakers, PoolInfo, UserInfo, BLOCKED_TOKENS, CONFIG, EXTERNAL_REWARD_SCHEDULES,
list_pool_stakers, PoolInfo, UserInfo, ACTIVE_POOLS, BLOCKED_TOKENS, CONFIG,
EXTERNAL_REWARD_SCHEDULES, POOLS,
};
use crate::utils::{asset_info_key, from_key_to_asset_info};

Expand Down Expand Up @@ -93,9 +94,42 @@ pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> Result<Binary, ContractErro
start_after,
limit,
)?)?),
QueryMsg::ListPools { start_after, limit } => {
Ok(to_json_binary(&list_pools(deps, start_after, limit)?)?)
}
QueryMsg::ActivePools {} => {
let pools = ACTIVE_POOLS
.load(deps.storage)?
.into_iter()
.map(|(asset_info, alloc_points)| (asset_info.to_string(), alloc_points))
.collect_vec();
Ok(to_json_binary(&pools)?)
}
}
}

fn list_pools(
deps: Deps,
start_after: Option<String>,
limit: Option<u8>,
) -> StdResult<Vec<String>> {
let limit = limit.unwrap_or(MAX_PAGE_LIMIT) as usize;
POOLS
.keys_raw(
deps.storage,
start_after
.map(|lp_token| determine_asset_info(&lp_token, deps.api))
.transpose()?
.as_ref()
.map(Bound::exclusive),
None,
Order::Ascending,
)
.map(|item| String::from_utf8(item).map_err(StdError::invalid_utf8))
.take(limit)
.collect()
}

fn query_blocked_tokens(
deps: Deps,
start_after: Option<AssetInfo>,
Expand Down
20 changes: 20 additions & 0 deletions contracts/tokenomics/incentives/tests/helper/helper.rs
Original file line number Diff line number Diff line change
Expand Up @@ -893,6 +893,26 @@ impl Helper {
.unwrap()
}

pub fn all_pools(&self) -> Vec<String> {
self.app
.wrap()
.query_wasm_smart(
&self.generator,
&QueryMsg::ListPools {
start_after: None,
limit: None,
},
)
.unwrap()
}

pub fn active_pools(&self) -> Vec<(String, Uint128)> {
self.app
.wrap()
.query_wasm_smart(&self.generator, &QueryMsg::ActivePools {})
.unwrap()
}

pub fn create_pair(&mut self, asset_infos: &[AssetInfo]) -> AnyResult<PairInfo> {
let asset_infos = asset_infos.to_vec();
self.app
Expand Down
Loading

0 comments on commit d6adad9

Please sign in to comment.