cowprotocol 1.0.0-alpha.1

Rust SDK for CoW Protocol: orderbook client, EIP-712 order types, signing, and composable-order primitives.
[package]
name = "cowprotocol"
version = "1.0.0-alpha.1"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
readme.workspace = true
description = "Rust SDK for CoW Protocol: orderbook client, EIP-712 order types, signing, and composable-order primitives."
homepage = "https://github.com/cowdao-grants/cow-rs"
documentation = "https://docs.rs/cowprotocol"
keywords = ["cow-protocol", "ethereum", "defi", "alloy", "sdk"]
categories = ["cryptography::cryptocurrencies", "api-bindings", "wasm"]

[lints]
workspace = true

[features]
default = ["subgraph"]
# The CoW subgraph GraphQL client lives on its own URL and is only
# useful for indexer / analytics integrations; size-sensitive consumers
# (notably the wasm shim) build with `--no-default-features` to drop
# the module entirely.
subgraph = []

[dependencies]
alloy-primitives.workspace = true
alloy-signer.workspace = true
alloy-sol-types.workspace = true
const-hex.workspace = true
hex-literal.workspace = true
serde = { workspace = true }
serde_json.workspace = true
serde_with.workspace = true
thiserror.workspace = true
url.workspace = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
reqwest = { workspace = true, features = ["rustls-tls"] }
tokio = { workspace = true, features = ["time"] }

[target.'cfg(target_arch = "wasm32")'.dependencies]
reqwest = { workspace = true }
getrandom = { workspace = true, features = ["js"] }

[dev-dependencies]
alloy-signer-local.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
wiremock.workspace = true