[package]
name = "pyth-lazer-agent"
version = "0.4.0"
edition = "2024"
description = "Pyth Lazer Agent"
license = "Apache-2.0"
repository = "https://github.com/pyth-network/pyth-crosschain"

[dependencies]
pyth-lazer-publisher-sdk = "0.3.0"
pyth-lazer-protocol = "0.10.1"

anyhow = "1.0.98"
backoff = "0.4.0"
base64 = "0.22.1"
bincode = { version = "2.0.1", features = ["serde"] }
clap = { version = "4.5.32", features = ["derive"] }
config = "0.15.11"
derivative = "2.2.0"
ed25519-dalek = { version = "2.1.1", features = ["rand_core"] }
futures = "0.3.31"
futures-util = "0.3.31"
http = "1.3.1"
http-body-util = "0.1.3"
humantime-serde = "1.1.1"
hyper = { version = "1.6.0", features = ["http1", "server", "client"] }
hyper-util = { version = "0.1.10", features = ["tokio"] }
protobuf = "3.7.2"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
soketto = { version = "0.8.1", features = ["http"] }
solana-keypair = "2.2.1"
tokio = { version = "1.44.1", features = ["full"] }
tokio-tungstenite = { version = "0.26.2", features = ["native-tls", "url"] }
tokio-util = { version = "0.7.14", features = ["compat"] }
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "json"] }
url = { version = "2.5.4", features = ["serde"] }
reqwest = "0.12.22"

[dev-dependencies]
tempfile = "3.20.0"

[lints.rust]
unsafe_code = "deny"

[lints.clippy]
wildcard_dependencies = "deny"

collapsible_if = "allow"
collapsible_else_if = "allow"

allow_attributes_without_reason = "warn"

# Panics
expect_used = "warn"
fallible_impl_from = "warn"
indexing_slicing = "warn"
panic = "warn"
panic_in_result_fn = "warn"
string_slice = "warn"
todo = "warn"
unchecked_duration_subtraction = "warn"
unreachable = "warn"
unwrap_in_result = "warn"
unwrap_used = "warn"

# Correctness
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_sign_loss = "warn"
collection_is_never_read = "warn"
match_wild_err_arm = "warn"
path_buf_push_overwrite = "warn"
read_zero_byte_vec = "warn"
same_name_method = "warn"
suspicious_operation_groupings = "warn"
suspicious_xor_used_as_pow = "warn"
unused_self = "warn"
used_underscore_binding = "warn"
while_float = "warn"
