Skip to content

Commit 150559e

Browse files
authored
optimizes rescan for account updates, does not check for reorg (oreoslabs#27)
1 parent dab34ca commit 150559e

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

crates/server/src/handlers.rs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use networking::{
1919
};
2020
use oreo_errors::OreoError;
2121
use serde_json::json;
22+
use tracing::error;
2223
use utils::{default_secp, sign, verify, Signature};
2324

2425
use crate::SharedState;
@@ -242,10 +243,22 @@ pub async fn update_scan_status_handler<T: DBHandler>(
242243
return e.into_response();
243244
}
244245
let account = db_account.unwrap();
246+
let reset_created_at = account.create_head.is_none() || account.create_head.unwrap() == 1;
247+
let reset = shared.rpc_handler.reset_account(RpcResetAccountRequest {
248+
account: account.name.clone(),
249+
reset_scanning_enabled: Some(false),
250+
reset_created_at: Some(reset_created_at),
251+
});
252+
if let Err(e) = reset {
253+
return e.into_response();
254+
}
245255
message.account = account.name.clone();
246-
let scan_complete = message.scan_complete;
247-
let _ = shared.rpc_handler.set_account_head(message);
248-
if scan_complete {
256+
let resp = shared.rpc_handler.set_account_head(message.clone());
257+
258+
if resp.is_err() {
259+
error!("Failed to update account head: {:?}", resp.unwrap_err());
260+
}
261+
if message.scan_complete {
249262
let _ = shared.rpc_handler.set_scanning(RpcSetScanningRequest {
250263
account: account.name.clone(),
251264
enabled: true,

0 commit comments

Comments
 (0)