[package] name = "cosmwasm-std" version.workspace = true authors = ["Ethan Frey <ethanfrey@users.noreply.github.com>"] edition = "2021" description = "Standard library for Wasm based smart contracts on Cosmos blockchains" repository = "https://github.com/CosmWasm/cosmwasm/tree/main/packages/std" license = "Apache-2.0" readme = "README.md" [package.metadata.docs.rs] features = ["abort", "stargate", "staking", "ibc3", "cosmwasm_1_4"] [features] default = ["iterator", "abort"] abort = [] # iterator allows us to iterate over all DB items in a given range # optional as some merkle stores (like tries) don't support this # given Ethereum 1.0, 2.0, Substrate, and other major projects use Tries # we keep this optional, to allow possible future integration (or different Cosmos Backends) iterator = [] # staking exposes bindings to a required staking moudle in the runtime, via new # CosmosMsg types, and new QueryRequest types. This should only be enabled on contracts # that require these types, so other contracts can be used on systems with eg. PoA consensus staking = [] # backtraces provides much better context at runtime errors (in non-wasm code) # at the cost of a bit of code size and performance. # This feature requires Rust nightly because it depends on the unstable backtrace feature. backtraces = [] # stargate enables stargate-dependent messages and queries, like raw protobuf messages # as well as ibc-related functionality stargate = [] # ibc3 extends ibc messages with ibc-v3 only features. This should only be enabled on contracts # that require these types. Without this, they get the smaller ibc-v1 API. ibc3 = ["stargate"] # This feature makes `BankQuery::Supply` available for the contract to call, but requires # the host blockchain to run CosmWasm `1.1.0` or higher. cosmwasm_1_1 = [] # This feature makes `GovMsg::VoteWeighted` available for the contract to call, but requires # the host blockchain to run CosmWasm `1.2.0` or higher. cosmwasm_1_2 = ["cosmwasm_1_1"] # This feature makes `BankQuery::DenomMetadata` available for the contract to call, but requires # the host blockchain to run CosmWasm `1.3.0` or higher. cosmwasm_1_3 = ["cosmwasm_1_2"] # Together with the `iterator` feature this enables additional imports for more # efficient iteration over DB keys or values. # It also makes `DistributionQuery::{DelegationRewards, DelegationTotalRewards, DelegatorValidators}` # available for the contract to call. # It requires the host blockchain to run CosmWasm `1.4.0` or higher. cosmwasm_1_4 = ["cosmwasm_1_3"] [dependencies] base64 = "0.21.0" cosmwasm-derive = { path = "../derive", version = "1.5.11" } derivative = "2" forward_ref = "1" hex = "0.4" schemars = "0.8.3" sha2 = "0.10.3" serde = { version = "1.0.103", default-features = false, features = [ "derive", "alloc", ] } serde-json-wasm = { version = "0.5.2", default-features = false } thiserror = "1.0.26" bnum = "0.10.0" static_assertions = "1.1.0" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] bech32 = "0.9.1" cosmwasm-crypto = { path = "../crypto", version = "1.5.11" } [dev-dependencies] cosmwasm-schema = { path = "../schema" } # The chrono dependency is only used in an example, which Rust compiles for us. If this causes trouble, remove it. chrono = { version = "0.4", default-features = false, features = [ "alloc", "std", ] } crc32fast = "1.3.2" hex-literal = "0.3.1" serde_json = "1.0.81"