BuyNftCpi

Struct BuyNftCpi 

Source
pub struct BuyNftCpi<'a, 'b> {
Show 31 fields pub __program: &'b AccountInfo<'a>, pub owner: &'b AccountInfo<'a>, pub taker: &'b AccountInfo<'a>, pub rent_payer: &'b AccountInfo<'a>, pub fee_vault: &'b AccountInfo<'a>, pub pool: &'b AccountInfo<'a>, pub whitelist: Option<&'b AccountInfo<'a>>, pub mint_proof: Option<&'b AccountInfo<'a>>, pub shared_escrow: Option<&'b AccountInfo<'a>>, pub maker_broker: Option<&'b AccountInfo<'a>>, pub taker_broker: Option<&'b AccountInfo<'a>>, pub cosigner: Option<&'b AccountInfo<'a>>, pub amm_program: &'b AccountInfo<'a>, pub escrow_program: Option<&'b AccountInfo<'a>>, pub native_program: &'b AccountInfo<'a>, pub mint: &'b AccountInfo<'a>, pub metadata: &'b AccountInfo<'a>, pub edition: &'b AccountInfo<'a>, pub user_token_record: Option<&'b AccountInfo<'a>>, pub pool_token_record: Option<&'b AccountInfo<'a>>, pub token_metadata_program: Option<&'b AccountInfo<'a>>, pub sysvar_instructions: Option<&'b AccountInfo<'a>>, pub authorization_rules: Option<&'b AccountInfo<'a>>, pub authorization_rules_program: Option<&'b AccountInfo<'a>>, pub nft_receipt: &'b AccountInfo<'a>, pub taker_ta: &'b AccountInfo<'a>, pub pool_ta: &'b AccountInfo<'a>, pub token_program: &'b AccountInfo<'a>, pub associated_token_program: &'b AccountInfo<'a>, pub system_program: &'b AccountInfo<'a>, pub __args: BuyNftInstructionArgs,
}
Expand description

buy_nft CPI instruction.

Fields§

§__program: &'b AccountInfo<'a>

The program to invoke.

§owner: &'b AccountInfo<'a>

The owner of the pool and the buyer/recipient of the NFT.

§taker: &'b AccountInfo<'a>

The taker is the user buying or selling the NFT.

§rent_payer: &'b AccountInfo<'a>

The original rent payer of the pool–stored on the pool. Used to refund rent in case the pool is auto-closed.

§fee_vault: &'b AccountInfo<'a>

Fee vault account owned by the TFEE program.

§pool: &'b AccountInfo<'a>

The Pool state account that the NFT is being sold into. Stores pool state and config, but is also the owner of any NFTs in the pool, and also escrows any SOL. Any active pool can be specified provided it is a Token type and the NFT passes at least one whitelist condition.

§whitelist: Option<&'b AccountInfo<'a>>

The whitelist account that the pool uses to verify the NFTs being sold into it.

§mint_proof: Option<&'b AccountInfo<'a>>

Optional account which must be passed in if the NFT must be verified against a merkle proof condition in the whitelist.

§shared_escrow: Option<&'b AccountInfo<'a>>

The shared escrow account for pools that have liquidity in a shared account.

§maker_broker: Option<&'b AccountInfo<'a>>

The account that receives the maker broker fee.

§taker_broker: Option<&'b AccountInfo<'a>>

The account that receives the taker broker fee.

§cosigner: Option<&'b AccountInfo<'a>>

The optional cosigner account that must be passed in if the pool has a cosigner.

§amm_program: &'b AccountInfo<'a>

The AMM program account, used for self-cpi logging.

§escrow_program: Option<&'b AccountInfo<'a>>

The escrow program account for shared liquidity pools.

§native_program: &'b AccountInfo<'a>§mint: &'b AccountInfo<'a>

The mint account of the NFT.

§metadata: &'b AccountInfo<'a>

The Token Metadata metadata account of the NFT.

§edition: &'b AccountInfo<'a>

The Token Metadata edition account of the NFT.

§user_token_record: Option<&'b AccountInfo<'a>>

The Token Metadata source token record account of the NFT.

§pool_token_record: Option<&'b AccountInfo<'a>>

The Token Metadata token record for the destination.

§token_metadata_program: Option<&'b AccountInfo<'a>>

The Token Metadata program account.

§sysvar_instructions: Option<&'b AccountInfo<'a>>

The sysvar instructions account.

§authorization_rules: Option<&'b AccountInfo<'a>>

The Metaplex Token Authority Rules account that stores royalty enforcement rules.

§authorization_rules_program: Option<&'b AccountInfo<'a>>

The Metaplex Token Authority Rules program account.

§nft_receipt: &'b AccountInfo<'a>

The NFT deposit receipt, which ties an NFT to the pool it was deposited to.

§taker_ta: &'b AccountInfo<'a>

The TA of the buyer, where the NFT will be transferred.

§pool_ta: &'b AccountInfo<'a>

The TA of the pool, where the NFT is held.

§token_program: &'b AccountInfo<'a>

Either the legacy token program or token-2022.

§associated_token_program: &'b AccountInfo<'a>

The SPL associated token program.

§system_program: &'b AccountInfo<'a>

The Solana system program.

§__args: BuyNftInstructionArgs

The arguments for the instruction.

Implementations§

Source§

impl<'a, 'b> BuyNftCpi<'a, 'b>

Source

pub fn new( program: &'b AccountInfo<'a>, accounts: BuyNftCpiAccounts<'a, 'b>, args: BuyNftInstructionArgs, ) -> Self

Source

pub fn invoke(&self) -> ProgramResult

Source

pub fn invoke_with_remaining_accounts( &self, remaining_accounts: &[(&'b AccountInfo<'a>, bool, bool)], ) -> ProgramResult

Source

pub fn invoke_signed(&self, signers_seeds: &[&[&[u8]]]) -> ProgramResult

Source

pub fn invoke_signed_with_remaining_accounts( &self, signers_seeds: &[&[&[u8]]], remaining_accounts: &[(&'b AccountInfo<'a>, bool, bool)], ) -> ProgramResult

Auto Trait Implementations§

§

impl<'a, 'b> Freeze for BuyNftCpi<'a, 'b>

§

impl<'a, 'b> !RefUnwindSafe for BuyNftCpi<'a, 'b>

§

impl<'a, 'b> !Send for BuyNftCpi<'a, 'b>

§

impl<'a, 'b> !Sync for BuyNftCpi<'a, 'b>

§

impl<'a, 'b> Unpin for BuyNftCpi<'a, 'b>

§

impl<'a, 'b> !UnwindSafe for BuyNftCpi<'a, 'b>

Blanket Implementations§

Source§

impl<T> AbiExample for T

Source§

default fn example() -> T

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V