Files
cdk/crates/cdk-sqlite/Cargo.toml
Cesar Rodas abdde307c6 Fix race conditions with proof state updates.
Add a strict set of updates to prevent incorrect state changes and correct
usage. Supporting the transaction at the trait level prevented some cases, but
having a strict set of state change flows is better.

This bug was found while developing the signatory. The keys are read from
memory, triggering race conditions at the database, and some `Pending` states
are selected (instead of just selecting `Unspent`).

This PR also introduces a set of generic database tests to be executed for all
database implementations, this test suite will make sure writing and
maintaining new database drivers
2025-04-19 18:15:42 -03:00

39 lines
1.1 KiB
TOML

[package]
name = "cdk-sqlite"
version.workspace = true
edition.workspace = true
authors = ["CDK Developers"]
description = "SQLite storage backend for CDK"
license.workspace = true
homepage = "https://github.com/cashubtc/cdk"
repository = "https://github.com/cashubtc/cdk.git"
rust-version.workspace = true # MSRV
readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["mint", "wallet", "auth"]
mint = ["cdk-common/mint"]
wallet = ["cdk-common/wallet"]
auth = ["cdk-common/auth"]
sqlcipher = ["libsqlite3-sys"]
[dependencies]
async-trait.workspace = true
cdk-common = { workspace = true, features = ["test"] }
bitcoin.workspace = true
sqlx = { version = "0.7.4", default-features = false, features = [
"runtime-tokio-rustls",
"sqlite",
"macros",
"migrate",
"uuid",
] }
libsqlite3-sys = { version = "0.27.0", features = ["bundled-sqlcipher"], optional = true }
thiserror.workspace = true
tokio.workspace = true
tracing.workspace = true
serde_json.workspace = true
lightning-invoice.workspace = true
uuid.workspace = true