From c061918f78b63908c690180ae406cf26246c7c87 Mon Sep 17 00:00:00 2001 From: BiPhan4 Date: Sun, 27 Mar 2022 00:11:26 -0400 Subject: [PATCH] pay_up works --- config.terrain.json | 2 +- contracts/counter/artifacts/checksums.txt | 1 + .../artifacts/checksums_intermediate.txt | 1 + contracts/counter/artifacts/counter.wasm | Bin 0 -> 121913 bytes contracts/counter/src/contract.rs | 129 ++++-------------- contracts/counter/src/msg.rs | 4 +- contracts/counter/src/state.rs | 7 +- keys.terrain.js | 2 +- refs.terrain.json | 11 +- 9 files changed, 49 insertions(+), 108 deletions(-) create mode 100644 contracts/counter/artifacts/checksums.txt create mode 100644 contracts/counter/artifacts/checksums_intermediate.txt create mode 100644 contracts/counter/artifacts/counter.wasm diff --git a/config.terrain.json b/config.terrain.json index bbc25ef..c49c951 100644 --- a/config.terrain.json +++ b/config.terrain.json @@ -17,7 +17,7 @@ } }, "instantiateMsg": { - "count": 0 + "bill": 20000000 } } } diff --git a/contracts/counter/artifacts/checksums.txt b/contracts/counter/artifacts/checksums.txt new file mode 100644 index 0000000..17a0d8e --- /dev/null +++ b/contracts/counter/artifacts/checksums.txt @@ -0,0 +1 @@ +9c11206ae9184a6c56fea84d97c362971ebfce471c080a45b435a002146e18e1 counter.wasm diff --git a/contracts/counter/artifacts/checksums_intermediate.txt b/contracts/counter/artifacts/checksums_intermediate.txt new file mode 100644 index 0000000..14be890 --- /dev/null +++ b/contracts/counter/artifacts/checksums_intermediate.txt @@ -0,0 +1 @@ +08e18ced1337e3a64711dc4ecbeecb8abb5fc677ba99167697248450bff6d0f5 ./target/wasm32-unknown-unknown/release/counter.wasm diff --git a/contracts/counter/artifacts/counter.wasm b/contracts/counter/artifacts/counter.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f18b38344d7bad5a2e8f899e2fe0821f409d9c9e GIT binary patch literal 121913 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 literal 0 HcmV?d00001 diff --git a/contracts/counter/src/contract.rs b/contracts/counter/src/contract.rs index 9d90809..7243546 100644 --- a/contracts/counter/src/contract.rs +++ b/contracts/counter/src/contract.rs @@ -1,6 +1,6 @@ #[cfg(not(feature = "library"))] use cosmwasm_std::entry_point; -use cosmwasm_std::{to_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult}; +use cosmwasm_std::{Uint128, Coin, BankMsg, CosmosMsg, Uint256, to_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult}; use cw2::set_contract_version; use crate::error::ContractError; @@ -21,6 +21,16 @@ pub fn instantiate( let state = State { storeowner: info.sender.clone(), bill: msg.bill + /*logic to split the bill + put contract callers into + store owner specifies bill amount + and users call join. + Need join function: join function adds their addresses to map + then once everyone joins have the pay up method split bill + based on map length + + */ + }; set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; STATE.save(deps.storage, &state)?; @@ -28,7 +38,7 @@ pub fn instantiate( Ok(Response::new() .add_attribute("method", "instantiate") .add_attribute("owner", info.sender) - .add_attribute("count", msg.count.to_string())) + ) } #[cfg_attr(not(feature = "library"), entry_point)] @@ -44,122 +54,35 @@ pub fn execute( } -pub fn try_increment(deps: DepsMut) -> Result { - STATE.update(deps.storage, |mut state| -> Result<_, ContractError> { - state.count += 1; - Ok(state) - })?; - - Ok(Response::new().add_attribute("method", "try_increment")) -} -pub fn try_payup(deps: DepsMut, info: MessageInfo: i32) -> Result { +pub fn try_payup(deps: DepsMut, info: MessageInfo) -> Result { let config = STATE.load(deps.storage)?; - let deposit_amount: Uint256 = info + let deposit_amount: Uint128 = info .funds .iter() .find(|c| c.denom == "uluna") - .map(|c| Uint256::from(c.amount)) - .unwrap_or_else(Uint256::zero); + .map(|c| Uint128::from(c.amount)) + .unwrap_or_else(Uint128::zero); if deposit_amount.is_zero() { - return Err(ContractError::ZeroDeposit()); + return Err(ContractError::ZeroDeposit {}); } + /*is depost amount 50% of config.bill + */ let msg = CosmosMsg::Bank(BankMsg::Send { - to_address: config.storeowner, - amount: vec![deduct_tax( - deps.as_ref(), + to_address: config.storeowner.to_string(), + amount: vec![ Coin { - denom: "uusd".to_string(), - amount: balance, + denom: "uluna".to_string(), + amount: deposit_amount, }, - )?], + ], }); Ok(Response::new().add_message(msg)) } -pub createorder(deps: DepsMut, info: MessageInfo: i32) -> Result){ -} +//pub createorder(deps: DepsMut, info: MessageInfo: i32) -> Result{ -#[cfg_attr(not(feature = "library"), entry_point)] -pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { - match msg { - QueryMsg::GetCount {} => to_binary(&query_count(deps)?), - } -} -fn query_count(deps: Deps) -> StdResult { - let state = STATE.load(deps.storage)?; - Ok(CountResponse { count: state.count }) -} +//} -#[cfg(test)] -mod tests { - use super::*; - use cosmwasm_std::testing::{mock_dependencies, mock_env, mock_info}; - use cosmwasm_std::{coins, from_binary}; - - #[test] - fn proper_initialization() { - let mut deps = mock_dependencies(&[]); - - let msg = InstantiateMsg { count: 17 }; - let info = mock_info("creator", &coins(1000, "earth")); - - // we can just call .unwrap() to assert this was a success - let res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); - assert_eq!(0, res.messages.len()); - - // it worked, let's query the state - let res = query(deps.as_ref(), mock_env(), QueryMsg::GetCount {}).unwrap(); - let value: CountResponse = from_binary(&res).unwrap(); - assert_eq!(17, value.count); - } - - #[test] - fn increment() { - let mut deps = mock_dependencies(&coins(2, "token")); - - let msg = InstantiateMsg { count: 17 }; - let info = mock_info("creator", &coins(2, "token")); - let _res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); - - // beneficiary can release it - let info = mock_info("anyone", &coins(2, "token")); - let msg = ExecuteMsg::Increment {}; - let _res = execute(deps.as_mut(), mock_env(), info, msg).unwrap(); - - // should increase counter by 1 - let res = query(deps.as_ref(), mock_env(), QueryMsg::GetCount {}).unwrap(); - let value: CountResponse = from_binary(&res).unwrap(); - assert_eq!(18, value.count); - } - - #[test] - fn reset() { - let mut deps = mock_dependencies(&coins(2, "token")); - - let msg = InstantiateMsg { count: 17 }; - let info = mock_info("creator", &coins(2, "token")); - let _res = instantiate(deps.as_mut(), mock_env(), info, msg).unwrap(); - - // beneficiary can release it - let unauth_info = mock_info("anyone", &coins(2, "token")); - let msg = ExecuteMsg::Reset { count: 5 }; - let res = execute(deps.as_mut(), mock_env(), unauth_info, msg); - match res { - Err(ContractError::Unauthorized {}) => {} - _ => panic!("Must return unauthorized error"), - } - - // only the original creator can reset the counter - let auth_info = mock_info("creator", &coins(2, "token")); - let msg = ExecuteMsg::Reset { count: 5 }; - let _res = execute(deps.as_mut(), mock_env(), auth_info, msg).unwrap(); - - // should now be 5 - let res = query(deps.as_ref(), mock_env(), QueryMsg::GetCount {}).unwrap(); - let value: CountResponse = from_binary(&res).unwrap(); - assert_eq!(5, value.count); - } -} diff --git a/contracts/counter/src/msg.rs b/contracts/counter/src/msg.rs index fed76d7..fc5b734 100644 --- a/contracts/counter/src/msg.rs +++ b/contracts/counter/src/msg.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] pub struct InstantiateMsg { - pub count: i32, + pub bill: i32, } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] @@ -25,3 +25,5 @@ pub enum QueryMsg { pub struct CountResponse { pub count: i32, } + +//initiate balances? \ No newline at end of file diff --git a/contracts/counter/src/state.rs b/contracts/counter/src/state.rs index 893adeb..5ffffbb 100644 --- a/contracts/counter/src/state.rs +++ b/contracts/counter/src/state.rs @@ -2,11 +2,16 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use cosmwasm_std::Addr; -use cw_storage_plus::Item; +use cw_storage_plus::{Item, Map}; + +use crate::msg; #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] pub struct State { pub storeowner: Addr, + pub bill: i32, } pub const STATE: Item = Item::new("state"); + +pub const BALANCES: Map<&Addr, bool> = Map::new("balance"); \ No newline at end of file diff --git a/keys.terrain.js b/keys.terrain.js index 1cf7900..a0ac290 100644 --- a/keys.terrain.js +++ b/keys.terrain.js @@ -4,6 +4,6 @@ module.exports = { testnet: { mnemonic: - "rose affair garlic decorate awesome round upgrade distance novel strong this congress jelly title also trigger proof stand between humble primary short area people", + "cactus wash reveal certain neck guard finger dash tired injury piece remember never load illness off butter lumber velvet off allow control anger return", }, }; diff --git a/refs.terrain.json b/refs.terrain.json index 9e26dfe..4192948 100644 --- a/refs.terrain.json +++ b/refs.terrain.json @@ -1 +1,10 @@ -{} \ No newline at end of file +{ + "localterra": { + "counter": { + "codeId": "6", + "contractAddresses": { + "default": "terra1xzlgeyuuyqje79ma6vllregprkmgwgavjx2h6m" + } + } + } +}