#[repr(C)]pub struct CompressAndCloseMintAction {
pub idempotent: u8,
}Expand description
Action to compress and close a Mint Solana account. The compressed mint state is always preserved.
§Requirements
- Mint must exist (mint_decompressed = true) - unless idempotent is set
- is_compressible() must return true (rent expired)
- Cannot be combined with DecompressMint in same instruction
§Note
CompressAndCloseMint is permissionless - anyone can compress and close a Mint provided is_compressible() returns true. All lamports are returned to rent_sponsor.
Fields§
§idempotent: u8If non-zero, succeed silently when Mint doesn’t exist or cannot be compressed. Useful for foresters to handle already-compressed mints without failing.
Implementations§
Source§impl CompressAndCloseMintAction
impl CompressAndCloseMintAction
Sourcepub fn is_idempotent(&self) -> bool
pub fn is_idempotent(&self) -> bool
Returns true if this action should succeed silently when:
- Mint doesn’t exist (already compressed)
- Mint cannot be compressed (rent not expired)
Trait Implementations§
Source§impl BorshDeserialize for CompressAndCloseMintActionwhere
u8: BorshDeserialize,
impl BorshDeserialize for CompressAndCloseMintActionwhere
u8: BorshDeserialize,
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for CompressAndCloseMintActionwhere
u8: BorshSerialize,
impl BorshSerialize for CompressAndCloseMintActionwhere
u8: BorshSerialize,
Source§impl Clone for CompressAndCloseMintAction
impl Clone for CompressAndCloseMintAction
Source§fn clone(&self) -> CompressAndCloseMintAction
fn clone(&self) -> CompressAndCloseMintAction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CompressAndCloseMintAction
impl Debug for CompressAndCloseMintAction
Source§impl<'a> ZeroCopyAt<'a> for CompressAndCloseMintAction
impl<'a> ZeroCopyAt<'a> for CompressAndCloseMintAction
type ZeroCopyAt = ZCompressAndCloseMintAction<'a>
fn zero_copy_at( __remaining_bytes: &'a [u8], ) -> Result<(Self::ZeroCopyAt, &'a [u8]), ZeroCopyError>
Source§impl ZeroCopyStructInner for CompressAndCloseMintAction
impl ZeroCopyStructInner for CompressAndCloseMintAction
type ZeroCopyInner = ZCompressAndCloseMintAction<'static>
impl Copy for CompressAndCloseMintAction
Auto Trait Implementations§
impl Freeze for CompressAndCloseMintAction
impl RefUnwindSafe for CompressAndCloseMintAction
impl Send for CompressAndCloseMintAction
impl Sync for CompressAndCloseMintAction
impl Unpin for CompressAndCloseMintAction
impl UnwindSafe for CompressAndCloseMintAction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> HashToFieldSize for Twhere
T: BorshSerialize,
impl<T> HashToFieldSize for Twhere
T: BorshSerialize,
fn hash_to_field_size(&self) -> Result<[u8; 32], HasherError>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more