From ec45a73aad77f36d74ca23aeef77b472fe7de7e2 Mon Sep 17 00:00:00 2001 From: Ethan Frey Date: Mon, 21 Dec 2020 19:32:11 +0100 Subject: [PATCH] Use new Claims controller in cw4-stake --- contracts/cw4-stake/src/contract.rs | 12 +++++------- contracts/cw4-stake/src/msg.rs | 7 +------ contracts/cw4-stake/src/state.rs | 4 +++- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/contracts/cw4-stake/src/contract.rs b/contracts/cw4-stake/src/contract.rs index b57e1d5dd..f87c3dc12 100644 --- a/contracts/cw4-stake/src/contract.rs +++ b/contracts/cw4-stake/src/contract.rs @@ -12,8 +12,7 @@ use cw_storage_plus::Bound; use crate::error::ContractError; use crate::msg::{ClaimsResponse, HandleMsg, InitMsg, QueryMsg, StakedResponse}; -use crate::state::{Config, ADMIN, CONFIG, HOOKS, MEMBERS, STAKE, TOTAL}; -use cw0::claim::{claim_tokens, create_claim, CLAIMS}; +use crate::state::{Config, ADMIN, CLAIMS, CONFIG, HOOKS, MEMBERS, STAKE, TOTAL}; // version info for migration info const CONTRACT_NAME: &str = "crates.io:cw4-stake"; @@ -126,7 +125,7 @@ pub fn handle_unbond( // provide them a claim let cfg = CONFIG.load(deps.storage)?; - create_claim( + CLAIMS.create_claim( deps.storage, &sender_raw, amount, @@ -198,7 +197,7 @@ pub fn handle_claim( info: MessageInfo, ) -> Result { let sender_raw = deps.api.canonical_address(&info.sender)?; - let release = claim_tokens(deps.storage, &sender_raw, &env.block, None)?; + let release = CLAIMS.claim_tokens(deps.storage, &sender_raw, &env.block, None)?; if release.is_zero() { return Err(ContractError::NothingToClaim {}); } @@ -230,7 +229,7 @@ pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { to_binary(&list_members(deps, start_after, limit)?) } QueryMsg::TotalWeight {} => to_binary(&query_total_weight(deps)?), - QueryMsg::Claims { address } => to_binary(&query_claims(deps, address)?), + QueryMsg::Claims { address } => to_binary(&CLAIMS.query_claims(deps, address)?), QueryMsg::Staked { address } => to_binary(&query_staked(deps, address)?), QueryMsg::Admin {} => to_binary(&ADMIN.query_admin(deps)?), QueryMsg::Hooks {} => to_binary(&HOOKS.query_hooks(deps)?), @@ -304,10 +303,9 @@ mod tests { use super::*; use cosmwasm_std::testing::{mock_dependencies, mock_env, mock_info}; use cosmwasm_std::{from_slice, Api, StdError, Storage}; - use cw0::claim::Claim; use cw0::Duration; use cw4::{member_key, TOTAL_KEY}; - use cw_controllers::{AdminError, HookError}; + use cw_controllers::{AdminError, Claim, HookError}; const INIT_ADMIN: &str = "juan"; const USER1: &str = "somebody"; diff --git a/contracts/cw4-stake/src/msg.rs b/contracts/cw4-stake/src/msg.rs index 82c9c6573..264bce97b 100644 --- a/contracts/cw4-stake/src/msg.rs +++ b/contracts/cw4-stake/src/msg.rs @@ -2,8 +2,8 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use cosmwasm_std::{Coin, HumanAddr, Uint128}; -use cw0::claim::Claim; use cw0::Duration; +pub use cw_controllers::ClaimsResponse; #[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)] pub struct InitMsg { @@ -68,11 +68,6 @@ pub enum QueryMsg { Hooks {}, } -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] -pub struct ClaimsResponse { - pub claims: Vec, -} - #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] pub struct StakedResponse { pub stake: Coin, diff --git a/contracts/cw4-stake/src/state.rs b/contracts/cw4-stake/src/state.rs index 178c2f063..2621ae103 100644 --- a/contracts/cw4-stake/src/state.rs +++ b/contracts/cw4-stake/src/state.rs @@ -4,9 +4,11 @@ use serde::{Deserialize, Serialize}; use cosmwasm_std::Uint128; use cw0::Duration; use cw4::TOTAL_KEY; -use cw_controllers::{Admin, Hooks}; +use cw_controllers::{Admin, Claims, Hooks}; use cw_storage_plus::{Item, Map, SnapshotMap, Strategy}; +pub const CLAIMS: Claims = Claims::new("claims"); + #[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema, Debug)] pub struct Config { /// denom of the token to stake