Skip to content

Commit

Permalink
Merge pull request #25 from CosmWasm/update-to-0.10
Browse files Browse the repository at this point in the history
Update to 0.10
  • Loading branch information
ethanfrey committed Jul 27, 2020
2 parents 8883b96 + 7818535 commit 8be5305
Show file tree
Hide file tree
Showing 14 changed files with 136 additions and 133 deletions.
36 changes: 18 additions & 18 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ workflows:
jobs:
contract_cw1_whitelist:
docker:
- image: rust:1.44.0
- image: rust:1.44.1
working_directory: ~/project/contracts/cw1-whitelist
steps:
- checkout:
Expand All @@ -23,7 +23,7 @@ jobs:
command: rustc --version; cargo --version; rustup --version
- restore_cache:
keys:
- cargocache-cw1-whitelist-rust:1.44.0-{{ checksum "~/project/Cargo.lock" }}
- cargocache-cw1-whitelist-rust:1.44.1-{{ checksum "~/project/Cargo.lock" }}
- run:
name: Add wasm32 target
command: rustup target add wasm32-unknown-unknown
Expand All @@ -50,11 +50,11 @@ jobs:
paths:
- /usr/local/cargo/registry
- target
key: cargocache-cw1-whitelist-rust:1.44.0-{{ checksum "~/project/Cargo.lock" }}
key: cargocache-cw1-whitelist-rust:1.44.1-{{ checksum "~/project/Cargo.lock" }}

contract_cw20_base:
docker:
- image: rust:1.44.0
- image: rust:1.44.1
working_directory: ~/project/contracts/cw20-base
steps:
- checkout:
Expand All @@ -64,7 +64,7 @@ jobs:
command: rustc --version; cargo --version; rustup --version
- restore_cache:
keys:
- cargocache-cw20-base-rust:1.44.0-{{ checksum "~/project/Cargo.lock" }}
- cargocache-cw20-base-rust:1.44.1-{{ checksum "~/project/Cargo.lock" }}
- run:
name: Add wasm32 target
command: rustup target add wasm32-unknown-unknown
Expand All @@ -91,11 +91,11 @@ jobs:
paths:
- /usr/local/cargo/registry
- target
key: cargocache-cw20-base-rust:1.44.0-{{ checksum "~/project/Cargo.lock" }}
key: cargocache-cw20-base-rust:1.44.1-{{ checksum "~/project/Cargo.lock" }}

contract_cw20_escrow:
docker:
- image: rust:1.44.0
- image: rust:1.44.1
working_directory: ~/project/contracts/cw20-escrow
steps:
- checkout:
Expand All @@ -105,7 +105,7 @@ jobs:
command: rustc --version; cargo --version; rustup --version
- restore_cache:
keys:
- cargocache-cw20-escrow-rust:1.44.0-{{ checksum "~/project/Cargo.lock" }}
- cargocache-cw20-escrow-rust:1.44.1-{{ checksum "~/project/Cargo.lock" }}
- run:
name: Add wasm32 target
command: rustup target add wasm32-unknown-unknown
Expand All @@ -132,11 +132,11 @@ jobs:
paths:
- /usr/local/cargo/registry
- target
key: cargocache-cw20-escrow-rust:1.44.0-{{ checksum "~/project/Cargo.lock" }}
key: cargocache-cw20-escrow-rust:1.44.1-{{ checksum "~/project/Cargo.lock" }}

package_cw20:
docker:
- image: rust:1.44.0
- image: rust:1.44.1
working_directory: ~/project/packages/cw20
steps:
- checkout:
Expand All @@ -146,7 +146,7 @@ jobs:
command: rustc --version; cargo --version; rustup --version; rustup target list --installed
- restore_cache:
keys:
- cargocache-v2-cw20:1.44.0-{{ checksum "~/project/Cargo.lock" }}
- cargocache-v2-cw20:1.44.1-{{ checksum "~/project/Cargo.lock" }}
- run:
name: Add wasm32 target
command: rustup target add wasm32-unknown-unknown && rustup target list --installed
Expand Down Expand Up @@ -175,11 +175,11 @@ jobs:
paths:
- /usr/local/cargo/registry
- target
key: cargocache-v2-cw20:1.44.0-{{ checksum "~/project/Cargo.lock" }}
key: cargocache-v2-cw20:1.44.1-{{ checksum "~/project/Cargo.lock" }}

package_cw1:
docker:
- image: rust:1.44.0
- image: rust:1.44.1
working_directory: ~/project/packages/cw1
steps:
- checkout:
Expand All @@ -189,7 +189,7 @@ jobs:
command: rustc --version; cargo --version; rustup --version; rustup target list --installed
- restore_cache:
keys:
- cargocache-v2-cw1:1.44.0-{{ checksum "~/project/Cargo.lock" }}
- cargocache-v2-cw1:1.44.1-{{ checksum "~/project/Cargo.lock" }}
- run:
name: Add wasm32 target
command: rustup target add wasm32-unknown-unknown && rustup target list --installed
Expand Down Expand Up @@ -218,19 +218,19 @@ jobs:
paths:
- /usr/local/cargo/registry
- target
key: cargocache-v2-cw1:1.44.0-{{ checksum "~/project/Cargo.lock" }}
key: cargocache-v2-cw1:1.44.1-{{ checksum "~/project/Cargo.lock" }}

