pub struct PDAMatch<'a> {
pub program: &'a Pubkey,
pub pda_field: &'a Str32,
pub seeds_field: &'a Str32,
}Expand description
Constraint representing a test where a resulting PDA derivation of seeds must prove the account is a PDA.
This constraint requires PayloadType values of PayloadType::Seeds. The field values
in the Rule are used to locate them in the Payload. The seeds in the Payload and the
program ID stored in the Rule are used to derive the PDA from the Payload.
Fields§
§program: &'a PubkeyThe program used for the PDA derivation. If a zeroed (default) pubkey is used then the account owner is used.
pda_field: &'a Str32The field in the Payload to be compared when looking for the PDA.
seeds_field: &'a Str32The field in the Payload to be compared when looking for the seeds.
Implementations§
Source§impl<'a> PDAMatch<'a>
impl<'a> PDAMatch<'a>
Sourcepub fn from_bytes(bytes: &'a [u8]) -> Result<Self, RuleSetError>
pub fn from_bytes(bytes: &'a [u8]) -> Result<Self, RuleSetError>
Deserialize a constraint from a byte array.
Trait Implementations§
Source§impl<'a> Constraint<'a> for PDAMatch<'a>
impl<'a> Constraint<'a> for PDAMatch<'a>
Source§fn constraint_type(&self) -> ConstraintType
fn constraint_type(&self) -> ConstraintType
Returns the type of the constraint.
Source§fn validate(
&self,
accounts: &HashMap<Pubkey, &AccountInfo<'_>>,
payload: &Payload,
_update_rule_state: bool,
_rule_set_state_pda: &Option<&AccountInfo<'_>>,
_rule_authority: &Option<&AccountInfo<'_>>,
) -> RuleResult
fn validate( &self, accounts: &HashMap<Pubkey, &AccountInfo<'_>>, payload: &Payload, _update_rule_state: bool, _rule_set_state_pda: &Option<&AccountInfo<'_>>, _rule_authority: &Option<&AccountInfo<'_>>, ) -> RuleResult
Validates the constraint condition.
Auto Trait Implementations§
impl<'a> Freeze for PDAMatch<'a>
impl<'a> RefUnwindSafe for PDAMatch<'a>
impl<'a> Send for PDAMatch<'a>
impl<'a> Sync for PDAMatch<'a>
impl<'a> Unpin for PDAMatch<'a>
impl<'a> UnwindSafe for PDAMatch<'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
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