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.
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.
The Metaplex Token Authority Rules account that stores royalty enforcement rules.
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: BuyNftInstructionArgsThe arguments for the instruction.
Implementations§
Source§impl<'a, 'b> BuyNftCpi<'a, 'b>
impl<'a, 'b> BuyNftCpi<'a, 'b>
pub fn new( program: &'b AccountInfo<'a>, accounts: BuyNftCpiAccounts<'a, 'b>, args: BuyNftInstructionArgs, ) -> Self
pub fn invoke(&self) -> ProgramResult
pub fn invoke_with_remaining_accounts( &self, remaining_accounts: &[(&'b AccountInfo<'a>, bool, bool)], ) -> ProgramResult
pub fn invoke_signed(&self, signers_seeds: &[&[&[u8]]]) -> ProgramResult
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> 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> 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