Skip to content

Commit 96ff49e

Browse files
committed
ref: fungible tokens
1 parent 2b95614 commit 96ff49e

File tree

8 files changed

+129
-77
lines changed

8 files changed

+129
-77
lines changed

contracts/fungible-tokens/andromeda-cw20-staking/src/contract.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -725,11 +725,11 @@ fn update_staker_reward_info(
725725
reward_token: RewardToken,
726726
) {
727727
let staker_share = Uint256::from(staker.share);
728-
let rewards = (reward_token.index - staker_reward_info.index).checked_mul(staker_share)?;
728+
let rewards = staker_share.mul_floor(reward_token.index - staker_reward_info.index);
729729

730730
staker_reward_info.index = reward_token.index;
731731
//TODO check if this is correct
732-
staker_reward_info.pending_rewards += Decimal256::from_ratio(rewards.to_uint_floor(), 1u128);
732+
staker_reward_info.pending_rewards += Decimal256::from_ratio(rewards, 1u128);
733733
}
734734

735735
pub(crate) fn get_staking_token(deps: Deps) -> Result<AssetInfo, ContractError> {

contracts/fungible-tokens/andromeda-cw20-staking/src/testing/mock_querier.rs

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use cosmwasm_std::testing::{
88
message_info, mock_env, MockApi, MockQuerier, MockStorage, MOCK_CONTRACT_ADDR,
99
};
1010

11+
use cosmwasm_std::Addr;
1112
use cosmwasm_std::QuerierWrapper;
1213
use cosmwasm_std::{
1314
from_json, to_json_binary, Coin, ContractResult, Empty, OwnedDeps, Querier, QuerierResult,

contracts/fungible-tokens/andromeda-cw20-staking/src/testing/tests.rs

+47-32
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ fn test_receive_cw20_zero_amount() {
316316
msg: to_json_binary(&"").unwrap(),
317317
});
318318

319-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
319+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
320320
let res = execute(deps.as_mut(), mock_env(), info, msg);
321321

322322
assert_eq!(
@@ -344,7 +344,7 @@ fn test_stake_unstake_tokens() {
344344
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
345345
});
346346

347-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
347+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
348348
let res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
349349

350350
assert_eq!(
@@ -382,7 +382,7 @@ fn test_stake_unstake_tokens() {
382382
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
383383
});
384384

385-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
385+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
386386
let res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
387387

388388
assert_eq!(
@@ -515,7 +515,7 @@ fn test_stake_invalid_token() {
515515
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
516516
});
517517

518-
let info = message_info("invalid_token", &[]);
518+
let info = message_info(&Addr::unchecked("invalid_token"), &[]);
519519
let res = execute(deps.as_mut(), mock_env(), info, msg);
520520

521521
assert_eq!(
@@ -840,7 +840,7 @@ fn test_update_global_indexes_cw20_deposit() {
840840
msg: to_json_binary(&Cw20HookMsg::UpdateGlobalIndex {}).unwrap(),
841841
});
842842

843-
let info = message_info(MOCK_INCENTIVE_TOKEN, &[]);
843+
let info = message_info(&Addr::unchecked(MOCK_INCENTIVE_TOKEN), &[]);
844844
let res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
845845

846846
assert_eq!(
@@ -906,7 +906,7 @@ fn test_claim_rewards() {
906906
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
907907
});
908908

909-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
909+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
910910
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
911911

912912
deps.querier.with_token_balances(&[(
@@ -920,7 +920,7 @@ fn test_claim_rewards() {
920920
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
921921
});
922922

923-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
923+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
924924
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
925925

926926
assert_eq!(
@@ -936,7 +936,7 @@ fn test_claim_rewards() {
936936
STAKERS.load(deps.as_ref().storage, "user2").unwrap()
937937
);
938938

939-
let info = message_info("user1", &[]);
939+
let info = message_info(&Addr::unchecked("user1"), &[]);
940940
let msg = ExecuteMsg::ClaimRewards {};
941941
let res = execute(deps.as_mut(), mock_env(), info, msg);
942942

@@ -945,6 +945,7 @@ fn test_claim_rewards() {
945945

946946
deps.querier
947947
.base
948+
.bank
948949
.update_balance(mock_env().contract.address, coins(100, "uusd"));
949950

950951
// Update the global index for uusd by depositing 100 uusd
@@ -996,7 +997,7 @@ fn test_claim_rewards() {
996997
res
997998
);
998999

999-
let info = message_info("user1", &[]);
1000+
let info = message_info(&Addr::unchecked("user1"), &[]);
10001001
let msg = ExecuteMsg::ClaimRewards {};
10011002
let res = execute(deps.as_mut(), mock_env(), info, msg);
10021003

@@ -1037,9 +1038,10 @@ fn test_claim_rewards() {
10371038

10381039
deps.querier
10391040
.base
1041+
.bank
10401042
.update_balance(mock_env().contract.address, coins(34, "uusd"));
10411043

1042-
let info = message_info("user2", &[]);
1044+
let info = message_info(&Addr::unchecked("user2"), &[]);
10431045
let msg = ExecuteMsg::ClaimRewards {};
10441046
let res = execute(deps.as_mut(), mock_env(), info, msg);
10451047

@@ -1081,6 +1083,7 @@ fn test_claim_rewards() {
10811083

10821084
deps.querier
10831085
.base
1086+
.bank
10841087
.update_balance(mock_env().contract.address, coins(1, "uusd"));
10851088

10861089
// Verify that the queries return the correct pending rewards.
@@ -1149,7 +1152,7 @@ fn test_claim_rewards_allocated() {
11491152
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
11501153
});
11511154

1152-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1155+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
11531156
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
11541157

11551158
assert_eq!(
@@ -1180,7 +1183,7 @@ fn test_claim_rewards_allocated() {
11801183
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
11811184
});
11821185

1183-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1186+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
11841187
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
11851188

11861189
assert_eq!(
@@ -1201,7 +1204,7 @@ fn test_claim_rewards_allocated() {
12011204
env.block.time = env.block.time.plus_seconds(50);
12021205

12031206
// User 1 claims rewards.
1204-
let info = message_info("user1", &[]);
1207+
let info = message_info(&Addr::unchecked("user1"), &[]);
12051208
let msg = ExecuteMsg::ClaimRewards {};
12061209
let res = execute(deps.as_mut(), env.clone(), info, msg).unwrap();
12071210

@@ -1257,7 +1260,7 @@ fn test_claim_rewards_allocated() {
12571260
);
12581261

12591262
// User 2 claims rewards.
1260-
let info = message_info("user2", &[]);
1263+
let info = message_info(&Addr::unchecked("user2"), &[]);
12611264
let msg = ExecuteMsg::ClaimRewards {};
12621265
let res = execute(deps.as_mut(), env, info, msg).unwrap();
12631266

@@ -1325,7 +1328,7 @@ fn test_claim_rewards_allocated_init_timestamp_in_future() {
13251328
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
13261329
});
13271330

1328-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1331+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
13291332
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
13301333

13311334
assert_eq!(
@@ -1356,7 +1359,7 @@ fn test_claim_rewards_allocated_init_timestamp_in_future() {
13561359
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
13571360
});
13581361

1359-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1362+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
13601363
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
13611364

13621365
assert_eq!(
@@ -1378,7 +1381,8 @@ fn test_claim_rewards_allocated_init_timestamp_in_future() {
13781381
env.block.time = env.block.time.plus_seconds(50 + 10);
13791382

13801383
// User 1 claims rewards.
1381-
let info = message_info("user1", &[]);
1384+
let user1 = deps.api.addr_make("user1");
1385+
let info = message_info(&user1, &[]);
13821386
let msg = ExecuteMsg::ClaimRewards {};
13831387
let res = execute(deps.as_mut(), env.clone(), info, msg).unwrap();
13841388

@@ -1433,7 +1437,8 @@ fn test_claim_rewards_allocated_init_timestamp_in_future() {
14331437
);
14341438

14351439
// User 2 claims rewards.
1436-
let info = message_info("user2", &[]);
1440+
let user2 = deps.api.addr_make("user2");
1441+
let info = message_info(&user2, &[]);
14371442
let msg = ExecuteMsg::ClaimRewards {};
14381443
let res = execute(deps.as_mut(), env, info, msg).unwrap();
14391444

@@ -1514,7 +1519,7 @@ fn test_stake_rewards_update() {
15141519
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
15151520
});
15161521

1517-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1522+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
15181523
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
15191524

15201525
deps.querier.with_token_balances(&[
@@ -1588,7 +1593,7 @@ fn test_stake_rewards_update() {
15881593
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
15891594
});
15901595

1591-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1596+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
15921597
let _res = execute(deps.as_mut(), env, info, msg).unwrap();
15931598

15941599
assert_eq!(
@@ -1699,7 +1704,7 @@ fn test_unstake_rewards_update() {
16991704
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
17001705
});
17011706

1702-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
1707+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
17031708
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
17041709

17051710
deps.querier.with_token_balances(&[
@@ -1737,7 +1742,8 @@ fn test_unstake_rewards_update() {
17371742
// Unstake all.
17381743
let msg = ExecuteMsg::UnstakeTokens { amount: None };
17391744

1740-
let info = message_info("user1", &[]);
1745+
let user1 = deps.api.addr_make("user1");
1746+
let info = message_info(&user1, &[]);
17411747

17421748
// Speed time up to halfway through cycle.
17431749
let mut env = mock_env();
@@ -2024,7 +2030,8 @@ fn test_remove_reward_token_unauthorized() {
20242030
let msg = ExecuteMsg::RemoveRewardToken {
20252031
reward_token: "native:uusd".to_string(),
20262032
};
2027-
let info = message_info("owner1", &[]);
2033+
let owner1 = deps.api.addr_make("owner1");
2034+
let info = message_info(&owner1, &[]);
20282035

20292036
let res = execute(deps.as_mut(), mock_env(), info, msg);
20302037

@@ -2088,7 +2095,7 @@ fn test_claim_rewards_after_remove() {
20882095
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
20892096
});
20902097

2091-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
2098+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
20922099
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
20932100

20942101
deps.querier.with_token_balances(&[(
@@ -2102,7 +2109,7 @@ fn test_claim_rewards_after_remove() {
21022109
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
21032110
});
21042111

2105-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
2112+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
21062113
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
21072114

21082115
assert_eq!(
@@ -2118,7 +2125,8 @@ fn test_claim_rewards_after_remove() {
21182125
STAKERS.load(deps.as_ref().storage, "user2").unwrap()
21192126
);
21202127

2121-
let info = message_info("user1", &[]);
2128+
let user1 = deps.api.addr_make("user1");
2129+
let info = message_info(&user1, &[]);
21222130
let msg = ExecuteMsg::ClaimRewards {};
21232131
let res = execute(deps.as_mut(), mock_env(), info, msg);
21242132

@@ -2127,6 +2135,7 @@ fn test_claim_rewards_after_remove() {
21272135

21282136
deps.querier
21292137
.base
2138+
.bank
21302139
.update_balance(mock_env().contract.address, coins(100, "uusd"));
21312140

21322141
// Update the global index for uusd by depositing 100 uusd
@@ -2152,7 +2161,8 @@ fn test_claim_rewards_after_remove() {
21522161
.unwrap()
21532162
);
21542163

2155-
let info = message_info("user1", &[]);
2164+
let user1 = deps.api.addr_make("user1");
2165+
let info = message_info(&user1, &[]);
21562166
let msg = ExecuteMsg::ClaimRewards {};
21572167
let res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
21582168

@@ -2193,6 +2203,7 @@ fn test_claim_rewards_after_remove() {
21932203

21942204
deps.querier
21952205
.base
2206+
.bank
21962207
.update_balance(mock_env().contract.address, coins(34, "uusd"));
21972208

21982209
let msg = ExecuteMsg::RemoveRewardToken {
@@ -2201,7 +2212,8 @@ fn test_claim_rewards_after_remove() {
22012212
let info = message_info(&Addr::unchecked("owner"), &[]);
22022213
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
22032214

2204-
let info = message_info("user2", &[]);
2215+
let user2 = deps.api.addr_make("user2");
2216+
let info = message_info(&user2, &[]);
22052217
let msg = ExecuteMsg::ClaimRewards {};
22062218
let res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
22072219

@@ -2229,6 +2241,7 @@ fn test_claim_rewards_after_remove() {
22292241
assert!(!REWARD_TOKENS.has(deps.as_ref().storage, "native:uusd"));
22302242
deps.querier
22312243
.base
2244+
.bank
22322245
.update_balance(mock_env().contract.address, coins(1, "uusd"));
22332246

22342247
// Verify that the queries return the empty pending rewards.
@@ -2296,7 +2309,7 @@ fn test_claim_rewards_allocated_after_remove() {
22962309
msg: to_json_binary(&Cw20HookMsg::StakeTokens {}).unwrap(),
22972310
});
22982311

2299-
let info = message_info(MOCK_STAKING_TOKEN, &[]);
2312+
let info = message_info(&Addr::unchecked(MOCK_STAKING_TOKEN), &[]);
23002313
let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap();
23012314

23022315
deps.querier.with_token_balances(&[
@@ -2315,7 +2328,8 @@ fn test_claim_rewards_allocated_after_remove() {
23152328
env.block.time = env.block.time.plus_seconds(50);
23162329

23172330
// User claims rewards.
2318-
let info = message_info("user", &[]);
2331+
let user = deps.api.addr_make("user");
2332+
let info = message_info(&user, &[]);
23192333
let msg = ExecuteMsg::ClaimRewards {};
23202334
execute(deps.as_mut(), env.clone(), info, msg).unwrap();
23212335

@@ -2328,7 +2342,7 @@ fn test_claim_rewards_allocated_after_remove() {
23282342
execute(deps.as_mut(), env.clone(), info, msg).unwrap();
23292343

23302344
env.block.time = env.block.time.plus_seconds(25);
2331-
let info = message_info("user", &[]);
2345+
let info = message_info(&user, &[]);
23322346
let msg = ExecuteMsg::ClaimRewards {};
23332347
let res = execute(deps.as_mut(), env, info, msg).unwrap();
23342348

@@ -2449,7 +2463,8 @@ fn test_replace_reward_token_unauthorized() {
24492463
init_timestamp: Expiry::AtTime(current_timestamp),
24502464
},
24512465
};
2452-
let info = message_info("owner1", &[]);
2466+
let owner1 = deps.api.addr_make("owner1");
2467+
let info = message_info(&owner1, &[]);
24532468

24542469
let res = execute(deps.as_mut(), mock_env(), info, msg);
24552470

contracts/fungible-tokens/andromeda-cw20/src/testing/mock_querier.rs

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use andromeda_std::testing::mock_querier::MockAndromedaQuerier;
55

66
use andromeda_std::testing::mock_querier::MOCK_KERNEL_CONTRACT;
77
use cosmwasm_std::testing::{message_info, mock_env, MockApi, MockQuerier, MockStorage};
8+
use cosmwasm_std::Addr;
89
use cosmwasm_std::{
910
from_json, to_json_binary, Binary, Coin, ContractResult, OwnedDeps, Querier, QuerierResult,
1011
QuerierWrapper, QueryRequest, SystemError, SystemResult, WasmQuery,

contracts/fungible-tokens/andromeda-lockdrop/src/testing/mock_querier.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ pub use andromeda_std::testing::mock_querier::{
66
MOCK_ADDRESS_LIST_CONTRACT, MOCK_APP_CONTRACT, MOCK_KERNEL_CONTRACT, MOCK_RATES_CONTRACT,
77
};
88
use cosmwasm_std::testing::message_info;
9-
use cosmwasm_std::QuerierWrapper;
109
use cosmwasm_std::{
1110
from_json,
1211
testing::{mock_env, MockApi, MockQuerier, MockStorage, MOCK_CONTRACT_ADDR},
1312
Coin, OwnedDeps, Querier, QuerierResult, QueryRequest, SystemError, SystemResult, WasmQuery,
1413
};
14+
use cosmwasm_std::{Addr, QuerierWrapper};
1515

1616
pub const MOCK_TOKEN_CONTRACT: &str = "token_contract";
1717
pub const MOCK_TAX_RECIPIENT: &str = "tax_recipient";

0 commit comments

Comments
 (0)