commit bf49299ca2a8adee645244758d5942f8223b984d
parent cdc2265b9af51fd51137a485c0abf96118e0fa05
Author: Antoine A <>
Date: Thu, 17 Sep 2026 18:19:37 +0200
common: sync taler-rust
Diffstat:
6 files changed, 77 insertions(+), 86 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
@@ -368,9 +368,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.4.5"
+version = "1.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80"
+checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -380,9 +380,9 @@ dependencies = [
[[package]]
name = "cfg-if"
-version = "1.0.4"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
[[package]]
name = "chacha20"
@@ -436,9 +436,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
+checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
dependencies = [
"clap_builder",
"clap_derive",
@@ -446,9 +446,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.6.6"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
+checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
dependencies = [
"anstream",
"anstyle",
@@ -458,21 +458,21 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.6.4"
+version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
+checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
name = "clap_lex"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
+checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486"
[[package]]
name = "cmake"
@@ -507,9 +507,9 @@ dependencies = [
[[package]]
name = "const-hex"
-version = "1.19.1"
+version = "1.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33e2a781ebdf4467d1428dc4593067825fb646f6871475098d8577421af73558"
+checksum = "0e59eef12462b0f9b0a3620219be5d639afd79fe39dff0a42c3997061f9298b4"
dependencies = [
"cfg-if",
"cpufeatures 0.2.17",
@@ -725,7 +725,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -736,7 +736,7 @@ checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785"
dependencies = [
"darling_core",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -790,7 +790,6 @@ version = "0.0.1"
dependencies = [
"anyhow",
"axum",
- "base64",
"bech32 0.12.0",
"bitcoin",
"clap",
@@ -895,7 +894,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -994,7 +993,7 @@ dependencies = [
[[package]]
name = "failure-injection"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#b2cc6de2b7551860d1c864df316c408df3708a14"
+source = "git+git://git.taler.net/taler-rust.git/#14d99474e131e33f86cbe1ead7ce68bd9f33c07a"
dependencies = [
"thiserror",
]
@@ -1538,9 +1537,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "jiff"
-version = "0.2.35"
+version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc"
+checksum = "0ab1baf72f08796de0260609515130699b890ac25f30e610ad894bc5856cafdb"
dependencies = [
"defmt",
"jiff-core",
@@ -1553,18 +1552,19 @@ dependencies = [
[[package]]
name = "jiff-core"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09"
+checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c"
dependencies = [
"defmt",
+ "log",
]
[[package]]
name = "jiff-static"
-version = "0.2.35"
+version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204"
+checksum = "378268a1116ad67ae6228701118ac9f491d78fda38a40a1f1a9e1348de6f7212"
dependencies = [
"jiff-core",
"proc-macro2",
@@ -1625,9 +1625,9 @@ dependencies = [
[[package]]
name = "libredox"
-version = "0.1.23"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d8f1ea3f21fd3405dcaf6c9b5c1630af9afc422d9073ea39c5f6d6c772e08ed"
+checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a"
dependencies = [
"bitflags 2.13.2",
"libc",
@@ -2021,7 +2021,7 @@ checksum = "01e34894696ff94f64a20c2c373a6440903e9c2789a303d68ec6e6f953f890e4"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -2299,9 +2299,9 @@ dependencies = [
[[package]]
name = "rustix"
-version = "1.1.4"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
+checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d"
dependencies = [
"bitflags 2.13.2",
"errno",
@@ -2312,9 +2312,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.44"
+version = "0.23.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6725596c3f2c3a0aef021139e145d4eafe314a6623e4680ca83852b2c67ab2ba"
+checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
dependencies = [
"aws-lc-rs",
"once_cell",
@@ -2426,7 +2426,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -2461,7 +2461,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -2495,7 +2495,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -2584,9 +2584,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
[[package]]
name = "smallvec"
-version = "1.16.0"
+version = "1.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f"
+checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891"
dependencies = [
"serde",
]
@@ -2892,9 +2892,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "3.0.5"
+version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"
+checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
dependencies = [
"proc-macro2",
"quote",
@@ -2909,19 +2909,19 @@ checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
[[package]]
name = "synstructure"
-version = "0.13.2"
+version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
+checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
]
[[package]]
name = "taler-api"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#b2cc6de2b7551860d1c864df316c408df3708a14"
+source = "git+git://git.taler.net/taler-rust.git/#14d99474e131e33f86cbe1ead7ce68bd9f33c07a"
dependencies = [
"aws-lc-rs",
"axum",
@@ -2950,12 +2950,12 @@ dependencies = [
[[package]]
name = "taler-build"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#b2cc6de2b7551860d1c864df316c408df3708a14"
+source = "git+git://git.taler.net/taler-rust.git/#14d99474e131e33f86cbe1ead7ce68bd9f33c07a"
[[package]]
name = "taler-common"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#b2cc6de2b7551860d1c864df316c408df3708a14"
+source = "git+git://git.taler.net/taler-rust.git/#14d99474e131e33f86cbe1ead7ce68bd9f33c07a"
dependencies = [
"anyhow",
"aws-lc-rs",
@@ -2985,17 +2985,17 @@ dependencies = [
[[package]]
name = "taler-macros"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#b2cc6de2b7551860d1c864df316c408df3708a14"
+source = "git+git://git.taler.net/taler-rust.git/#14d99474e131e33f86cbe1ead7ce68bd9f33c07a"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
name = "taler-test-utils"
version = "1.5.0"
-source = "git+git://git.taler.net/taler-rust.git/#b2cc6de2b7551860d1c864df316c408df3708a14"
+source = "git+git://git.taler.net/taler-rust.git/#14d99474e131e33f86cbe1ead7ce68bd9f33c07a"
dependencies = [
"aws-lc-rs",
"axum",
@@ -3050,7 +3050,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -3114,18 +3114,9 @@ dependencies = [
[[package]]
name = "tinyvec"
-version = "1.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf0ded5c4e56918d8f8a339e1bb67d038d3bc6d144ac407904015ba2e4cde9b"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
+version = "1.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
[[package]]
name = "tokio"
@@ -3151,7 +3142,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
@@ -3292,9 +3283,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
[[package]]
name = "unicode-ident"
-version = "1.0.24"
+version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
[[package]]
name = "unicode-normalization"
@@ -3473,7 +3464,7 @@ dependencies = [
"bumpalo",
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
"wasm-bindgen-shared",
]
@@ -3802,13 +3793,13 @@ dependencies = [
[[package]]
name = "yoke-derive"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
+checksum = "33811428bee40dbceb6d545e95754741d17a6aef9a4849f0fd62e2ba4f412a78"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
"synstructure",
]
@@ -3843,13 +3834,13 @@ dependencies = [
[[package]]
name = "zerofrom-derive"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
+checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.119",
+ "syn 3.0.6",
"synstructure",
]
@@ -3889,14 +3880,14 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
dependencies = [
"proc-macro2",
"quote",
- "syn 3.0.5",
+ "syn 3.0.6",
]
[[package]]
name = "zlib-rs"
-version = "0.6.7"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12"
+checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112"
[[package]]
name = "zmij"
diff --git a/Cargo.toml b/Cargo.toml
@@ -38,7 +38,6 @@ clap = { version = "4.5", features = ["derive"] }
anyhow = "1"
tracing = "0.1"
criterion = "0.8.2"
-base64 = "0.22.1"
rand = { version = "0.10.1" }
tracing-subscriber = "0.3"
jiff = { version = "0.2", default-features = false, features = ["perf-inline", "std"] }
diff --git a/depolymerizer-bitcoin/Cargo.toml b/depolymerizer-bitcoin/Cargo.toml
@@ -27,7 +27,6 @@ sqlx.workspace = true
tokio.workspace = true
tracing.workspace = true
axum.workspace = true
-base64.workspace = true
rand.workspace = true
url.workspace = true
jiff.workspace = true
diff --git a/depolymerizer-bitcoin/src/config.rs b/depolymerizer-bitcoin/src/config.rs
@@ -23,7 +23,7 @@ use taler_api::{
config::{ApiCfg, DbCfg},
};
use taler_common::{
- config::{Config, ValueErr},
+ config::{CfgErr, Config},
map_config,
types::amount::Currency,
};
@@ -33,11 +33,11 @@ use crate::{
taler_utils::taler_to_btc,
};
-pub fn parse_db_cfg(cfg: &Config) -> Result<DbCfg, ValueErr> {
+pub fn parse_db_cfg(cfg: &Config) -> Result<DbCfg, CfgErr> {
DbCfg::parse(cfg.section("depolymerizer-bitcoindb-postgres"))
}
-pub fn parse_account_payto(cfg: &Config) -> Result<FullBtcPayto, ValueErr> {
+pub fn parse_account_payto(cfg: &Config) -> Result<FullBtcPayto, CfgErr> {
let sect = cfg.section("depolymerizer-bitcoin");
let wallet: BtcWallet = sect.parse("bitcoin wallet address", "WALLET").require()?;
let name = sect.cstr("NAME").require()?;
@@ -62,7 +62,7 @@ pub struct ServeCfg {
}
impl ServeCfg {
- pub fn parse(cfg: &Config) -> Result<Self, ValueErr> {
+ pub fn parse(cfg: &Config) -> Result<Self, CfgErr> {
let payto = parse_account_payto(cfg)?;
let s = cfg.section("depolymerizer-bitcoin-httpd");
@@ -103,7 +103,7 @@ pub struct WorkerCfg {
}
impl WorkerCfg {
- pub fn parse(cfg: &Config) -> Result<Self, ValueErr> {
+ pub fn parse(cfg: &Config) -> Result<Self, CfgErr> {
let currency: Currency = cfg
.section("depolymerizer-bitcoin")
.parse("currency", "CURRENCY")
@@ -141,7 +141,7 @@ pub struct WalletCfg {
}
impl WalletCfg {
- pub fn parse(cfg: &Config) -> Result<Self, ValueErr> {
+ pub fn parse(cfg: &Config) -> Result<Self, CfgErr> {
let sect = cfg.section("depolymerizer-bitcoin-worker");
let password = sect.str("PASSWORD").opt()?;
let name = sect.str("WALLET_NAME").require()?;
@@ -157,7 +157,7 @@ pub struct RpcCfg {
}
impl RpcCfg {
- pub fn parse(cfg: &Config) -> Result<Self, ValueErr> {
+ pub fn parse(cfg: &Config) -> Result<Self, CfgErr> {
let sect = cfg.section("depolymerizer-bitcoin-worker");
let addr = sect.parse("RPC server address", "RPC_BIND").require()?;
diff --git a/depolymerizer-bitcoin/src/db.rs b/depolymerizer-bitcoin/src/db.rs
@@ -213,7 +213,9 @@ pub async fn transfer_page(
",
);
if let Some(statuses) = statuses {
- sql.push(" status = ANY (").push_bind(statuses).push(") AND ");
+ sql.push(" status = ANY (")
+ .push_bind(statuses)
+ .push(") AND ");
}
sql
},
diff --git a/depolymerizer-bitcoin/src/rpc.rs b/depolymerizer-bitcoin/src/rpc.rs
@@ -34,10 +34,10 @@ use std::{
time::Duration,
};
-use base64::{Engine, prelude::BASE64_STANDARD};
use bitcoin::{Address, Amount, BlockHash, SignedAmount, Txid, address::NetworkUnchecked};
use compact_str::{CompactString, format_compact};
use serde_json::{Value, json};
+use taler_common::encoding::base64;
use tokio::{
io::{self, AsyncReadExt, AsyncWriteExt as _},
net::TcpStream,
@@ -209,7 +209,7 @@ impl Rpc {
Ok(Self {
id: 0,
- cookie: format_compact!("Basic {}", BASE64_STANDARD.encode(&token)),
+ cookie: format_compact!("Basic {}", base64::fmt(&token)),
socket: JsonSocket {
sock,
buf: Vec::with_capacity(16 * 1024),