defuse/
garbage_collector.rs

1use defuse_core::Nonce;
2use defuse_serde_utils::base64::AsBase64;
3use near_sdk::{AccountId, ext_contract};
4
5#[ext_contract(ext_garbage_collector)]
6#[allow(clippy::module_name_repetitions)]
7pub trait GarbageCollector {
8    /// Clears all expired nonces for given accounts by its prefix.
9    /// Omitting any errors, e.g. if account doesn't exist or nonces are not expired.
10    /// NOTE: MUST attach 1 yⓃ for security purposes.
11    fn cleanup_nonces(&mut self, nonces: Vec<(AccountId, Vec<AsBase64<Nonce>>)>);
12}