#[repr(C)]
pub struct Account { pub mint: Pubkey, pub owner: Pubkey, pub amount: u64, pub delegate: COption<Pubkey>, pub state: AccountState, pub is_native: COption<u64>, pub delegated_amount: u64, pub close_authority: COption<Pubkey>, }
Expand description

Account data.

Fields§

§mint: Pubkey

The mint associated with this account

§owner: Pubkey

The owner of this account.

§amount: u64

The amount of tokens this account holds.

§delegate: COption<Pubkey>

If delegate is Some then delegated_amount represents the amount authorized by the delegate

§state: AccountState

The account’s state

§is_native: COption<u64>

If is_some, this is a native token, and the value logs the rent-exempt reserve. An Account is required to be rent-exempt, so the value is used by the Processor to ensure that wrapped SOL accounts do not drop below this threshold.

§delegated_amount: u64

The amount delegated

§close_authority: COption<Pubkey>

Optional authority to close the account.

Implementations§

source§

impl Account

source

pub fn is_frozen(&self) -> bool

Checks if account is frozen

source

pub fn is_native(&self) -> bool

Checks if account is native

source

pub fn is_owned_by_system_program_or_incinerator(&self) -> bool

Checks if a token Account’s owner is the system_program or the incinerator

Trait Implementations§

source§

impl BaseState for Account

source§

const ACCOUNT_TYPE: AccountType = AccountType::Account

Associated extension type enum, checked at the start of TLV entries
source§

impl Clone for Account

source§

fn clone(&self) -> Account

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Account

source§

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

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

impl Default for Account

source§

fn default() -> Account

Returns the “default value” for a type. Read more
source§

impl GenericTokenAccount for Account

source§

fn valid_account_data(account_data: &[u8]) -> bool

Check if the account data is a valid token account
source§

fn unpack_account_owner_unchecked(account_data: &[u8]) -> &Pubkey

Call after account length has already been verified to unpack the account owner
source§

fn unpack_account_mint_unchecked(account_data: &[u8]) -> &Pubkey

Call after account length has already been verified to unpack the account mint
source§

fn unpack_pubkey_unchecked(account_data: &[u8], offset: usize) -> &Pubkey

Call after account length has already been verified to unpack a Pubkey at the specified offset. Panics if account_data.len() is less than PUBKEY_BYTES
source§

fn unpack_account_owner(account_data: &[u8]) -> Option<&Pubkey>

Unpacks an account’s owner from opaque account data.
source§

fn unpack_account_mint(account_data: &[u8]) -> Option<&Pubkey>

Unpacks an account’s mint from opaque account data.
source§

impl IsInitialized for Account

source§

fn is_initialized(&self) -> bool

Is initialized
source§

impl Pack for Account

source§

const LEN: usize = 165usize

The length, in bytes, of the packed representation
source§

fn get_packed_len() -> usize

Get the packed length
source§

fn unpack(input: &[u8]) -> Result<Self, ProgramError>
where Self: IsInitialized,

Unpack from slice and check if initialized
source§

fn unpack_unchecked(input: &[u8]) -> Result<Self, ProgramError>

Unpack from slice without checking if initialized
source§

fn pack(src: Self, dst: &mut [u8]) -> Result<(), ProgramError>

Pack into slice
source§

impl PartialEq for Account

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Account

source§

impl Sealed for Account

source§

impl StructuralPartialEq for Account

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> AbiExample for T

§

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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

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

§

fn vzip(self) -> V