quarry_operator/
account_validators.rs

1//! Validators for Quarry operator accounts.
2
3use crate::*;
4
5impl<'info> Validate<'info> for SetRole<'info> {
6    fn validate(&self) -> Result<()> {
7        assert_keys_eq!(self.operator.admin, self.admin, Unauthorized);
8        Ok(())
9    }
10}
11
12impl<'info> Validate<'info> for DelegateSetAnnualRewards<'info> {
13    fn validate(&self) -> Result<()> {
14        assert_keys_eq!(
15            self.with_delegate.operator.rate_setter,
16            self.with_delegate.delegate,
17            Unauthorized
18        );
19        self.with_delegate.validate()?;
20        Ok(())
21    }
22}
23
24impl<'info> Validate<'info> for DelegateSetRewardsShare<'info> {
25    fn validate(&self) -> Result<()> {
26        assert_keys_eq!(
27            self.quarry.rewarder,
28            self.with_delegate.rewarder,
29            Unauthorized
30        );
31        assert_keys_eq!(
32            self.with_delegate.operator.share_allocator,
33            self.with_delegate.delegate,
34            Unauthorized
35        );
36        self.with_delegate.validate()?;
37        Ok(())
38    }
39}
40
41impl<'info> Validate<'info> for DelegateSetFamine<'info> {
42    fn validate(&self) -> Result<()> {
43        assert_keys_eq!(
44            self.quarry.rewarder,
45            self.with_delegate.rewarder,
46            Unauthorized
47        );
48        assert_keys_eq!(
49            self.with_delegate.operator.share_allocator,
50            self.with_delegate.delegate,
51            Unauthorized
52        );
53        self.with_delegate.validate()?;
54        Ok(())
55    }
56}
57
58impl<'info> Validate<'info> for WithDelegate<'info> {
59    fn validate(&self) -> Result<()> {
60        assert_keys_eq!(self.operator.rewarder, self.rewarder);
61        assert_keys_eq!(self.operator, self.rewarder.authority);
62        Ok(())
63    }
64}