[package] name = "cosmwasm-std" version.workspace = true authors = ["Ethan Frey "] 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", "cosmwasm_2_2", "staking", "stargate"] [features] default = ["abort", "iterator", "std"] abort = [] std = [] # 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 = [] # stargate enables stargate-dependent messages and queries, like raw protobuf messages # as well as ibc-related functionality 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"] # This enables functionality that is only available on 2.0 chains. # It adds `CosmosMsg::Any`, replacing `CosmosMsg::Stargate`. It also adds `QueryRequest::Grpc`. cosmwasm_2_0 = ["cosmwasm_1_4"] # This enables functionality that is only available on 2.1 chains. # It adds verification and key recovery for the secp256r1 elliptic curve. cosmwasm_2_1 = ["cosmwasm_2_0"] # This enables functionality that is only available on 2.2 chains. # It adds `IbcMsg::PayPacketFee` and `IbcMsg::PayPacketFeeAsync`. cosmwasm_2_2 = ["cosmwasm_2_1"] [dependencies] base64 = "0.22.0" bnum = "0.11.0" cosmwasm-core = { version = "2.2.0-rc.3", path = "../core" } cosmwasm-derive = { version = "2.2.0-rc.3", path = "../derive" } derive_more = { version = "1.0.0-beta.6", default-features = false, features = [ "debug", ] } hex = "0.4" schemars = { workspace = true } sha2 = "0.10.3" serde = { workspace = true, features = ["std"] } serde-json-wasm = { version = "1.0.1", default-features = false, features = [ "std", ] } static_assertions = "1.1.0" thiserror = "1.0.26" rmp-serde = "1.3.0" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] bech32 = "0.11.0" cosmwasm-crypto = { version = "2.2.0-rc.3", path = "../crypto" } rand_core = { version = "0.6.4", features = ["getrandom"] } [dev-dependencies] cosmwasm-core = { path = "../core", version = "2.2.0-rc.3" } cosmwasm-schema = { version = "2.2.0-rc.3", 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.4.1" paste = "1.0.15" proptest = { version = "1.5.0", default-features = false, features = [ "attr-macro", "std", ] } serde_json = "1.0.81"