#[repr(C)]pub struct InstructionDataInvokeCpiWithReadOnly {Show 14 fields
pub mode: u8,
pub bump: u8,
pub invoking_program_id: Pubkey,
pub compress_or_decompress_lamports: u64,
pub is_compress: bool,
pub with_cpi_context: bool,
pub with_transaction_hash: bool,
pub cpi_context: CompressedCpiContext,
pub proof: Option<CompressedProof>,
pub new_address_params: Vec<NewAddressParamsAssignedPacked>,
pub input_compressed_accounts: Vec<InAccount>,
pub output_compressed_accounts: Vec<OutputCompressedAccountWithPackedContext>,
pub read_only_addresses: Vec<PackedReadOnlyAddress>,
pub read_only_accounts: Vec<PackedReadOnlyCompressedAccount>,
}Expand description
V2 CPI instruction data for read-only compressed account operations.
Provides more flexibility for complex operations such as changing the compressed account owner.
Most users should use crate::cpi::v2::LightSystemProgramCpi instead.
Fields§
§mode: u80 With program ids 1 without program ids
bump: u8§invoking_program_id: Pubkey§compress_or_decompress_lamports: u64If compress_or_decompress_lamports > 0 -> expect sol_pool_pda
is_compress: bool-> expect account decompression_recipient
with_cpi_context: bool§with_transaction_hash: bool§cpi_context: CompressedCpiContext§proof: Option<CompressedProof>§new_address_params: Vec<NewAddressParamsAssignedPacked>§input_compressed_accounts: Vec<InAccount>§output_compressed_accounts: Vec<OutputCompressedAccountWithPackedContext>§read_only_addresses: Vec<PackedReadOnlyAddress>§read_only_accounts: Vec<PackedReadOnlyCompressedAccount>Implementations§
Source§impl InstructionDataInvokeCpiWithReadOnly
impl InstructionDataInvokeCpiWithReadOnly
pub fn new( invoking_program_id: Pubkey, bump: u8, proof: Option<CompressedProof>, ) -> InstructionDataInvokeCpiWithReadOnly
pub fn mode_v1(self) -> InstructionDataInvokeCpiWithReadOnly
pub fn write_to_cpi_context_set(self) -> InstructionDataInvokeCpiWithReadOnly
pub fn write_to_cpi_context_first(self) -> InstructionDataInvokeCpiWithReadOnly
pub fn execute_with_cpi_context(self) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_with_transaction_hash( self, with_transaction_hash: bool, ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_cpi_context( self, cpi_context: CompressedCpiContext, ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_proof( self, proof: Option<CompressedProof>, ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_new_addresses( self, new_address_params: &[NewAddressParamsAssignedPacked], ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_input_compressed_accounts( self, input_compressed_accounts: &[InAccount], ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_output_compressed_accounts( self, output_compressed_accounts: &[OutputCompressedAccountWithPackedContext], ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_read_only_addresses( self, read_only_addresses: &[PackedReadOnlyAddress], ) -> InstructionDataInvokeCpiWithReadOnly
pub fn with_read_only_accounts( self, read_only_accounts: &[PackedReadOnlyCompressedAccount], ) -> InstructionDataInvokeCpiWithReadOnly
Trait Implementations§
Source§impl BorshDeserialize for InstructionDataInvokeCpiWithReadOnlywhere
u8: BorshDeserialize,
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
bool: BorshDeserialize,
CompressedCpiContext: BorshDeserialize,
Option<CompressedProof>: BorshDeserialize,
Vec<NewAddressParamsAssignedPacked>: BorshDeserialize,
Vec<InAccount>: BorshDeserialize,
Vec<OutputCompressedAccountWithPackedContext>: BorshDeserialize,
Vec<PackedReadOnlyAddress>: BorshDeserialize,
Vec<PackedReadOnlyCompressedAccount>: BorshDeserialize,
impl BorshDeserialize for InstructionDataInvokeCpiWithReadOnlywhere
u8: BorshDeserialize,
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
bool: BorshDeserialize,
CompressedCpiContext: BorshDeserialize,
Option<CompressedProof>: BorshDeserialize,
Vec<NewAddressParamsAssignedPacked>: BorshDeserialize,
Vec<InAccount>: BorshDeserialize,
Vec<OutputCompressedAccountWithPackedContext>: BorshDeserialize,
Vec<PackedReadOnlyAddress>: BorshDeserialize,
Vec<PackedReadOnlyCompressedAccount>: BorshDeserialize,
fn deserialize_reader<R>(
reader: &mut R,
) -> Result<InstructionDataInvokeCpiWithReadOnly, Error>where
R: Read,
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 InstructionDataInvokeCpiWithReadOnlywhere
u8: BorshSerialize,
Pubkey: BorshSerialize,
u64: BorshSerialize,
bool: BorshSerialize,
CompressedCpiContext: BorshSerialize,
Option<CompressedProof>: BorshSerialize,
Vec<NewAddressParamsAssignedPacked>: BorshSerialize,
Vec<InAccount>: BorshSerialize,
Vec<OutputCompressedAccountWithPackedContext>: BorshSerialize,
Vec<PackedReadOnlyAddress>: BorshSerialize,
Vec<PackedReadOnlyCompressedAccount>: BorshSerialize,
impl BorshSerialize for InstructionDataInvokeCpiWithReadOnlywhere
u8: BorshSerialize,
Pubkey: BorshSerialize,
u64: BorshSerialize,
bool: BorshSerialize,
CompressedCpiContext: BorshSerialize,
Option<CompressedProof>: BorshSerialize,
Vec<NewAddressParamsAssignedPacked>: BorshSerialize,
Vec<InAccount>: BorshSerialize,
Vec<OutputCompressedAccountWithPackedContext>: BorshSerialize,
Vec<PackedReadOnlyAddress>: BorshSerialize,
Vec<PackedReadOnlyCompressedAccount>: BorshSerialize,
Source§impl Clone for InstructionDataInvokeCpiWithReadOnly
impl Clone for InstructionDataInvokeCpiWithReadOnly
Source§fn clone(&self) -> InstructionDataInvokeCpiWithReadOnly
fn clone(&self) -> InstructionDataInvokeCpiWithReadOnly
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 Default for InstructionDataInvokeCpiWithReadOnly
impl Default for InstructionDataInvokeCpiWithReadOnly
Source§fn default() -> InstructionDataInvokeCpiWithReadOnly
fn default() -> InstructionDataInvokeCpiWithReadOnly
Returns the “default value” for a type. Read more
Source§impl InstructionDiscriminator for InstructionDataInvokeCpiWithReadOnly
impl InstructionDiscriminator for InstructionDataInvokeCpiWithReadOnly
fn discriminator(&self) -> &'static [u8] ⓘ
Source§impl LightCpiInstruction for InstructionDataInvokeCpiWithReadOnly
impl LightCpiInstruction for InstructionDataInvokeCpiWithReadOnly
Source§fn new_cpi(cpi_signer: CpiSigner, proof: ValidityProof) -> Self
fn new_cpi(cpi_signer: CpiSigner, proof: ValidityProof) -> Self
Creates a new CPI instruction builder with a validity proof. Read more
Source§fn with_light_account<A>(
self,
account: LightAccount<A>,
) -> Result<Self, ProgramError>
fn with_light_account<A>( self, account: LightAccount<A>, ) -> Result<Self, ProgramError>
Adds a compressed account to the instruction (using SHA256 hashing). Read more
Source§impl PartialEq for InstructionDataInvokeCpiWithReadOnly
impl PartialEq for InstructionDataInvokeCpiWithReadOnly
Source§fn eq(&self, other: &InstructionDataInvokeCpiWithReadOnly) -> bool
fn eq(&self, other: &InstructionDataInvokeCpiWithReadOnly) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<'a> ZeroCopyAt<'a> for InstructionDataInvokeCpiWithReadOnly
impl<'a> ZeroCopyAt<'a> for InstructionDataInvokeCpiWithReadOnly
type ZeroCopyAt = ZInstructionDataInvokeCpiWithReadOnly<'a>
fn zero_copy_at( bytes: &'a [u8], ) -> Result<(<InstructionDataInvokeCpiWithReadOnly as ZeroCopyAt<'a>>::ZeroCopyAt, &'a [u8]), ZeroCopyError>
Source§impl<'a> ZeroCopyAtMut<'a> for InstructionDataInvokeCpiWithReadOnly
impl<'a> ZeroCopyAtMut<'a> for InstructionDataInvokeCpiWithReadOnly
type ZeroCopyAtMut = ZInstructionDataInvokeCpiWithReadOnlyMut<'a>
fn zero_copy_at_mut( __remaining_bytes: &'a mut [u8], ) -> Result<(<InstructionDataInvokeCpiWithReadOnly as ZeroCopyAtMut<'a>>::ZeroCopyAtMut, &'a mut [u8]), ZeroCopyError>
Source§impl<'a> ZeroCopyNew<'a> for InstructionDataInvokeCpiWithReadOnly
impl<'a> ZeroCopyNew<'a> for InstructionDataInvokeCpiWithReadOnly
Source§type ZeroCopyConfig = InstructionDataInvokeCpiWithReadOnlyConfig
type ZeroCopyConfig = InstructionDataInvokeCpiWithReadOnlyConfig
Configuration type needed to initialize this type
Source§type Output = <InstructionDataInvokeCpiWithReadOnly as ZeroCopyAtMut<'a>>::ZeroCopyAtMut
type Output = <InstructionDataInvokeCpiWithReadOnly as ZeroCopyAtMut<'a>>::ZeroCopyAtMut
Output type - the mutable zero-copy view of this type
Source§fn byte_len(
config: &<InstructionDataInvokeCpiWithReadOnly as ZeroCopyNew<'a>>::ZeroCopyConfig,
) -> Result<usize, ZeroCopyError>
fn byte_len( config: &<InstructionDataInvokeCpiWithReadOnly as ZeroCopyNew<'a>>::ZeroCopyConfig, ) -> Result<usize, ZeroCopyError>
Calculate the byte length needed for this type with the given configuration Read more
Source§fn new_zero_copy(
__remaining_bytes: &'a mut [u8],
config: <InstructionDataInvokeCpiWithReadOnly as ZeroCopyNew<'a>>::ZeroCopyConfig,
) -> Result<(<InstructionDataInvokeCpiWithReadOnly as ZeroCopyNew<'a>>::Output, &'a mut [u8]), ZeroCopyError>
fn new_zero_copy( __remaining_bytes: &'a mut [u8], config: <InstructionDataInvokeCpiWithReadOnly as ZeroCopyNew<'a>>::ZeroCopyConfig, ) -> Result<(<InstructionDataInvokeCpiWithReadOnly as ZeroCopyNew<'a>>::Output, &'a mut [u8]), ZeroCopyError>
Initialize this type in a mutable byte slice with the given configuration Read more
Source§impl ZeroCopyStructInnerMut for InstructionDataInvokeCpiWithReadOnly
impl ZeroCopyStructInnerMut for InstructionDataInvokeCpiWithReadOnly
type ZeroCopyInnerMut = ZInstructionDataInvokeCpiWithReadOnlyMut<'static>
impl StructuralPartialEq for InstructionDataInvokeCpiWithReadOnly
Auto Trait Implementations§
impl Freeze for InstructionDataInvokeCpiWithReadOnly
impl RefUnwindSafe for InstructionDataInvokeCpiWithReadOnly
impl Send for InstructionDataInvokeCpiWithReadOnly
impl Sync for InstructionDataInvokeCpiWithReadOnly
impl Unpin for InstructionDataInvokeCpiWithReadOnly
impl UnwindSafe for InstructionDataInvokeCpiWithReadOnly
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