#[repr(C)]
pub struct AccountMeta { pub pubkey: Pubkey, pub is_signer: bool, pub is_writable: bool, }
Expand description

Describes a single account read or written by a program during instruction execution.

When constructing an Instruction, a list of all accounts that may be read or written during the execution of that instruction must be supplied. Any account that may be mutated by the program during execution, either its data or metadata such as held lamports, must be writable.

Note that because the Solana runtime schedules parallel transaction execution around which accounts are writable, care should be taken that only accounts which actually may be mutated are specified as writable. As the default AccountMeta::new constructor creates writable accounts, this is a minor hazard: use AccountMeta::new_readonly to specify that an account is not writable.

Fields

pubkey: Pubkey

An account’s public key.

is_signer: bool

True if an Instruction requires a Transaction signature matching pubkey.

is_writable: bool

True if the account data or metadata may be mutated during program execution.

Implementations

Construct metadata for a writable account.

Examples
let instr = Instruction::new_with_borsh(
    program_id,
    &instruction,
    vec![
        AccountMeta::new(from, true),
        AccountMeta::new(to, false),
    ],
);

Construct metadata for a read-only account.

Examples
let instr = Instruction::new_with_borsh(
    program_id,
    &instruction,
    vec![
        AccountMeta::new(from, true),
        AccountMeta::new(to, false),
        AccountMeta::new_readonly(from_account_storage, false),
    ],
);

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

Should always be Self

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.