[package]
name = "quicknode-sdk"
version = "0.8.1"
edition.workspace = true
license.workspace = true
description = "Core library for quicknode sdk"
repository = "https://github.com/quicknode/sdk"
readme = "README.md"
keywords = ["quicknode", "blockchain", "web3", "sdk"]
categories = ["api-bindings", "web-programming"]
[lints]
workspace = true
[features]
python = ["pyo3", "pyo3-async-runtimes", "pyo3-stub-gen"]
node = ["napi", "napi-derive"]
ruby = ["magnus"]
rust = ["bon"]
extension-module = ["pyo3/extension-module"]
payments = ["dep:k256", "dep:sha3", "dep:hex", "dep:base64", "dep:rand"]
payments-svm = ["payments", "dep:ed25519-dalek", "dep:bs58", "dep:sha2"]
payments-tempo = ["payments", "dep:tempo-primitives", "dep:alloy-primitives", "dep:alloy-consensus", "dep:alloy-rlp"]
[dependencies]
thiserror = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
reqwest = { version = "0.13.2", default-features = false, features = ["json", "query", "rustls", "http2"] }
pyo3 = { workspace = true, optional = true, features = ["experimental-async"] }
pyo3-async-runtimes = { workspace = true, optional = true, features = ["tokio-runtime"] }
napi = { workspace = true, optional = true, features = ["async", "tokio_rt"] }
napi-derive = { workspace = true, optional = true }
pyo3-stub-gen = { workspace = true, optional = true }
magnus = { workspace = true, optional = true }
bon = { version = "3.9", optional = true }
config = "0.15"
url = "2.5.8"
secrecy = "0.8"
tokio = { version = "1", default-features = false, features = ["sync"] }
k256 = { version = "0.14", optional = true }
sha3 = { version = "0.10", optional = true }
hex = { version = "0.4", optional = true }
rand = { version = "0.8", optional = true }
base64 = { version = "0.22", optional = true, features = ["alloc"] }
ed25519-dalek = { version = "2", optional = true }
bs58 = { version = "0.5", optional = true }
sha2 = { version = "0.10", optional = true }
tempo-primitives = { version = "1.8.1", optional = true, default-features = false }
alloy-primitives = { version = "1.6", optional = true }
alloy-consensus = { version = "2.1", optional = true }
alloy-rlp = { version = "0.3", optional = true }
[[example]]
name = "admin"
required-features = ["rust"]
[[example]]
name = "admin_e2e"
required-features = ["rust"]
[[example]]
name = "streams"
required-features = ["rust"]
[[example]]
name = "streams_e2e"
required-features = ["rust"]
[[example]]
name = "webhooks_e2e"
required-features = ["rust"]
[[example]]
name = "rpc"
required-features = ["rust"]
[[example]]
name = "rpc_payment"
required-features = ["rust", "payments", "payments-svm", "payments-tempo"]
[dev-dependencies]
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"] }
wiremock = "0.6"