use crate::{
prelude::{Id, System},
rialo_s_program::{account_info::AccountInfo, system_program},
Result,
};
pub fn close<'info>(info: AccountInfo<'info>, sol_destination: AccountInfo<'info>) -> Result<()> {
let dest_starting_kelvins = sol_destination.kelvins();
**sol_destination.kelvins.borrow_mut() =
dest_starting_kelvins.checked_add(info.kelvins()).unwrap();
**info.kelvins.borrow_mut() = 0;
info.assign(&system_program::ID);
info.resize(0).map_err(Into::into)
}
pub fn is_closed(info: &AccountInfo<'_>) -> bool {
info.owner == &System::id() && info.data_is_empty()
}