[package]
name = "defituna-client"
version = "2.0.13"
homepage = "https://defituna.com"
description = "Rust client to interact with DefiTuna's on-chain program."
license-file = "LICENSE"
repository = "https://github.com/DefiTuna/tuna-sdk"
keywords = ["solana", "crypto", "defi", "dex", "amm"]
edition = "2021"
include = ["src/*"]

[lib]
crate-type = ["cdylib", "lib"]

[features]
default = ["fetch"]
anchor = ["dep:anchor-lang"]
anchor-idl-build = []
serde = ["dep:serde", "dep:serde_with"]
fetch = []
solana-v1 = []

[dependencies]
# Solana
solana-account = { version = "^2.2"}
solana-client = { version = "^2.2"}
solana-account-decoder = { version = "^2.2"}
solana-decode-error = { version = "^2.2"}
solana-program-entrypoint = { version = "^2.2"}
solana-program-error = { version = "^2.2"}
solana-msg = { version = "^2.2"}
solana-keypair = { version = "^2.2" }
solana-signer = { version = "^2.2" }
solana-instruction = { version = "^2.2" }
solana-system-interface = { version = "^1.0" }
solana-cpi = { version = "^2.2" }
solana-account-info = { version = "^2.2"}
solana-pubkey = { version = "^2.2" }
solana-sdk-ids = { version = "^2.2" }
solana-sysvar = { version = "^2.2" }

# Spl token
spl-token = { version = "6.0" }
spl-token-2022 = { version = "6.0" }
spl-associated-token-account = { version = "6.0" }
spl-memo = { version = "6.0.0" }

# Anchor
anchor-lang = { version = ">=0.29, <0.32", optional = true }

# Orca
orca_whirlpools_client = { version = "4.0.0", features = ["fetch"] }
orca_whirlpools_core = "2.0"
orca_whirlpools = "4.0.0"

# Fusion
fusionamm-core = { version = "1.0" }
fusionamm-client = { version = "1.0", features = ["fetch"] }
fusionamm-sdk = { version = "1.0" }

# Other dependencies
bincode = { version = "^1.3" }
borsh = { version = "0.10" }
fixed = { version = "1.29.0" }
num-derive = { version = "0.4" }
num-traits = { version = "0.2" }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_with = { version = "3.12", optional = true }
thiserror = { version = "2.0" }
uint = { version = "0.9", default-features = false }
anyhow = "1.0.98"

[dev-dependencies]
# Solana
solana-keypair = { version = "^2.2" }
solana-signer = { version = "^2.2" }
solana-program-test = { version = "^2.2" }
solana-version = { version = "^2.2" }
solana-message = { version = "^2.2" }
solana-transaction = { version = "^2.2" }
solana-commitment-config = { version = "^2.2" }
solana-epoch-info = { version = "^2.2" }
solana-signature = { version = "^2.2" }

# Other
bs58 = { version = "^0.5" }
serial_test = { version = "^3.2" }
tokio = { version = "^1.45", features = ["sync"] }
serde_json = { version = "^1.0" }
bincode = { version = "^1.3" }
base64 = { version = "^0.22" }
async-trait = { version = "^0.1" }
