Struct solana_sdk::instruction::AccountMeta
source · [−]#[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
sourceimpl AccountMeta
impl AccountMeta
sourcepub fn new(pubkey: Pubkey, is_signer: bool) -> AccountMeta
pub fn new(pubkey: Pubkey, is_signer: bool) -> AccountMeta
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),
],
);
sourcepub fn new_readonly(pubkey: Pubkey, is_signer: bool) -> AccountMeta
pub fn new_readonly(pubkey: Pubkey, is_signer: bool) -> AccountMeta
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
sourceimpl Clone for AccountMeta
impl Clone for AccountMeta
sourcefn clone(&self) -> AccountMeta
fn clone(&self) -> AccountMeta
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for AccountMeta
impl Debug for AccountMeta
sourceimpl Default for AccountMeta
impl Default for AccountMeta
sourcefn default() -> AccountMeta
fn default() -> AccountMeta
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for AccountMeta
impl<'de> Deserialize<'de> for AccountMeta
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<AccountMeta, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<AccountMeta, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl PartialEq<AccountMeta> for AccountMeta
impl PartialEq<AccountMeta> for AccountMeta
sourcefn eq(&self, other: &AccountMeta) -> bool
fn eq(&self, other: &AccountMeta) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &AccountMeta) -> bool
fn ne(&self, other: &AccountMeta) -> bool
This method tests for !=
.
sourceimpl Serialize for AccountMeta
impl Serialize for AccountMeta
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for AccountMeta
Auto Trait Implementations
impl RefUnwindSafe for AccountMeta
impl Send for AccountMeta
impl Sync for AccountMeta
impl Unpin for AccountMeta
impl UnwindSafe for AccountMeta
Blanket Implementations
sourceimpl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
impl<T> AbiEnumVisitor for T where
T: Serialize + ?Sized,
default fn visit_for_abi(
&self,
_digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
sourceimpl<T> AbiEnumVisitor for T where
T: Serialize + AbiExample + ?Sized,
impl<T> AbiEnumVisitor for T where
T: Serialize + AbiExample + ?Sized,
default fn visit_for_abi(
&self,
digester: &mut AbiDigester
) -> Result<AbiDigester, DigestError>
sourceimpl<T> AbiExample for T
impl<T> AbiExample for T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more