fedimint-core 0.3.1

fedimint-core provides common code used by both client and server.
[package]
name = "fedimint-core"
version = "0.3.1"
authors = ["The Fedimint Developers"]
edition = "2021"
description = "fedimint-core provides common code used by both client and server."
license = "MIT"
readme = "../README.md"
repository = "https://github.com/fedimint/fedimint"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
name = "fedimint_core"
path = "src/lib.rs"

[dependencies]
async-recursion = "1.0.5"
anyhow = "1.0.81"
async-trait = "0.1.77"
futures = "0.3.30"
futures-util = { workspace = true }
backtrace = "0.3.69"
bincode = "1.3.3"
bech32 = "0.9.1"
itertools = "0.12.1"
jsonrpsee-types = { version = "0.22.2" }
jsonrpsee-core = { version = "0.22.2", features = [ "client" ] }
lru = "0.12.3"
serde = { version = "1.0.197", features = [ "derive" ] }
serde_json = "1.0.114"
strum = "0.26"
strum_macros = "0.26"
hex = { version = "0.4.3", features = [ "serde"] }
sha3 = "0.10.8"
tbs = { package = "fedimint-tbs", version = "=0.3.1", path = "../crypto/tbs" }
tokio = { version = "1.36.0", features = ["sync", "io-util"] }
thiserror = "1.0.58"
tracing ="0.1.40"
threshold_crypto = { workspace = true }
url = { version = "2.5.0", features = ["serde"] }
bitcoin = { version = "0.29.2", features = [ "rand", "serde" ] }
bitcoin30 = { package = "bitcoin", version = "0.30.2" }
bitcoin_hashes = { version = "0.11", features = ["serde"] }
erased-serde = "0.4"
lightning = "0.0.118"
lightning-invoice = "0.26.0"
fedimint-derive = { version = "=0.3.1", path = "../fedimint-derive" }
fedimint-logging = { version = "=0.3.1", path = "../fedimint-logging" }
rand = "0.8.5"
miniscript = { version = "10.0.0", features = [ "compiler", "serde" ] }
secp256k1-zkp = { version = "0.7.0", features = [ "use-serde", "bitcoin_hashes", "global-context" ] }
macro_rules_attribute = "0.2.0"
bitvec = "1.0.1"
parity-scale-codec = { version = "3.6.9", features = ["derive"] }
imbl = "2.0.3"
backon = "=0.4.3" # don't upgrade unless really needed

[target.'cfg(not(target_family = "wasm"))'.dependencies]
jsonrpsee-ws-client = { version = "0.22.2", features = ["webpki-tls"], default-features = false }
tokio = { version = "1.36.0", features = ["full", "tracing"] }
tokio-rustls = "0.23.4"

[target.'cfg(target_family = "wasm")'.dependencies]
jsonrpsee-wasm-client = { version = "0.22.2", default-features = false }
async-lock = "3.3"
# getrandom is transitive dependency of rand
# on wasm, we need to enable the js backend
# see https://docs.rs/getrandom/latest/getrandom/#indirect-dependencies and https://docs.rs/getrandom/latest/getrandom/#webassembly-support
getrandom = { version = "0.2.12", features = [ "js" ] }
gloo-timers = { version = "0.3.0", features = ["futures"] }
wasm-bindgen-futures = "0.4.42"
js-sys = "0.3.69"

[dev-dependencies]
test-log = { version = "0.2", features = [ "trace" ], default-features = false }
once_cell = "1.19.0"
tracing-subscriber = { version = "0.3.18", features = [ "env-filter" ] }