From 6ad046b65b4bd94501bdcaa75f17d6c8b93ba0de Mon Sep 17 00:00:00 2001 From: kbizikav <132550763+kbizikav@users.noreply.github.com> Date: Tue, 24 Jun 2025 16:01:07 +0700 Subject: [PATCH] feat: close deposit --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/services/mod.rs | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae69a93..082b37a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2716,7 +2716,7 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mining-cli" -version = "1.3.0" +version = "1.3.1" dependencies = [ "aes-gcm", "alloy", diff --git a/Cargo.toml b/Cargo.toml index d52506e..c53c0fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mining-cli" -version = "1.3.0" +version = "1.3.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/services/mod.rs b/src/services/mod.rs index 7d65b0f..93e125c 100644 --- a/src/services/mod.rs +++ b/src/services/mod.rs @@ -11,10 +11,13 @@ use crate::{ utils::{config::Settings, time::sleep_for}, }; use alloy::primitives::{B256, U256}; +use chrono::TimeZone as _; use claim::claim_task; use mining::mining_task; use utils::{await_until_graph_syncs, is_address_used}; +const DEPOSIT_CLOSE_TIMESTAMP: u64 = 1751068800; // 2025-06-28 00:00:00 UTC + pub mod assets_status; pub mod balance_transfer; pub mod claim; @@ -48,9 +51,22 @@ pub async fn mining_loop( await_until_graph_syncs(&state.graph_client).await?; let assets_status = state.sync_and_fetch_assets(&key).await?; let is_qualified = !get_circulation(key.deposit_address).await?.is_excluded; + let is_open = (chrono::Utc::now().timestamp() as u64) < DEPOSIT_CLOSE_TIMESTAMP; + let will_deposit = assets_status.effective_deposit_times() < mining_times as usize && assets_status.pending_indices.is_empty() && is_qualified; + if will_deposit && !is_open { + print_warning(format!( + "Deposit closed on {}. + You can still withdraw your deposits but cannot make new deposits.", + chrono::Utc + .timestamp_opt(DEPOSIT_CLOSE_TIMESTAMP as i64, 0) + .unwrap() + .format("%Y-%m-%d %H:%M:%S"), + )); + } + let will_deposit = will_deposit && is_open; // skip deposit address if no remaining deposits, and will not deposit if assets_status.no_remaining() && !will_deposit {