taler-rust

GNU Taler code in Rust. Largely core banking integrations.
Log | Files | Refs | Submodules | README | LICENSE

commit 0da9e9bda792358586a8367ac2a5166dc635e3eb
parent 40f293ffd868f5c004e91ea8a358427076a52f9c
Author: Antoine A <>
Date:   Tue, 28 Jan 2025 09:22:09 +0100

common: update dependencies and clean code

Diffstat:
MCargo.lock | 222++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
MCargo.toml | 6++++--
Madapter/taler-magnet-bank-adapter/Cargo.toml | 4++--
Madapter/taler-magnet-bank-adapter/src/dev.rs | 3++-
Madapter/taler-magnet-bank-adapter/src/worker.rs | 9+++++----
Mcommon/taler-api/benches/subject.rs | 2+-
Mcommon/taler-common/Cargo.toml | 4++--
Mcommon/taler-common/src/cli.rs | 4++--
Mcommon/taler-common/src/config.rs | 2+-
9 files changed, 155 insertions(+), 101 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -150,7 +150,7 @@ dependencies = [ "bytes", "form_urlencoded", "futures-util", - "http 1.2.0", + "http", "http-body", "http-body-util", "hyper", @@ -182,7 +182,7 @@ checksum = "df1362f362fd16024ae199c1970ce98f9661bf5ef94b9808fee734bc3698b733" dependencies = [ "bytes", "futures-util", - "http 1.2.0", + "http", "http-body", "http-body-util", "mime", @@ -196,9 +196,9 @@ dependencies = [ [[package]] name = "axum-test" -version = "17.1.0" +version = "17.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375ec4f6db373ce6d696839249203c57049aefe1213cfa77bb2e12e10ed43d08" +checksum = "317c1f4ecc1e68e0ad5decb78478421055c963ce215e736ed97463fa609cd196" dependencies = [ "anyhow", "assert-json-diff", @@ -207,7 +207,7 @@ dependencies = [ "bytes", "bytesize", "cookie", - "http 1.2.0", + "http", "http-body-util", "hyper", "hyper-util", @@ -446,9 +446,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -551,7 +551,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -755,7 +755,7 @@ dependencies = [ "group", "pem-rfc7468", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -811,7 +811,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -937,7 +937,19 @@ checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -959,7 +971,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1052,17 +1064,6 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" @@ -1079,7 +1080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.2.0", + "http", ] [[package]] @@ -1090,7 +1091,7 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.2.0", + "http", "http-body", "pin-project-lite", ] @@ -1116,7 +1117,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", + "http", "http-body", "httparse", "httpdate", @@ -1152,7 +1153,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", + "http", "http-body", "hyper", "pin-project-lite", @@ -1392,9 +1393,9 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jiff" -version = "0.1.25" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb73dbeee753ae9411475ddd8861765fa7f25fe1eebf180c24e1bbabef3fbdcd" +checksum = "c607c728e28764fecde611a2764a3a5db19ae21dcec46f292244f5cc5c085a81" dependencies = [ "log", "portable-atomic", @@ -1495,7 +1496,7 @@ dependencies = [ "p256", "passterm", "percent-encoding", - "rand_core", + "rand_core 0.6.4", "reqwest", "serde", "serde_json", @@ -1507,7 +1508,7 @@ dependencies = [ "taler-api", "taler-common", "taler-test-utils", - "thiserror 2.0.11", + "thiserror", "tokio", "tracing", "tracing-subscriber", @@ -1576,15 +1577,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -1645,9 +1646,9 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "f5e534d133a060a3c19daec1eb3e98ec6f4685978834f2dbadfe2ec215bab64e" dependencies = [ "bitflags", "cfg-if", @@ -1841,7 +1842,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -1888,8 +1889,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.0", + "zerocopy 0.8.14", ] [[package]] @@ -1899,7 +1911,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.0", ] [[package]] @@ -1908,7 +1930,17 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +dependencies = [ + "getrandom 0.3.1", + "zerocopy 0.8.14", ] [[package]] @@ -1994,7 +2026,7 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 1.2.0", + "http", "http-body", "http-body-util", "hyper", @@ -2026,12 +2058,12 @@ dependencies = [ [[package]] name = "reserve-port" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9838134a2bfaa8e1f40738fcc972ac799de6e0e06b5157acb95fc2b05a0ea283" +checksum = "359fc315ed556eb0e42ce74e76f4b1cd807b50fa6307f3de4e51f92dbe86e2d5" dependencies = [ "lazy_static", - "thiserror 1.0.69", + "thiserror", ] [[package]] @@ -2046,18 +2078,18 @@ dependencies = [ [[package]] name = "rust-multipart-rfc7578_2" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b748410c0afdef2ebbe3685a6a862e2ee937127cdaae623336a459451c8d57" +checksum = "bc4bb9e7c9abe5fa5f30c2d8f8fefb9e0080a2c1e3c2e567318d2907054b35d3" dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.12", + "http", "mime", "mime_guess", - "rand", - "thiserror 1.0.69", + "rand 0.9.0", + "thiserror", ] [[package]] @@ -2099,9 +2131,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" [[package]] name = "rustversion" @@ -2111,9 +2143,9 @@ checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -2319,7 +2351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -2398,7 +2430,7 @@ dependencies = [ "serde_json", "sha2", "smallvec", - "thiserror 2.0.11", + "thiserror", "tokio", "tokio-stream", "tracing", @@ -2467,14 +2499,14 @@ dependencies = [ "md-5", "memchr", "once_cell", - "rand", + "rand 0.8.5", "serde", "serde_json", "sha2", "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.11", + "thiserror", "tracing", "whoami", ] @@ -2557,7 +2589,7 @@ dependencies = [ "sqlx", "taler-common", "taler-test-utils", - "thiserror 2.0.11", + "thiserror", "tokio", "tracing", "tracing-subscriber", @@ -2576,7 +2608,7 @@ dependencies = [ "glob", "indexmap 2.7.1", "jiff", - "rand", + "rand 0.9.0", "serde", "serde_json", "serde_path_to_error", @@ -2584,7 +2616,7 @@ dependencies = [ "serde_with", "sqlx", "tempfile", - "thiserror 2.0.11", + "thiserror", "tokio", "tracing", "tracing-subscriber", @@ -2616,7 +2648,7 @@ checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", "fastrand", - "getrandom", + "getrandom 0.2.15", "once_cell", "rustix", "windows-sys 0.59.0", @@ -2624,31 +2656,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.11", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "thiserror-impl", ] [[package]] @@ -2924,9 +2936,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-normalization" @@ -3023,6 +3035,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] name = "wasite" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3338,6 +3359,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + +[[package]] name = "write16" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3386,7 +3416,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a367f292d93d4eab890745e75a778da40909cab4d6ff8173693812f79c4a2468" +dependencies = [ + "zerocopy-derive 0.8.14", ] [[package]] @@ -3401,6 +3440,17 @@ dependencies = [ ] [[package]] +name = "zerocopy-derive" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3931cb58c62c13adec22e38686b559c86a30565e16ad6e8510a337cedc611e1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] name = "zerofrom" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/Cargo.toml b/Cargo.toml @@ -15,6 +15,7 @@ thiserror = "2.0" serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } serde_path_to_error = "0.1" +serde_urlencoded = "0.7" tokio = { version = "1.42", features = ["macros"] } axum = "0.8" sqlx = { version = "0.8", default-features = false } @@ -29,4 +30,5 @@ tempfile = "3.15" taler-common = { path = "common/taler-common" } taler-api = { path = "common/taler-api" } taler-test-utils = { path = "common/taler-test-utils" } -anyhow = "1" -\ No newline at end of file +anyhow = "1" +rand = "0.9" +\ No newline at end of file diff --git a/adapter/taler-magnet-bank-adapter/Cargo.toml b/adapter/taler-magnet-bank-adapter/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -rand_core = { version = "*" } +rand_core = { version = "0.6.4" } reqwest = { version = "0.12", default-features = false, features = [ "json", "native-tls", @@ -16,7 +16,6 @@ spki = "0.7.3" base64 = "0.22" form_urlencoded = "1.2" percent-encoding = "2.3" -serde_urlencoded = "0.7.1" passterm = "2.0" sqlx = { workspace = true, features = [ "postgres", @@ -30,6 +29,7 @@ taler-api.workspace = true clap.workspace = true serde.workspace = true serde_path_to_error.workspace = true +serde_urlencoded.workspace = true thiserror.workspace = true tracing.workspace = true tracing-subscriber.workspace = true diff --git a/adapter/taler-magnet-bank-adapter/src/dev.rs b/adapter/taler-magnet-bank-adapter/src/dev.rs @@ -129,7 +129,8 @@ pub async fn dev(cfg: Config, cmd: DevCmd) -> anyhow::Result<()> { &full.receiver_name, &creditor.number, ) - .await?.tx; + .await? + .tx; client .sign_tx( &keys.signing_key, diff --git a/adapter/taler-magnet-bank-adapter/src/worker.rs b/adapter/taler-magnet-bank-adapter/src/worker.rs @@ -70,7 +70,7 @@ impl Worker<'_> { _reason: &str, ) -> Result<(), WorkerError> { // TODO bounce in db - let res = db::register_tx_in(db, &tx_in, &None).await?; + let res = db::register_tx_in(db, tx_in, &None).await?; match res { AddIncomingResult::Success(registered_tx) => { if registered_tx.new { @@ -155,7 +155,7 @@ impl Worker<'_> { } /// Create and sign a forint transfer - pub async fn create_tx<'a>(&mut self, tx: &Initiated, now: &Zoned) -> WorkerResult { + pub async fn create_tx(&mut self, tx: &Initiated, now: &Zoned) -> WorkerResult { debug!("create tx {tx}"); assert_eq!(tx.amount.frac, 0); let date = now.date(); @@ -170,7 +170,8 @@ impl Worker<'_> { &tx.creditor.name, &tx.creditor.number, ) - .await?.tx; + .await? + .tx; debug!("created tx {}", info.code); // TODO handle API errors gracefully fail_point("submit-success"); @@ -196,7 +197,7 @@ impl Worker<'_> { // Sign initiated transaction, on failure we will retry self.client .sign_tx( - &self.key, + self.key, self.account_number, tx_code, amount, diff --git a/common/taler-api/benches/subject.rs b/common/taler-api/benches/subject.rs @@ -68,7 +68,7 @@ fn parser(c: &mut Criterion) { c.bench_function(name, |b| { b.iter(|| { for case in cases { - parse_incoming_unstructured(black_box(case.as_ref())); + parse_incoming_unstructured(black_box(case.as_ref())).ok(); } }) }); diff --git a/common/taler-common/Cargo.toml b/common/taler-common/Cargo.toml @@ -5,15 +5,15 @@ edition = "2021" [dependencies] serde_with = "3.11.0" -rand = "0.8" -serde_urlencoded = "0.7" glob = "0.3" indexmap = "2.7" +rand.workspace = true tempfile.workspace = true jiff.workspace = true serde.workspace = true serde_json = { workspace = true, features = ["raw_value"] } serde_path_to_error.workspace = true +serde_urlencoded.workspace = true url.workspace = true thiserror.workspace = true fastrand.workspace = true diff --git a/common/taler-common/src/cli.rs b/common/taler-common/src/cli.rs @@ -41,14 +41,14 @@ impl ConfigCmd { option, filename, } => { - let sect = cfg.section(&section); + let sect = cfg.section(section); if *filename { sect.path(option).require()? } else { sect.str(option).require()? } } - ConfigCmd::Pathsub { path_expr } => cfg.pathsub(&path_expr, 0)?, + ConfigCmd::Pathsub { path_expr } => cfg.pathsub(path_expr, 0)?, ConfigCmd::Dump => cfg.to_string(), }; println!("{}", out); diff --git a/common/taler-common/src/config.rs b/common/taler-common/src/config.rs @@ -584,7 +584,7 @@ impl Display for Config { for (key, value) in values { writeln!(f, "{key} = {value}")?; } - writeln!(f, "")?; + writeln!(f)?; } Ok(()) }