depolymerization

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

commit 574f10c0f5032cf2cd0b607271a0e1e4d5a1335e
parent e83e3ac4f0994c4e052b2578ffa6d04b11d4c722
Author: Antoine A <>
Date:   Wed,  9 Jul 2025 14:10:18 +0200

common: update common libs

Diffstat:
MCargo.lock | 3+++
MCargo.toml | 9++++-----
Mcommon/src/lib.rs | 6------
Mdepolymerizer-bitcoin/src/api.rs | 15+++++----------
Mdepolymerizer-bitcoin/src/loops/watcher.rs | 7+++----
Mdepolymerizer-bitcoin/src/loops/worker.rs | 12++++--------
6 files changed, 19 insertions(+), 33 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -2661,6 +2661,7 @@ dependencies = [ [[package]] name = "taler-api" version = "0.0.0" +source = "git+https://git.taler.net/taler-rust.git/#85f6f177780ebc84dcb96dda59c3f9c20ed5ede4" dependencies = [ "axum", "base64", @@ -2683,6 +2684,7 @@ dependencies = [ [[package]] name = "taler-common" version = "0.0.0" +source = "git+https://git.taler.net/taler-rust.git/#85f6f177780ebc84dcb96dda59c3f9c20ed5ede4" dependencies = [ "anyhow", "clap", @@ -2707,6 +2709,7 @@ dependencies = [ [[package]] name = "taler-test-utils" version = "0.0.0" +source = "git+https://git.taler.net/taler-rust.git/#85f6f177780ebc84dcb96dda59c3f9c20ed5ede4" dependencies = [ "axum", "http-body-util", diff --git a/Cargo.toml b/Cargo.toml @@ -25,9 +25,9 @@ sqlx = { version = "0.8", features = [ "time", ], default-features = false } url = { version = "2.2", features = ["serde"] } -taler-common = { path = "../taler-rust/common/taler-common" } -taler-api = { path = "../taler-rust/common/taler-api" } -taler-test-utils = { path = "../taler-rust/common/taler-test-utils" } +taler-common = { git = "https://git.taler.net/taler-rust.git/" } +taler-api = { git = "https://git.taler.net/taler-rust.git/" } +taler-test-utils = { git = "https://git.taler.net/taler-rust.git/" } bitcoin = { version = "0.32.5", features = [ "std", "serde", @@ -38,4 +38,4 @@ anyhow = "1" tracing = "0.1" criterion = "0.6" base64 = "0.22.1" -rand = { version = "0.9.0" } -\ No newline at end of file +rand = { version = "0.9.0" } diff --git a/common/src/lib.rs b/common/src/lib.rs @@ -15,7 +15,6 @@ */ use rand::{RngCore as _, rngs::ThreadRng}; pub use taler_common; -use taler_common::ExpoBackoffDecorr; pub use url; pub mod metadata; @@ -27,8 +26,3 @@ pub fn rand_slice<const N: usize>() -> [u8; N] { ThreadRng::default().fill_bytes(&mut slice); slice } - -/// Default jitter config -pub fn jitter() -> ExpoBackoffDecorr { - ExpoBackoffDecorr::new(200, 15 * 1000, 2.0) -} diff --git a/depolymerizer-bitcoin/src/api.rs b/depolymerizer-bitcoin/src/api.rs @@ -14,12 +14,9 @@ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -use std::{ - sync::{ - Arc, - atomic::{AtomicBool, Ordering}, - }, - time::Duration, +use std::sync::{ + Arc, + atomic::{AtomicBool, Ordering}, }; use axum::{ @@ -29,7 +26,6 @@ use axum::{ response::{IntoResponse as _, Response}, }; use bitcoin::address::NetworkUnchecked; -use common::jitter; use sqlx::{ PgPool, QueryBuilder, Row, postgres::{PgListener, PgRow}, @@ -384,7 +380,7 @@ pub async fn status_middleware( /// Listen to backend status change async fn status_watcher(state: Arc<ServerState>) { - let mut jitter = jitter(); + let mut jitter = ExpoBackoffDecorr::default(); async fn inner( state: &ServerState, jitter: &mut ExpoBackoffDecorr, @@ -408,8 +404,7 @@ async fn status_watcher(state: Arc<ServerState>) { loop { if let Err(err) = inner(&state, &mut jitter).await { error!("status-watcher: {}", err); - // TODO better sleep - sleep(Duration::from_secs(jitter.next() as u64)).await; + sleep(jitter.next()).await; } } } diff --git a/depolymerizer-bitcoin/src/loops/watcher.rs b/depolymerizer-bitcoin/src/loops/watcher.rs @@ -14,10 +14,9 @@ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -use common::jitter; use depolymerizer_bitcoin::{config::RpcCfg, rpc::rpc_common}; use sqlx::PgPool; -use std::time::Duration; +use taler_common::ExpoBackoffDecorr; use tokio::time::sleep; use tracing::error; @@ -25,7 +24,7 @@ use super::LoopResult; /// Wait for new block and notify arrival with postgreSQL notifications pub async fn watcher(rpc_cfg: RpcCfg, pool: PgPool) { - let mut jitter = jitter(); + let mut jitter = ExpoBackoffDecorr::default(); loop { let result: LoopResult<()> = async { let mut rpc = rpc_common(&rpc_cfg).await?; @@ -38,7 +37,7 @@ pub async fn watcher(rpc_cfg: RpcCfg, pool: PgPool) { .await; if let Err(e) = result { error!("watcher: {e}"); - sleep(Duration::from_millis(jitter.next() as u64)).await; + sleep(jitter.next()).await; } } } diff --git a/depolymerizer-bitcoin/src/loops/worker.rs b/depolymerizer-bitcoin/src/loops/worker.rs @@ -13,15 +13,10 @@ You should have received a copy of the GNU Affero General Public License along with TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -use std::{ - collections::HashMap, - fmt::Write, - time::{Duration, SystemTime}, -}; +use std::{collections::HashMap, fmt::Write, time::SystemTime}; use bitcoin::{Amount as BtcAmount, BlockHash, Txid, hashes::Hash}; use common::{ - jitter, metadata::OutMetadata, status::{BounceStatus, DebitStatus}, taler_common::{api_common::ShortHashCode, types::timestamp::Timestamp}, @@ -34,6 +29,7 @@ use depolymerizer_bitcoin::{ }; use sqlx::{PgPool, Row, postgres::PgListener}; use taler_api::db::{BindHelper as _, TypeHelper}; +use taler_common::ExpoBackoffDecorr; use tokio::time::sleep; use tracing::{error, info, warn}; @@ -47,7 +43,7 @@ use super::{LoopError, LoopResult, analysis::analysis}; /// Synchronize local db with blockchain and perform transactions pub async fn worker(mut state: WorkerCfg, pool: PgPool) { - let mut jitter = jitter(); + let mut jitter = ExpoBackoffDecorr::default(); let mut lifetime = state.lifetime; let mut status = true; let mut skip_notification = true; @@ -146,7 +142,7 @@ pub async fn worker(mut state: WorkerCfg, pool: PgPool) { | LoopError::DB(_) | LoopError::Injected(_) ); - sleep(Duration::from_millis(jitter.next() as u64)).await; + sleep(jitter.next()).await; } else { return; }