Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 19 additions & 12 deletions magicblock-chainlink/src/chainlink/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,8 @@ impl<T: ChainRpcClient, U: ChainPubsubClient, V: AccountsBank, C: Cloner>
let blacklisted_accounts =
blacklisted_accounts(&self.validator_id, &self.faucet_id);

let delegated = AtomicU64::new(0);
let dlp_owned_not_delegated = AtomicU64::new(0);
let delegated_only = AtomicU64::new(0);
let undelegating = AtomicU64::new(0);
let blacklisted = AtomicU64::new(0);
let remaining = AtomicU64::new(0);
let remaining_empty = AtomicU64::new(0);
Expand All @@ -160,13 +160,15 @@ impl<T: ChainRpcClient, U: ChainPubsubClient, V: AccountsBank, C: Cloner>
blacklisted.fetch_add(1, Ordering::Relaxed);
return false;
}
// TODO: this potentially looses data and is a temporary measure
if account.owner().eq(&dlp::id()) {
dlp_owned_not_delegated.fetch_add(1, Ordering::Relaxed);
return true;
}
if account.delegated() {
delegated.fetch_add(1, Ordering::Relaxed);
// Undelegating accounts are normally also delegated, but if that ever changes
// we want to make sure we never remove an account of which we aren't sure
// if the undelegation completed on chain or not.
if account.delegated() || account.undelegating() {
if account.undelegating() {
undelegating.fetch_add(1, Ordering::Relaxed);
} else {
delegated_only.fetch_add(1, Ordering::Relaxed);
}
return false;
}
trace!(
Expand All @@ -186,16 +188,21 @@ impl<T: ChainRpcClient, U: ChainPubsubClient, V: AccountsBank, C: Cloner>
.load(Ordering::Relaxed)
.saturating_sub(remaining_empty.load(Ordering::Relaxed));

let delegated_only = delegated_only.into_inner();
let undelegating = undelegating.into_inner();

info!(
"Removed {removed} accounts from bank:
{} DLP-owned non-delegated
{} non-delegated non-blacklisted, no-feature non-empty.
{} non-delegated non-blacklisted empty
{} delegated not undelegating
{} delegated and undelegating
Kept: {} delegated, {} blacklisted",
dlp_owned_not_delegated.into_inner(),
non_empty,
remaining_empty.into_inner(),
delegated.into_inner(),
delegated_only,
undelegating,
delegated_only + undelegating,
blacklisted.into_inner()
);
}
Expand Down
Loading