cosmwasm-std 2.2.2

Standard library for Wasm based smart contracts on Cosmos blockchains
Documentation
[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", "cosmwasm_2_2", "staking", "stargate"]

[features]
default = ["iterator", "std"]
# abort used to enable the panic handler that hands a nice error message back to the host.
# The feature is now deprecated and the panic handler is always enabled.
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.2", path = "../core" }
cosmwasm-derive = { version = "2.2.2", 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.2", path = "../crypto" }
rand_core = { version = "0.6.4", features = ["getrandom"] }

[dev-dependencies]
cosmwasm-core = { path = "../core", version = "2.2.2" }
cosmwasm-schema = { version = "2.2.2", 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"