Features
Features summary
All MultiTest
features are listed in the table below.
The Default implementation column indicates whether the feature has a default
implementation in MultiTest
that simulates the functionality of the real blockchain as closely
as possible. In cases where MultiTest
does not have a default implementation for the feature,
you can provide your own, using AppBuilder
's function listed in AppBuilder constructor
column. Names of MultiTest
feature flags required to enable specific functionality are shown
in the column Feature flag.
Feature | Default implementation | Feature flag | AppBuilder constructor | Functionality |
---|---|---|---|---|
Blocks | mock_env().block (opens in a new tab) | with_block | Operations on blocks. | |
API | MockApi (opens in a new tab) | with_api | Access to CosmWasm API. | |
Storage | MockStorage (opens in a new tab) | with_storage | Access to storage. | |
Bank | BankKeeper (opens in a new tab) | with_bank | Interactions with Bank module. | |
Staking | StakeKeeper (opens in a new tab) | staking | with_staking | Interactions with Staking module. |
Distribution | DistributionKeeper (opens in a new tab) | staking | with_distribution | Interactions with Distribution module. |
Governance | GovFailingModule (opens in a new tab) | with_gov | Interactions with Governance module. | |
Stargate | StargateFailing (opens in a new tab) | stargate | with_stargate | Operations using Stargate and/or Any messages. |
Wasm | WasmKeeper (opens in a new tab) | with_wasm | Interactions with Wasm module. | |
Custom | FailingModule (opens in a new tab) | new_custom | Operations using custom module. | |
IBC | IbcFailingModule (opens in a new tab) | stargate | with_ibc | Inter-blockchain communication operations. |
Feature flags summary
The following table summarizes feature flags supported by MultiTest
.
Feature flag | Description |
---|---|
backtrace | Enables backtrace feature in anyhow dependency. |
staking | Enables staking feature in cosmwasm-std dependency and enables staking/distribution functionality in MultiTest library. |
stargate | Enables stargate feature in cosmwasm-std dependency and enables stargate/IBC functionality in MultiTest library. |
cosmwasm_1_1 | Enables cosmwasm_1_1 feature in cosmwasm-std dependency. |
cosmwasm_1_2 | Enables cosmwasm_1_2 feature in cosmwasm-std dependency and additionally cosmwasm_1_1 feature in MultiTest library. |
cosmwasm_1_3 | Enables cosmwasm_1_3 feature in cosmwasm-std dependency and additionally cosmwasm_1_2 feature in MultiTest library. |
cosmwasm_1_4 | Enables cosmwasm_1_4 feature in cosmwasm-std dependency and additionally cosmwasm_1_3 feature in MultiTest library. |
cosmwasm_2_0 | Enables cosmwasm_2_0 feature in cosmwasm-std dependency and additionally cosmwasm_1_4 feature in MultiTest library. |
cosmwasm_2_1 | Enables cosmwasm_2_1 feature in cosmwasm-std dependency and additionally cosmwasm_2_0 feature in MultiTest library. |
Starting point
Usually, a good starting point when using MultiTest
is the following dependency configuration
in Cargo.toml file:
Cargo.toml
[dependencies]
cosmwasm-std = "2"
[dev-dependencies]
cw-multi-test = { version = "2", features = ["staking", "stargate", "cosmwasm_2_1"] }