Struct anchor_lang::context::Context
source · pub struct Context<'a, 'b, 'c, 'info, T: Bumps> {
pub program_id: &'a Pubkey,
pub accounts: &'b mut T,
pub remaining_accounts: &'c [AccountInfo<'info>],
pub bumps: T::Bumps,
}
Expand description
Provides non-argument inputs to the program.
Example
ⓘ
pub fn set_data(ctx: Context<SetData>, age: u64, other_data: u32) -> Result<()> {
// Set account data like this
(*ctx.accounts.my_account).age = age;
(*ctx.accounts.my_account).other_data = other_data;
// or like this
let my_account = &mut ctx.account.my_account;
my_account.age = age;
my_account.other_data = other_data;
Ok(())
}
Fields§
§program_id: &'a Pubkey
Currently executing program id.
accounts: &'b mut T
Deserialized accounts.
remaining_accounts: &'c [AccountInfo<'info>]
Remaining accounts given but not deserialized or validated. Be very careful when using this directly.
bumps: T::Bumps
Bump seeds found during constraint validation. This is provided as a convenience so that handlers don’t have to recalculate bump seeds or pass them in as arguments. Type is the bumps struct generated by #[derive(Accounts)]
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'b, 'c, 'info, T> !RefUnwindSafe for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> !Send for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> !Sync for Context<'a, 'b, 'c, 'info, T>
impl<'a, 'b, 'c, 'info, T> Unpin for Context<'a, 'b, 'c, 'info, T>where <T as Bumps>::Bumps: Unpin,
impl<'a, 'b, 'c, 'info, T> !UnwindSafe for Context<'a, 'b, 'c, 'info, T>
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
Mutably borrows from an owned value. Read more