# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.91"
name = "neo3"
version = "2.1.0"
authors = ["R3E Network <jimmy@r3e.network> (c) 2020-2026"]
build = "build.rs"
include = [
    "/Cargo.toml",
    "/Cargo.lock",
    "/build.rs",
    "/README.md",
    "/CHANGELOG.md",
    "/LICENSE",
    "/LICENSE-APACHE",
    "/LICENSE-MIT",
    "/COPYRIGHT",
    "/assets/**",
    "/benches/**",
    "/src/**",
    "/tests/**",
]
publish = ["crates-io"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Production-ready Rust SDK for Neo N3 blockchain with high-level API, unified error handling, and enterprise features"
homepage = "https://github.com/r3e-network/neo-rust-sdk"
documentation = "https://docs.rs/neo3"
readme = "README.md"
keywords = [
    "crypto",
    "neo",
    "neo-N3",
    "web3",
    "blockchain",
]
categories = [
    "cryptography::cryptocurrencies",
    "api-bindings",
    "cryptography",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/r3e-network/neo-rust-sdk"

[package.metadata.docs.rs]
all-features = false
features = [
    "futures",
    "ledger",
]
rustdoc-args = [
    "--cfg",
    "docsrs",
]
default-target = "x86_64-unknown-linux-gnu"

[package.metadata.playground]
all-features = false

[features]
default = []
futures = []
init = []
ipc = ["dep:rustc-hash"]
ledger = ["coins-ledger"]
legacy-ws = ["dep:tokio-tungstenite"]
mock = []
mock-hsm = [
    "yubi",
    "yubihsm/mockhsm",
]
no_std = [
    "serde/alloc",
    "hex/alloc",
    "k256/arithmetic",
    "elliptic-curve/arithmetic",
]
sgx = ["no_std"]
ws = ["dep:tokio-tungstenite"]
yubi = ["dep:yubihsm"]

[lib]
name = "neo3"
path = "src/lib.rs"
doctest = true

[[test]]
name = "gas_estimator_integration_tests"
path = "tests/gas_estimator_integration_tests.rs"

[[test]]
name = "integration_wallet_security"
path = "tests/integration_wallet_security.rs"

[[test]]
name = "ledger_tests"
path = "tests/ledger_tests.rs"

[[test]]
name = "sdk_integration_tests"
path = "tests/sdk_integration_tests.rs"

[[bench]]
name = "crypto_benchmarks"
path = "benches/crypto_benchmarks.rs"
harness = false

[[bench]]
name = "gas_estimator_benchmarks"
path = "benches/gas_estimator_benchmarks.rs"
harness = false

[[bench]]
name = "script_builder_benchmarks"
path = "benches/script_builder_benchmarks.rs"
harness = false

[[bench]]
name = "wallet_benchmarks"
path = "benches/wallet_benchmarks.rs"
harness = false

[dependencies.aes]
version = "0.8.3"

[dependencies.alloy]
version = "2.1"
features = [
    "essentials",
    "reqwest",
]

[dependencies.async-trait]
version = "0.1.73"

[dependencies.auto_impl]
version = "1.1"

[dependencies.base64]
version = "0.22.1"

[dependencies.bip39]
version = "2.2.2"
features = ["rand"]

[dependencies.blake2]
version = "0.10.6"
features = ["std"]
default-features = false

[dependencies.bs58]
version = "0.5.1"

[dependencies.byte-slice-cast]
version = "1.2"

[dependencies.bytes]
version = "1.4"

[dependencies.chrono]
version = "0.4.44"
features = ["serde"]

[dependencies.coins-ledger]
version = "0.13.0"
optional = true
default-features = false

[dependencies.derive_more]
version = "2.1.1"
features = ["full"]

[dependencies.ecb]
version = "0.1.2"

[dependencies.ed25519-dalek]
version = "2.1.1"
features = [
    "std",
    "rand_core",
]
default-features = false

[dependencies.elliptic-curve]
version = "0.13.5"
default-features = false

[dependencies.futures]
version = "0.3.32"
features = ["std"]
default-features = false

[dependencies.futures-channel]
version = "0.3.28"

[dependencies.futures-timer]
version = "3.0.2"
features = ["wasm-bindgen"]
default-features = false

[dependencies.futures-util]
version = "0.3.28"

[dependencies.getset]
version = "0.1.2"

[dependencies.hex]
version = "1.6"
features = ["hex"]
package = "const-hex"

[dependencies.hex-literal]
version = "1.1"

[dependencies.hmac]
version = "0.13.0"

[dependencies.http]
version = "1.4.0"

[dependencies.jsonwebtoken]
version = "10.3.0"
features = ["rust_crypto"]
default-features = false

[dependencies.k256]
version = "0.13.1"
features = [
    "ecdsa",
    "std",
    "ecdsa-core",
]
default-features = false

[dependencies.lazy_static]
version = "1.4.0"

[dependencies.num-bigint]
version = "0.4"

[dependencies.num-traits]
version = "0.2.16"

[dependencies.num_enum]
version = "0.7.6"

[dependencies.once_cell]
version = "1.21"

[dependencies.p256]
version = "0.13.2"

[dependencies.pin-project]
version = "1.1"

[dependencies.primitive-types]
version = "0.14.0"
features = ["serde"]

[dependencies.rand]
version = "0.9.3"

[dependencies.rand_core]
version = "0.9.3"

[dependencies.rayon]
version = "1.7"

[dependencies.reqwest]
version = "0.12.5"
features = [
    "json",
    "blocking",
    "rustls-tls",
    "stream",
]
default-features = false

[dependencies.ripemd]
version = "0.2.0"

[dependencies.rust_decimal]
version = "1.41"

[dependencies.rustc-hash]
version = "2.1"
optional = true

[dependencies.scrypt]
version = "0.11.0"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"
features = ["raw_value"]

[dependencies.serde_with]
version = "3.18.0"

[dependencies.sha2]
version = "0.11"
default-features = false

[dependencies.sha3]
version = "0.10.8"
features = ["std"]
default-features = false

[dependencies.signature]
version = "2.1.0"

[dependencies.strum]
version = "0.28.0"

[dependencies.strum_macros]
version = "0.28.0"

[dependencies.thiserror]
version = "2.0.17"

[dependencies.tokio-tungstenite]
version = "0.29.0"
features = [
    "native-tls",
    "connect",
]
optional = true

[dependencies.tracing]
version = "0.1.44"

[dependencies.tracing-futures]
version = "0.2.5"

[dependencies.tracing-subscriber]
version = "0.3.23"
features = [
    "fmt",
    "std",
]
default-features = false

[dependencies.url]
version = "2.5"
default-features = false

[dependencies.yubihsm]
version = "0.42"
features = [
    "http",
    "usb",
]
optional = true

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.env_logger]
version = "0.11"

[dev-dependencies.mockall]
version = "0.14.0"

[dev-dependencies.proptest]
version = "1.11"

[dev-dependencies.serial_test]
version = "3.5.0"

[dev-dependencies.tempfile]
version = "3.27"

[dev-dependencies.tracing]
version = "0.1"

[dev-dependencies.tracing-subscriber]
version = "0.3.23"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.50"
features = ["full"]

[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
version = "1.45"
features = [
    "sync",
    "macros",
    "io-util",
    "rt",
    "time",
]
default-features = false

[profile.dev.package."*"]
opt-level = 3

[profile.test]
opt-level = 1

[profile.test.package."*"]
opt-level = 3
