depolymerization

wire gateway for Bitcoin/Ethereum
Log | Files | Refs | Submodules | README | LICENSE

commit bf49299ca2a8adee645244758d5942f8223b984d
parent cdc2265b9af51fd51137a485c0abf96118e0fa05
Author: Antoine A <>
Date:   Thu, 17 Sep 2026 18:19:37 +0200

common: sync taler-rust

Diffstat:
MCargo.lock | 139+++++++++++++++++++++++++++++++++++++------------------------------------------
MCargo.toml | 1-
Mdepolymerizer-bitcoin/Cargo.toml | 1-
Mdepolymerizer-bitcoin/src/config.rs | 14+++++++-------
Mdepolymerizer-bitcoin/src/db.rs | 4+++-
Mdepolymerizer-bitcoin/src/rpc.rs | 4++--
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),