[package]
name = "helius"
version = "1.0.0"
rust-version = "1.85.1"
edition = "2021"
description = "An asynchronous Helius Rust SDK for building the future of Solana"
keywords = ["helius", "solana", "asynchronous-sdk", "das", "cryptocurrency"]
repository = "https://github.com/helius-labs/helius-rust-sdk"
documentation = "https://docs.rs/helius/latest/helius/"
license = "MIT"
authors = ["0xIchigo <0xIchigo@protonmail.com>"]
readme = "README.md"
homepage = "https://www.helius.dev/"

[dependencies]
base64 = "0.22.1"
bincode = "1.3.3" # TODO: Update when solana updates.
chrono = { version = "0.4.11", features = ["serde"] }
futures-util = "0.3.30"
once_cell = "1.21.3"
phf = { version = "0.13.1", features = ["macros"] }
rand = "0.9.2"
reqwest = { version = "0.12.23", features = ["json"], default-features = false }
semver = "1.0.23"
serde = "1.0.198"
serde-enum-str = "0.4.0"
serde_json = "1.0.116"
solana-account-decoder = "3.0.5"
solana-client = "3.0.5"
solana-commitment-config = "3.0.0"
solana-compute-budget-interface = "3.0.0"
solana-program = "3.0.0"
solana-rpc-client-api = "3.0.5"
solana-sdk = "3.0.0"
solana-stake-interface = "2.0.1"
solana-system-interface = "2.0.0"
solana-transaction-status = "3.0.5"
thiserror = "2.0.17"
tokio = { version = "1.37.0", features = ["macros", "rt-multi-thread", "net", "time"] }
tokio-stream = "0.1.15"
tokio-tungstenite = "0.28.0"
url = "2.5.0"

[dev-dependencies]
mockito = "1.4.0"

[features]
default = ["native-tls"]
native-tls = [
    "reqwest/native-tls",
    "tokio-tungstenite/native-tls"
]
rustls = [
    "reqwest/rustls-tls",
    "tokio-tungstenite/rustls-tls-webpki-roots"
]

# DAS API examples
[[example]]
name = "get_all_program_accounts"
path = "examples/das/get_all_program_accounts.rs"

[[example]]
name = "get_all_token_accounts_by_owner"
path = "examples/das/get_all_token_accounts_by_owner.rs"

[[example]]
name = "get_asset_batch"
path = "examples/das/get_asset_batch.rs"

[[example]]
name = "get_asset_proof_batch"
path = "examples/das/get_asset_proof_batch.rs"

# Enhanced transaction examples
[[example]]
name = "get_parse_transactions"
path = "examples/enhanced/get_parse_transactions.rs"

[[example]]
name = "get_parsed_transaction_history"
path = "examples/enhanced/get_parsed_transaction_history.rs"

[[example]]
name = "get_transactions_for_address"
path = "examples/enhanced/get_transactions_for_address.rs"

[[example]]
name = "get_transactions_for_address_with_filters"
path = "examples/enhanced/get_transactions_for_address_with_filters.rs"

# Core Helius client examples
[[example]]
name = "async_config_based_creation"
path = "examples/helius/async_config_based_creation.rs"

[[example]]
name = "get_program_accounts_v2"
path = "examples/helius/get_program_accounts_v2.rs"

[[example]]
name = "get_priority_fee_estimate"
path = "examples/helius/get_priority_fee_estimate.rs"

[[example]]
name = "get_token_accounts_by_owner_v2"
path = "examples/helius/get_token_accounts_by_owner_v2.rs"

# Solana RPC examples
[[example]]
name = "get_latest_blockhash"
path = "examples/solana/get_latest_blockhash.rs"

[[example]]
name = "get_latest_blockhash_async"
path = "examples/solana/get_latest_blockhash_async.rs"

# Smart transaction examples
[[example]]
name = "send_smart_transaction_with_seeds"
path = "examples/transactions/send_smart_transaction_with_seeds.rs"

# Wallet API examples
[[example]]
name = "get_batch_wallet_identity"
path = "examples/wallet/get_batch_wallet_identity.rs"

[[example]]
name = "get_wallet_balances"
path = "examples/wallet/get_wallet_balances.rs"

[[example]]
name = "get_wallet_funding_source"
path = "examples/wallet/get_wallet_funding_source.rs"

[[example]]
name = "get_wallet_history"
path = "examples/wallet/get_wallet_history.rs"

[[example]]
name = "get_wallet_identity"
path = "examples/wallet/get_wallet_identity.rs"

[[example]]
name = "get_wallet_transfers"
path = "examples/wallet/get_wallet_transfers.rs"

# Webhook examples
[[example]]
name = "append_address_to_webhook"
path = "examples/webhooks/append_address_to_webhook.rs"

[[example]]
name = "create_webhook"
path = "examples/webhooks/create_webhook.rs"

[[example]]
name = "delete_webhook"
path = "examples/webhooks/delete_webhook.rs"

[[example]]
name = "edit_webhook"
path = "examples/webhooks/edit_webhook.rs"

[[example]]
name = "get_all_webhooks"
path = "examples/webhooks/get_all_webhooks.rs"

[[example]]
name = "get_webhook_by_id"
path = "examples/webhooks/get_webhook_by_id.rs"

[[example]]
name = "remove_address_from_webhook"
path = "examples/webhooks/remove_address_from_webhook.rs"

# WebSocket examples
[[example]]
name = "enhanced_websocket_accounts"
path = "examples/websockets/enhanced_websocket_accounts.rs"

[[example]]
name = "enhanced_websocket_transactions"
path = "examples/websockets/enhanced_websocket_transactions.rs"

# ZK Compression examples
[[example]]
name = "get_compressed_account"
path = "examples/zk_compression/get_compressed_account.rs"

[[example]]
name = "get_compressed_token_balances"
path = "examples/zk_compression/get_compressed_token_balances.rs"

[[example]]
name = "get_validity_proof"
path = "examples/zk_compression/get_validity_proof.rs"
