Skip to content

Commit 228238b

Browse files
authored
Merge pull request #21 from enigmampc/remove-balance-handle
removed HandleMsg::Balance since it was a duplicate of QueryMsg::Balance
2 parents d999e6e + e0a142d commit 228238b

File tree

2 files changed

+27
-102
lines changed

2 files changed

+27
-102
lines changed

src/contract.rs

Lines changed: 24 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/// This contract implements SNIP-20 standard:
22
/// https://github.com/SecretFoundation/SNIPs/blob/master/SNIP-20.md
33
use cosmwasm_std::{
4-
to_binary, Api, BankMsg, Binary, CanonicalAddr, Coin, CosmosMsg, Env, Extern, HandleResponse,
5-
HumanAddr, InitResponse, Querier, QueryResult, ReadonlyStorage, StdError, StdResult, Storage,
6-
Uint128,
4+
log, to_binary, Api, BankMsg, Binary, CanonicalAddr, Coin, CosmosMsg, Env, Extern,
5+
HandleResponse, HumanAddr, InitResponse, Querier, QueryResult, ReadonlyStorage, StdError,
6+
StdResult, Storage, Uint128,
77
};
88

99
use crate::msg::{
@@ -99,11 +99,11 @@ pub fn handle<S: Storage, A: Api, Q: Querier>(
9999
let contract_status = ReadonlyConfig::from_storage(&deps.storage).contract_status();
100100

101101
match contract_status {
102-
ContractStatusLevel::StopAll | ContractStatusLevel::StopAllButWithdrawals => {
102+
ContractStatusLevel::StopAll | ContractStatusLevel::StopAllButRedeems => {
103103
let response = match msg {
104104
HandleMsg::SetContractStatus { level, .. } => set_contract_status(deps, env, level),
105105
HandleMsg::Redeem { amount, .. }
106-
if contract_status == ContractStatusLevel::StopAllButWithdrawals =>
106+
if contract_status == ContractStatusLevel::StopAllButRedeems =>
107107
{
108108
try_redeem(deps, env, amount)
109109
}
@@ -120,7 +120,6 @@ pub fn handle<S: Storage, A: Api, Q: Querier>(
120120
// Native
121121
HandleMsg::Deposit { .. } => try_deposit(deps, env),
122122
HandleMsg::Redeem { amount, .. } => try_redeem(deps, env, amount),
123-
HandleMsg::Balance { .. } => try_balance(deps, env),
124123

125124
// Base
126125
HandleMsg::Transfer {
@@ -274,9 +273,8 @@ pub fn query_balance<S: Storage, A: Api, Q: Querier>(
274273
) -> StdResult<Binary> {
275274
let address = deps.api.canonical_address(account)?;
276275

277-
let response = QueryAnswer::Balance {
278-
amount: Uint128(get_balance(&deps.storage, &address)),
279-
};
276+
let amount = Uint128(ReadonlyBalances::from_storage(&deps.storage).account_amount(&address));
277+
let response = QueryAnswer::Balance { amount };
280278
to_binary(&response)
281279
}
282280

@@ -439,26 +437,6 @@ pub fn try_check_allowance<S: Storage, A: Api, Q: Querier>(
439437
to_binary(&response)
440438
}
441439

442-
pub fn try_balance<S: Storage, A: Api, Q: Querier>(
443-
deps: &mut Extern<S, A, Q>,
444-
env: Env,
445-
) -> StdResult<HandleResponse> {
446-
let sender_address = deps.api.canonical_address(&env.message.sender)?;
447-
let account_balance = get_balance(&deps.storage, &sender_address);
448-
449-
Ok(HandleResponse {
450-
messages: vec![],
451-
log: vec![],
452-
data: Some(to_binary(&HandleAnswer::Balance {
453-
amount: Uint128(account_balance),
454-
})?),
455-
})
456-
}
457-
458-
fn get_balance<S: Storage>(storage: &S, account: &CanonicalAddr) -> u128 {
459-
ReadonlyBalances::from_storage(storage).account_amount(account)
460-
}
461-
462440
fn try_deposit<S: Storage, A: Api, Q: Querier>(
463441
deps: &mut Extern<S, A, Q>,
464442
env: Env,
@@ -523,7 +501,7 @@ fn try_redeem<S: Storage, A: Api, Q: Querier>(
523501
balances.set_account_balance(&sender_address, account_balance);
524502
} else {
525503
return Err(StdError::generic_err(format!(
526-
"insufficient funds to burn: balance={}, required={}",
504+
"insufficient funds to redeem: balance={}, required={}",
527505
account_balance, amount_raw
528506
)));
529507
}
@@ -660,7 +638,7 @@ fn try_register_receive<S: Storage, A: Api, Q: Querier>(
660638
set_receiver_hash(&mut deps.storage, &env.message.sender, code_hash);
661639
let res = HandleResponse {
662640
messages: vec![],
663-
log: vec![],
641+
log: vec![log("register_status", "success")],
664642
data: Some(to_binary(&HandleAnswer::RegisterReceive {
665643
status: Success,
666644
})?),
@@ -670,7 +648,7 @@ fn try_register_receive<S: Storage, A: Api, Q: Querier>(
670648

671649
fn insufficient_allowance(allowance: u128, required: u128) -> StdError {
672650
StdError::generic_err(format!(
673-
"Insufficient allowance: allowance={}, required={}",
651+
"insufficient allowance: allowance={}, required={}",
674652
allowance, required
675653
))
676654
}
@@ -1036,7 +1014,7 @@ fn perform_transfer<T: Storage>(
10361014
from_balance = new_from_balance;
10371015
} else {
10381016
return Err(StdError::generic_err(format!(
1039-
"Insufficient funds: balance={}, required={}",
1017+
"insufficient funds: balance={}, required={}",
10401018
from_balance, amount
10411019
)));
10421020
}
@@ -1285,7 +1263,7 @@ mod tests {
12851263
};
12861264
let handle_result = handle(&mut deps, mock_env("bob", &[]), handle_msg);
12871265
let error = extract_error_msg(handle_result);
1288-
assert!(error.contains("Insufficient funds"));
1266+
assert!(error.contains("insufficient funds"));
12891267
}
12901268

12911269
#[test]
@@ -1464,7 +1442,7 @@ mod tests {
14641442
};
14651443
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
14661444
let error = extract_error_msg(handle_result);
1467-
assert!(error.contains("Insufficient allowance"));
1445+
assert!(error.contains("insufficient allowance"));
14681446

14691447
// Transfer more than allowance
14701448
let handle_msg = HandleMsg::IncreaseAllowance {
@@ -1487,7 +1465,7 @@ mod tests {
14871465
};
14881466
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
14891467
let error = extract_error_msg(handle_result);
1490-
assert!(error.contains("Insufficient allowance"));
1468+
assert!(error.contains("insufficient allowance"));
14911469

14921470
// Transfer after allowance expired
14931471
let handle_msg = HandleMsg::TransferFrom {
@@ -1517,7 +1495,7 @@ mod tests {
15171495
handle_msg,
15181496
);
15191497
let error = extract_error_msg(handle_result);
1520-
assert!(error.contains("Insufficient allowance"));
1498+
assert!(error.contains("insufficient allowance"));
15211499

15221500
// Sanity check
15231501
let handle_msg = HandleMsg::TransferFrom {
@@ -1558,7 +1536,7 @@ mod tests {
15581536
};
15591537
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
15601538
let error = extract_error_msg(handle_result);
1561-
assert!(error.contains("Insufficient allowance"));
1539+
assert!(error.contains("insufficient allowance"));
15621540
}
15631541

15641542
#[test]
@@ -1583,7 +1561,7 @@ mod tests {
15831561
};
15841562
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
15851563
let error = extract_error_msg(handle_result);
1586-
assert!(error.contains("Insufficient allowance"));
1564+
assert!(error.contains("insufficient allowance"));
15871565

15881566
// Send more than allowance
15891567
let handle_msg = HandleMsg::IncreaseAllowance {
@@ -1607,7 +1585,7 @@ mod tests {
16071585
};
16081586
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
16091587
let error = extract_error_msg(handle_result);
1610-
assert!(error.contains("Insufficient allowance"));
1588+
assert!(error.contains("insufficient allowance"));
16111589

16121590
// Sanity check
16131591
let handle_msg = HandleMsg::RegisterReceive {
@@ -1672,7 +1650,7 @@ mod tests {
16721650
};
16731651
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
16741652
let error = extract_error_msg(handle_result);
1675-
assert!(error.contains("Insufficient allowance"));
1653+
assert!(error.contains("insufficient allowance"));
16761654
}
16771655

16781656
#[test]
@@ -1695,7 +1673,7 @@ mod tests {
16951673
};
16961674
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
16971675
let error = extract_error_msg(handle_result);
1698-
assert!(error.contains("Insufficient allowance"));
1676+
assert!(error.contains("insufficient allowance"));
16991677

17001678
// Burn more than allowance
17011679
let handle_msg = HandleMsg::IncreaseAllowance {
@@ -1717,7 +1695,7 @@ mod tests {
17171695
};
17181696
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
17191697
let error = extract_error_msg(handle_result);
1720-
assert!(error.contains("Insufficient allowance"));
1698+
assert!(error.contains("insufficient allowance"));
17211699

17221700
// Sanity check
17231701
let handle_msg = HandleMsg::BurnFrom {
@@ -1749,7 +1727,7 @@ mod tests {
17491727
};
17501728
let handle_result = handle(&mut deps, mock_env("alice", &[]), handle_msg);
17511729
let error = extract_error_msg(handle_result);
1752-
assert!(error.contains("Insufficient allowance"));
1730+
assert!(error.contains("insufficient allowance"));
17531731
}
17541732

17551733
#[test]
@@ -1985,47 +1963,6 @@ mod tests {
19851963
assert_eq!(balances.account_amount(&canonical), 4000)
19861964
}
19871965

1988-
#[test]
1989-
fn test_handle_balance() {
1990-
let (init_result, mut deps) = init_helper(vec![InitialBalance {
1991-
address: HumanAddr("butler".to_string()),
1992-
amount: Uint128(5000),
1993-
}]);
1994-
assert!(
1995-
init_result.is_ok(),
1996-
"Init failed: {}",
1997-
init_result.err().unwrap()
1998-
);
1999-
2000-
let handle_msg = HandleMsg::Balance { padding: None };
2001-
let handle_result = handle(&mut deps, mock_env("butler", &[]), handle_msg);
2002-
assert!(
2003-
handle_result.is_ok(),
2004-
"handle() failed: {}",
2005-
handle_result.err().unwrap()
2006-
);
2007-
2008-
let balance: HandleAnswer = from_binary(&handle_result.unwrap().data.unwrap()).unwrap();
2009-
match balance {
2010-
HandleAnswer::Balance { amount } => assert_eq!(amount, Uint128(5000)),
2011-
_ => panic!("NOT GONNA HAPPEN"),
2012-
}
2013-
2014-
let handle_msg = HandleMsg::Redeem {
2015-
amount: Uint128(1000),
2016-
padding: None,
2017-
};
2018-
let _handle_result = handle(&mut deps, mock_env("butler", &[]), handle_msg);
2019-
2020-
let handle_msg = HandleMsg::Balance { padding: None };
2021-
let handle_result = handle(&mut deps, mock_env("butler", &[]), handle_msg);
2022-
let balance: HandleAnswer = from_binary(&handle_result.unwrap().data.unwrap()).unwrap();
2023-
match balance {
2024-
HandleAnswer::Balance { amount } => assert_eq!(amount, Uint128(4000)),
2025-
_ => panic!("NOT GONNA HAPPEN"),
2026-
}
2027-
}
2028-
20291966
#[test]
20301967
fn test_handle_deposit() {
20311968
let (init_result, mut deps) = init_helper(vec![InitialBalance {
@@ -2140,7 +2077,7 @@ mod tests {
21402077
);
21412078

21422079
let pause_msg = HandleMsg::SetContractStatus {
2143-
level: ContractStatusLevel::StopAllButWithdrawals,
2080+
level: ContractStatusLevel::StopAllButRedeems,
21442081
padding: None,
21452082
};
21462083
let handle_result = handle(&mut deps, mock_env("not_admin", &[]), pause_msg);
@@ -2193,7 +2130,7 @@ mod tests {
21932130
);
21942131

21952132
let pause_msg = HandleMsg::SetContractStatus {
2196-
level: ContractStatusLevel::StopAllButWithdrawals,
2133+
level: ContractStatusLevel::StopAllButRedeems,
21972134
padding: None,
21982135
};
21992136

src/msg.rs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ pub enum HandleMsg {
5757
Deposit {
5858
padding: Option<String>,
5959
},
60-
Balance {
61-
padding: Option<String>,
62-
},
6360

6461
// Base ERC-20 stuff
6562
Transfer {
@@ -162,9 +159,6 @@ pub enum HandleAnswer {
162159
Redeem {
163160
status: ResponseStatus,
164161
},
165-
Balance {
166-
amount: Uint128,
167-
},
168162

169163
// Base
170164
Transfer {
@@ -320,22 +314,22 @@ pub enum ResponseStatus {
320314
#[serde(rename_all = "snake_case")]
321315
pub enum ContractStatusLevel {
322316
NormalRun,
323-
StopAllButWithdrawals,
317+
StopAllButRedeems,
324318
StopAll,
325319
}
326320

327321
pub fn status_level_to_u8(status_level: ContractStatusLevel) -> u8 {
328322
match status_level {
329323
ContractStatusLevel::NormalRun => 0,
330-
ContractStatusLevel::StopAllButWithdrawals => 1,
324+
ContractStatusLevel::StopAllButRedeems => 1,
331325
ContractStatusLevel::StopAll => 2,
332326
}
333327
}
334328

335329
pub fn u8_to_status_level(status_level: u8) -> StdResult<ContractStatusLevel> {
336330
match status_level {
337331
0 => Ok(ContractStatusLevel::NormalRun),
338-
1 => Ok(ContractStatusLevel::StopAllButWithdrawals),
332+
1 => Ok(ContractStatusLevel::StopAllButRedeems),
339333
2 => Ok(ContractStatusLevel::StopAll),
340334
_ => Err(StdError::generic_err("Invalid state level")),
341335
}
@@ -378,10 +372,4 @@ mod tests {
378372
);
379373
Ok(())
380374
}
381-
382-
pub fn get_public_total_supply_true() -> InitConfig {
383-
InitConfig {
384-
public_total_supply: Some(true),
385-
}
386-
}
387375
}

0 commit comments

Comments
 (0)