[package]
name = "switchboard-solana"
version = "0.27.44"
edition = "2021"
resolver = "2"
description = "A Rust library to interact with Switchboard accounts."
readme = "README.md"
keywords = ["switchboard", "oracle", "solana"]
homepage = "https://switchboard.xyz"
repository = "https://github.com/switchboard-xyz/solana-sdk/tree/main/rust/switchboard-solana"
license = "MIT"

[lib]
crate-type = ["cdylib", "lib"]
name = "switchboard_solana"
doctest = false

[features]
default = ["cpi"]
no-entrypoint = []
cpi = ["no-entrypoint"]
secrets = ["rand", "rsa", "reqwest"]
macros = ["switchboard-solana-macros"]
all = ["secrets", "macros"]

[dependencies]
anchor-spl = "0.27.0"
solana-program = "=1.14.16"
solana-address-lookup-table-program = "=1.14.16"
rust_decimal = "^1"
bytemuck = "^1"
superslice = "1"
log = { version = "0.4", features = ["kv_unstable", "kv_unstable_std"] }
kv-log-macro = "1.0"
switchboard-solana-macros = { version = "0.2.0", path = "../switchboard-solana-macros", optional = true }

[target.'cfg(target_os = "solana")'.dependencies]
switchboard-common = { version = "0.10.1", path = "../switchboard-common" }
anchor-lang = { version = "0.27.0" }

[target.'cfg(not(target_os = "solana"))'.dependencies]
switchboard-common = { version = "0.10.1", features = [
    "client",
], path = "../switchboard-common" }
anchor-client = { version = "0.27.0" }
solana-client = "=1.14.16"
solana-account-decoder = "=1.14.16"
base64 = "0.21.4"
bincode = { version = "^1" }
sgx-quote = { version = "0.1.0" }
cron = { version = "0.12.0" }
chrono = { version = "0.4.25" }
futures = "0.3"
hex = "0.4.3"
tokio = "1"
url = "2.4"
serde = { version = "^1", features = ["derive"] }
serde_json = { version = "^1" }
sha2 = "0.10.6"
dashmap = "5.5.3"

# Secrets Dependencies
rsa = { version = "0.5.0", optional = true }
reqwest = { version = "0.11", features = ["json"], optional = true }
rand = { version = "0.8.5", optional = true }

[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "doc_cfg"]

[dev-dependencies]
json_env_logger = "0.1"
tokio = { version = "1", features = ["full"] }
pretty_assertions = "1.4.0"
