mpl_token_auth_rules/state/v2/constraint/
pass.rs1use solana_program::msg;
2
3use crate::{
4 error::RuleSetError,
5 state::v2::{Constraint, ConstraintType, HEADER_SECTION},
6 state::{Header, RuleResult},
7};
8
9pub struct Pass;
11
12impl<'a> Pass {
13 pub fn from_bytes(_bytes: &'a [u8]) -> Result<Self, RuleSetError> {
15 Ok(Self {})
16 }
17
18 pub fn serialize() -> Result<Vec<u8>, RuleSetError> {
20 let mut data = Vec::with_capacity(HEADER_SECTION);
21 Header::serialize(ConstraintType::Pass, 0, &mut data);
23
24 Ok(data)
25 }
26}
27
28impl<'a> Constraint<'a> for Pass {
29 fn constraint_type(&self) -> ConstraintType {
30 ConstraintType::Pass
31 }
32
33 fn validate(
34 &self,
35 _accounts: &std::collections::HashMap<
36 solana_program::pubkey::Pubkey,
37 &solana_program::account_info::AccountInfo,
38 >,
39 _payload: &crate::payload::Payload,
40 _update_rule_state: bool,
41 _rule_set_state_pda: &Option<&solana_program::account_info::AccountInfo>,
42 _rule_authority: &Option<&solana_program::account_info::AccountInfo>,
43 ) -> RuleResult {
44 msg!("Validating Pass");
45 RuleResult::Success(self.constraint_type().to_error())
46 }
47}