Skip to main content

Local dev and testing

Unit tests (cw-multi-test)

Add to Cargo.toml:

[dev-dependencies]
cw-multi-test = "2.0"
use cw_multi_test::{App, Executor};
use cosmwasm_std::Addr;

#[test]
fn instantiate_works() {
let mut app = App::default();
let code_id = app.store_code(my_contract_wasm());
let contract = app
.instantiate_contract(code_id, Addr::unchecked("owner"), &init_msg, &[], "label", None)
.unwrap();
assert!(contract.to_string().starts_with("cosmos"));
}

Local chain

OptionUse
Local devnetFull safrochaind on safro-devnet-1 (recommended)
Local testnetMinimal manual init
wasmdUpstream CosmWasm dev node

Build note: CosmWasm may require clang on your machine. See install.

Deploy loop

  1. cargo test
  2. cosmwasm/optimizer.wasm
  3. tx wasm store on local or testnet
  4. Interact from apps against local REST