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}