lint:
docker:
- image: rust:1.44.0
- image: rust:1.44.1
steps:
- checkout
- run:
name: Version information
command: rustc --version; cargo --version; rustup --version; rustup target list --installed
- restore_cache:
keys:
- cargocache-v2-lint-rust:1.44.0-{{ checksum "Cargo.lock" }}
- cargocache-v2-lint-rust:1.44.1-{{ checksum "Cargo.lock" }}
- run:
name: Add rustfmt component
command: rustup component add rustfmt
Expand All @@ -249,4 +249,4 @@ jobs:
- target/debug/.fingerprint
- target/debug/build
- target/debug/deps
key: cargocache-v2-lint-rust:1.44.0-{{ checksum "Cargo.lock" }}
key: cargocache-v2-lint-rust:1.44.1-{{ checksum "Cargo.lock" }}
12 changes: 6 additions & 6 deletions Cargo.lock

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

6 changes: 3 additions & 3 deletions contracts/cw1-whitelist/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ backtraces = ["cosmwasm-std/backtraces"]

[dependencies]
#cw1 = { path = "../../packages/cw1", version = "0.1.0" }
cosmwasm-std = { version = "0.9.2", features = ["iterator"] }
cosmwasm-storage = { version = "0.9.2", features = ["iterator"] }
cosmwasm-std = { version = "0.10.0-alpha2", features = ["iterator"] }
cosmwasm-storage = { version = "0.10.0-alpha2", features = ["iterator"] }
schemars = "0.7"
serde = { version = "1.0.103", default-features = false, features = ["derive"] }
snafu = { version = "0.6.3" }

[dev-dependencies]
cosmwasm-schema = { version = "0.9.2" }
cosmwasm-schema = { version = "0.10.0-alpha2" }
12 changes: 6 additions & 6 deletions contracts/cw1-whitelist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ a chain-specific message.

## Running this contract

You will need Rust 1.41+ with `wasm32-unknown-unknown` target installed.
You will need Rust 1.44.1+ with `wasm32-unknown-unknown` target installed.

You can run unit tests on this via:

Expand All @@ -35,9 +35,9 @@ Once you are happy with the content, you can compile it to wasm via:

```
RUSTFLAGS='-C link-arg=-s' cargo wasm
cp ../../target/wasm32-unknown-unknown/release/cw20_escrow.wasm .
ls -l cw20_escrow.wasm
sha256sum cw20_escrow.wasm
cp ../../target/wasm32-unknown-unknown/release/cw1_whitelist.wasm .
ls -l cw1_whitelist.wasm
sha256sum cw1_whitelist.wasm
```

