#[repr(C)]pub struct CompressedOnlyExtensionInstructionData {
pub delegated_amount: u64,
pub withheld_transfer_fee: u64,
pub is_frozen: bool,
pub compression_index: u8,
pub is_ata: bool,
pub bump: u8,
pub owner_index: u8,
}Expand description
CompressedOnly extension instruction data for compressed token accounts. This extension marks a compressed account as decompress-only (cannot be transferred).
Fields§
§delegated_amount: u64The delegated amount from the source Token account’s delegate field. When decompressing, the decompression amount must match this value.
withheld_transfer_fee: u64Withheld transfer fee amount
is_frozen: boolWhether the source Token account was frozen when compressed.
compression_index: u8Index of the compression operation that consumes this input.
is_ata: boolWhether the source Token account was an ATA. When is_ata=true, decompress must verify ATA derivation matches.
bump: u8ATA derivation bump (only used when is_ata=true).
owner_index: u8Index into packed_accounts for the actual owner (only used when is_ata=true). For ATA decompress: this is the wallet owner who signs. The program derives ATA from (owner, program_id, mint, bump) and verifies it matches the compressed account owner (which is the ATA pubkey).
Trait Implementations§
Source§impl BorshDeserialize for CompressedOnlyExtensionInstructionData
impl BorshDeserialize for CompressedOnlyExtensionInstructionData
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>
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl Clone for CompressedOnlyExtensionInstructionData
impl Clone for CompressedOnlyExtensionInstructionData
Source§fn clone(&self) -> CompressedOnlyExtensionInstructionData
fn clone(&self) -> CompressedOnlyExtensionInstructionData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl PartialEq for CompressedOnlyExtensionInstructionData
impl PartialEq for CompressedOnlyExtensionInstructionData
Source§fn eq(&self, other: &CompressedOnlyExtensionInstructionData) -> bool
fn eq(&self, other: &CompressedOnlyExtensionInstructionData) -> bool
self and other values to be equal, and is used by ==.Source§impl<'a> ZeroCopyAt<'a> for CompressedOnlyExtensionInstructionData
impl<'a> ZeroCopyAt<'a> for CompressedOnlyExtensionInstructionData
type ZeroCopyAt = ZCompressedOnlyExtensionInstructionData<'a>
fn zero_copy_at( __remaining_bytes: &'a [u8], ) -> Result<(Self::ZeroCopyAt, &'a [u8]), ZeroCopyError>
Source§impl ZeroCopyStructInner for CompressedOnlyExtensionInstructionData
impl ZeroCopyStructInner for CompressedOnlyExtensionInstructionData
type ZeroCopyInner = ZCompressedOnlyExtensionInstructionData<'static>
impl Copy for CompressedOnlyExtensionInstructionData
impl Eq for CompressedOnlyExtensionInstructionData
impl StructuralPartialEq for CompressedOnlyExtensionInstructionData
Auto Trait Implementations§
impl Freeze for CompressedOnlyExtensionInstructionData
impl RefUnwindSafe for CompressedOnlyExtensionInstructionData
impl Send for CompressedOnlyExtensionInstructionData
impl Sync for CompressedOnlyExtensionInstructionData
impl Unpin for CompressedOnlyExtensionInstructionData
impl UnwindSafe for CompressedOnlyExtensionInstructionData
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
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>
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>
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