fedimint-core 0.5.0

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"

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

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

[dependencies]
anyhow = { workspace = true }
async-recursion = "1.1.1"
async-trait = { workspace = true }
backon = { version = "1.2.0", default-features = false }
backtrace = "0.3.74"
base64-url = { workspace = true }
bech32 = "0.11.0"
bincode = { workspace = true }
bitcoin = { workspace = true }
bitcoin-io = "0.1.2"
bitcoin-units = "0.1.2"
bitvec = "1.0.1"
bls12_381 = { workspace = true }
erased-serde = { workspace = true }
fedimint-derive = { workspace = true }
fedimint-logging = { workspace = true }
futures = { workspace = true }
hex = { workspace = true, features = ["serde"] }
imbl = "3.0.0"
itertools = { workspace = true }
jsonrpsee-core = { version = "0.24.7", features = ["client"] }
lightning = { workspace = true }
lightning-invoice = { workspace = true, features = ["serde"] }
lightning-types = "0.1.0"
macro_rules_attribute = "0.2.0"
miniscript = { workspace = true, features = ["serde"] }
parity-scale-codec = { version = "3.6.12", features = ["derive"] }
rand = { workspace = true }
secp256k1 = { workspace = true, features = ["global-context", "rand-std"] }
serde = { workspace = true }
serde_json = { workspace = true }
serdect = { workspace = true }
strum = { workspace = true }
strum_macros = { workspace = true }
thiserror = { workspace = true }
threshold_crypto = { workspace = true }
tracing = { workspace = true }
url = { workspace = true, features = ["serde"] }

[dev-dependencies]
test-log = { workspace = true }
tokio-test = "0.4.4"

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

[target.'cfg(target_family = "wasm")'.dependencies]
async-lock = "3.4"
tokio = { workspace = true, features = ["io-util"] }
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"