Struct switchboard_solana::program_id::Context
pub struct Context<'a, 'b, 'c, 'info, T>where
T: Bumps,{
pub program_id: &'a Pubkey,
pub accounts: &'b mut T,
pub remaining_accounts: &'c [AccountInfo<'info>],
pub bumps: <T as Bumps>::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 as Bumps>::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> Freeze for Context<'a, 'b, 'c, 'info, T>where
<T as Bumps>::Bumps: Freeze,
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
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more