diff --git a/taptrade-cli-demo/coordinator/src/coordinator/monitoring.rs b/taptrade-cli-demo/coordinator/src/coordinator/monitoring.rs index 188007b..01da0ec 100644 --- a/taptrade-cli-demo/coordinator/src/coordinator/monitoring.rs +++ b/taptrade-cli-demo/coordinator/src/coordinator/monitoring.rs @@ -49,8 +49,13 @@ pub async fn monitor_bonds(coordinator: Arc) -> Result<()> { let coordinator_wallet = Arc::clone(&coordinator.coordinator_wallet); loop { + // sleep for a while + tokio::time::sleep(tokio::time::Duration::from_secs(15)).await; // fetch all bonds let bonds = Arc::new(coordinator_db.fetch_all_bonds().await?); + if bonds.is_empty() { + continue; + } let validation_results = coordinator_wallet .validate_bonds(Arc::clone(&bonds)) .await?; @@ -73,8 +78,6 @@ pub async fn monitor_bonds(coordinator: Arc) -> Result<()> { _ => Err(anyhow!("Invalid PUNISHMENT_ENABLED env var"))?, } } - // sleep for a while - tokio::time::sleep(tokio::time::Duration::from_secs(15)).await; } } diff --git a/taptrade-cli-demo/coordinator/src/wallet/mod.rs b/taptrade-cli-demo/coordinator/src/wallet/mod.rs index a43eb93..9f6840c 100644 --- a/taptrade-cli-demo/coordinator/src/wallet/mod.rs +++ b/taptrade-cli-demo/coordinator/src/wallet/mod.rs @@ -215,12 +215,22 @@ fn test_mempool_accept_bonds( ) -> Result, (MonitoringBond, anyhow::Error)>> { let mut invalid_bonds: HashMap, (MonitoringBond, anyhow::Error)> = HashMap::new(); - let raw_bonds: Vec = bonds + let raw_bonds: Vec> = bonds .iter() - .map(|bond| bond.bond_tx_hex.clone().raw_hex()) // Assuming `raw_hex()` returns a String or &str + .map(|bond| bond.bond_tx_hex.clone().raw_hex()) + .collect::>() + .chunks(25) // Assuming `raw_hex()` returns a String or &str + .map(|chunk| chunk.to_vec()) .collect(); - let test_mempool_accept_res = json_rpc_client.deref().test_mempool_accept(&raw_bonds)?; + let mut test_mempool_accept_res = Vec::new(); + for raw_bonds_subvec in raw_bonds { + test_mempool_accept_res.extend( + json_rpc_client + .deref() + .test_mempool_accept(&raw_bonds_subvec)?, + ); + } for res in test_mempool_accept_res { if !res.allowed {