Or for a production-ready (compressed) build, run the following from the
Expand All @@ -47,6 +47,6 @@ repository root (not currently working with this monorepo...)
docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="cosmwasm_plus_cache",target=/code/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/rust-optimizer:0.8.0 ./contracts/cw20-base
mv contract.wasm cw20_escrow.wasm
cosmwasm/rust-optimizer:0.9.0 ./contracts/cw1-base
mv contract.wasm cw1_whitelist.wasm
```
24 changes: 12 additions & 12 deletions contracts/cw1-whitelist/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ where
T: Clone + fmt::Debug + PartialEq + JsonSchema,
{
let cfg = config_read(&deps.storage).load()?;
if !cfg.is_admin(&env.message.sender) {
if !cfg.is_admin(&deps.api.canonical_address(&env.message.sender)?) {
Err(StdError::unauthorized())
} else {
let mut res = HandleResponse::default();
Expand All @@ -71,7 +71,7 @@ pub fn handle_freeze<S: Storage, A: Api, Q: Querier>(
env: Env,
) -> StdResult<HandleResponse> {
let mut cfg = config_read(&deps.storage).load()?;
if !cfg.can_modify(&env.message.sender) {
if !cfg.can_modify(&deps.api.canonical_address(&env.message.sender)?) {
Err(StdError::unauthorized())
} else {
cfg.mutable = false;
Expand All @@ -89,7 +89,7 @@ pub fn handle_update_admins<S: Storage, A: Api, Q: Querier>(
admins: Vec<HumanAddr>,
) -> StdResult<HandleResponse> {
let mut cfg = config_read(&deps.storage).load()?;
if !cfg.can_modify(&env.message.sender) {
if !cfg.can_modify(&deps.api.canonical_address(&env.message.sender)?) {
Err(StdError::unauthorized())
} else {
cfg.admins = map_canonical(&deps.api, &admins)?;
Expand Down Expand Up @@ -143,7 +143,7 @@ mod tests {
admins: vec![alice.clone(), bob.clone(), carl.clone()],
mutable: true,
};
let env = mock_env(&deps.api, &anyone, &[]);
let env = mock_env(&anyone, &[]);
init(&mut deps, env, init_msg).unwrap();

// ensure expected config
Expand All @@ -157,7 +157,7 @@ mod tests {
let msg = HandleMsg::UpdateAdmins {
admins: vec![anyone.clone()],
};
let env = mock_env(&deps.api, &anyone, &[]);
let env = mock_env(&anyone, &[]);
let res = handle(&mut deps, env, msg);
match res.unwrap_err() {
StdError::Unauthorized { .. } => {}
Expand All @@ -168,7 +168,7 @@ mod tests {
let msg = HandleMsg::UpdateAdmins {
admins: vec![alice.clone(), bob.clone()],
};
let env = mock_env(&deps.api, &alice, &[]);
let env = mock_env(&alice, &[]);
handle(&mut deps, env, msg).unwrap();

// ensure expected config
Expand All @@ -179,15 +179,15 @@ mod tests {
assert_eq!(query_config(&deps).unwrap(), expected);

// carl cannot freeze it
let env = mock_env(&deps.api, &carl, &[]);
let env = mock_env(&carl, &[]);
let res = handle(&mut deps, env, HandleMsg::Freeze {});
match res.unwrap_err() {
StdError::Unauthorized { .. } => {}
e => panic!("unexpected error: {}", e),
}

// but bob can
let env = mock_env(&deps.api, &bob, &[]);
let env = mock_env(&bob, &[]);
handle(&mut deps, env, HandleMsg::Freeze {}).unwrap();
let expected = ConfigResponse {
admins: vec![alice.clone(), bob.clone()],
Expand All @@ -199,7 +199,7 @@ mod tests {
let msg = HandleMsg::UpdateAdmins {
admins: vec![alice.clone()],
};
let env = mock_env(&deps.api, &alice, &[]);
let env = mock_env(&alice, &[]);
let res = handle(&mut deps, env, msg);
match res.unwrap_err() {
StdError::Unauthorized { .. } => {}
Expand All @@ -220,7 +220,7 @@ mod tests {
admins: vec![alice.clone(), carl.clone()],
mutable: false,
};
let env = mock_env(&deps.api, &bob, &[]);
let env = mock_env(&bob, &[]);
init(&mut deps, env, init_msg).unwrap();

let freeze: HandleMsg<Empty> = HandleMsg::Freeze {};
Expand All @@ -243,15 +243,15 @@ mod tests {
let handle_msg = HandleMsg::Execute { msgs: msgs.clone() };

// bob cannot execute them
let env = mock_env(&deps.api, &bob, &[]);
let env = mock_env(&bob, &[]);
let res = handle(&mut deps, env, handle_msg.clone());
match res.unwrap_err() {
StdError::Unauthorized { .. } => {}
e => panic!("unexpected error: {}", e),
}

// but carl can
let env = mock_env(&deps.api, &carl, &[]);
let env = mock_env(&carl, &[]);
let res = handle(&mut deps, env, handle_msg.clone()).unwrap();
assert_eq!(res.messages, msgs);
assert_eq!(res.log, vec![log("action", "execute")]);
Expand Down
8 changes: 4 additions & 4 deletions contracts/cw20-base/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ backtraces = ["cosmwasm-std/backtraces"]

[dependencies]
cw20 = { path = "../../packages/cw20", version = "0.1.0" }
cosmwasm-std = { version = "0.9.2" }
cosmwasm-storage = { version = "0.9.2" }
cosmwasm-std = { version = "0.10.0-alpha2" }
cosmwasm-storage = { version = "0.10.0-alpha2" }
schemars = "0.7"
serde = { version = "1.0.103", default-features = false, features = ["derive"] }
snafu = { version = "0.6.3" }

[dev-dependencies]
# we only need to enable this if we use integration tests
#cosmwasm-vm = { version = "0.9.2", default-features = false }
cosmwasm-schema = { version = "0.9.2" }
#cosmwasm-vm = { version = "0.10.0-alpha2", default-features = false }
cosmwasm-schema = { version = "0.10.0-alpha2" }
4 changes: 2 additions & 2 deletions contracts/cw20-base/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Implements:

## Running this contract

You will need Rust 1.41+ with `wasm32-unknown-unknown` target installed.
You will need Rust 1.44.1+ with `wasm32-unknown-unknown` target installed.

You can run unit tests on this via:

Expand All @@ -35,7 +35,7 @@ repository root (not currently working with this monorepo...)
docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="cosmwasm_plus_cache",target=/code/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/rust-optimizer:0.8.0 ./contracts/cw20-base
cosmwasm/rust-optimizer:0.9.0 ./contracts/cw20-base
mv contract.wasm cw20_base.wasm
```

Expand Down
Loading

0 comments on commit 8be5305

Please sign in to comment.