Skip to main content

TokenProgram

Enum TokenProgram 

Source
pub enum TokenProgram {
    Legacy,
    Token2022,
}
Expand description

The two token programs every builder in this module can target.

The wire format of the shared instruction set is identical on both, so a builder’s encoding does not change; only the program id in the CPI does.

Variants§

§

Legacy

SPL Token, TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA.

§

Token2022

Token-2022, TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb.

Implementations§

Source§

impl TokenProgram

Source

pub const fn address(self) -> &'static Address

The program id.

Source

pub fn from_address(address: &Address) -> Option<Self>

The program behind an address, if it is one of the two.

Source

pub fn owning(account: &AccountView<'_>) -> Result<Self, ProgramError>

The program that owns account: a token account, a mint, or a multisig. Anything owned by another program is refused with IncorrectProgramId, so a builder driven by this never sends a token instruction to a program that is not a token program.

Source

pub fn from_program_account( program: &AccountView<'_>, ) -> Result<Self, ProgramError>

The program an executable account in the instruction stands for. Refuses any address that is not one of the two token programs.

Trait Implementations§

Source§

impl Clone for TokenProgram

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for TokenProgram

Source§

impl Debug for TokenProgram

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for TokenProgram

Source§

impl PartialEq for TokenProgram

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for TokenProgram

Auto Trait Implementations§

Blanket Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.