pub struct ValidationContext<'a> {
pub program_id: &'a Address,
pub accounts: &'a [AccountView],
pub data: &'a [u8],
}Expand description
Context passed to each validation node.
Fields§
§program_id: &'a AddressThe program ID.
accounts: &'a [AccountView]All accounts in the instruction.
data: &'a [u8]Instruction data.
Implementations§
Source§impl<'a> ValidationContext<'a>
impl<'a> ValidationContext<'a>
Sourcepub fn new(
program_id: &'a Address,
accounts: &'a [AccountView],
data: &'a [u8],
) -> Self
pub fn new( program_id: &'a Address, accounts: &'a [AccountView], data: &'a [u8], ) -> Self
Create a new validation context.
Sourcepub fn account(&self, index: usize) -> Result<&'a AccountView, ProgramError>
pub fn account(&self, index: usize) -> Result<&'a AccountView, ProgramError>
Get an account by index.
Sourcepub fn require_all_unique_accounts(&self) -> ProgramResult
pub fn require_all_unique_accounts(&self) -> ProgramResult
Require all account addresses to be unique.
Sourcepub fn require_unique_writable_accounts(&self) -> ProgramResult
pub fn require_unique_writable_accounts(&self) -> ProgramResult
Require that duplicated addresses are never writable aliases.
Sourcepub fn require_unique_signer_accounts(&self) -> ProgramResult
pub fn require_unique_signer_accounts(&self) -> ProgramResult
Require that duplicated addresses are never used as signer aliases.
Auto Trait Implementations§
impl<'a> Freeze for ValidationContext<'a>
impl<'a> RefUnwindSafe for ValidationContext<'a>
impl<'a> Send for ValidationContext<'a>
impl<'a> Sync for ValidationContext<'a>
impl<'a> Unpin for ValidationContext<'a>
impl<'a> UnsafeUnpin for ValidationContext<'a>
impl<'a> UnwindSafe for ValidationContext<'a>
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