[package]
name = "tycho-execution"
version.workspace = true
edition.workspace = true
description = "Provides tools for encoding and executing swaps against Tycho router and protocol executors."
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
license = "BUSL-1.1"
categories.workspace = true
readme = "README.md"
exclude = [
    "foundry/*",
    "foundry",
    "tests/*",
    "tests/common",
    ".github/*",
    ".gitmodules",
]

[[bin]]
name = "tycho-encode"
path = "src/bin/tycho-encode.rs"
required-features = ["evm"]

[dependencies]
chrono     = { workspace = true }
clap       = { workspace = true, features = ["derive"] }
dotenvy    = "0.15.7"
hex        = { workspace = true }
num-bigint = { workspace = true }
once_cell  = "1.20.2"
reqwest    = { version = "0.12", features = ["json", "blocking"], optional = true }
serde      = { workspace = true }
serde_json = { workspace = true }
thiserror  = { workspace = true }
tokio      = { workspace = true }
tycho-common = { workspace = true }
typetag    = { workspace = true, optional = true }
alloy      = { workspace = true, features = ["providers", "rpc-types-eth", "eip712", "signer-local", "node-bindings", "sol-types", "transport-http", "reqwest-rustls-tls"], optional = true }
async-trait = { workspace = true, optional = true }

[dev-dependencies]
rstest         = { workspace = true }
tycho-execution = { path = ".", features = ["test-utils"] }

[features]
default = ["evm"]
evm = ["alloy", "reqwest"]
fork-tests = []
test-utils = ["async-trait", "typetag"]
