fedimint-core 0.4.3

fedimint-core provides common code used by both client and server.
Documentation
[package]
name = "fedimint-core"
version = { workspace = true }
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.1.1"
anyhow = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }
backtrace = "0.3.73"
bincode = { workspace = true }
bech32 = "0.11.0"
base64-url = "3.0.0"
bls12_381 = { workspace = true }
serdect = { workspace = true }
itertools = { workspace = true }
jsonrpsee-core = { version = "0.24.0", features = ["client"] }
serde = { workspace = true }
serde_json = { workspace = true }
strum = { workspace = true }
strum_macros = { workspace = true }
hex = { version = "0.4.3", features = ["serde"] }
thiserror = { workspace = true }
tracing = { workspace = true }
threshold_crypto = { workspace = true }
url = { version = "2.5.2", features = ["serde"] }
bitcoin29 = { package = "bitcoin", version = "0.29.2", features = ["rand", "serde"] }
bitcoin = { workspace = true }
bitcoin_hashes = { workspace = true }
erased-serde = { workspace = true }
lightning = { workspace = true }
lightning-invoice = { workspace = true }
fedimint-derive = { version = "=0.4.3", path = "../fedimint-derive" }
fedimint-logging = { workspace = true }
rand = { workspace = true }
miniscript = { version = "10.0.0", features = ["compiler", "serde"] }
secp256k1-zkp = { version = "0.9.2", features = ["serde", "global-context"] }
secp256k1 = { version = "0.27.0", features = ["global-context", "rand-std"] }
macro_rules_attribute = "0.2.0"
bitvec = "1.0.1"
parity-scale-codec = { version = "3.6.12", features = ["derive"] }
imbl = "3.0.0"
backon = "=0.4.4" # don't upgrade unless really needed

[target.'cfg(not(target_family = "wasm"))'.dependencies]
tokio = { version = "1.38.0", features = ["full", "tracing"] }
tokio-rustls = { workspace = true }

[target.'cfg(target_family = "wasm")'.dependencies]
jsonrpsee-wasm-client = "0.24.0"
async-lock = "3.4"
tokio = "1.38.0"
futures-util = { workspace = true }
# 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.15", 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 = { workspace = true }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
tokio-test = "0.4.4"

[package.metadata.cargo-udeps.ignore]
development = ["tokio-test"]