Skip to main content

sss_token/utils/
feature_gate.rs

1use anchor_lang::prelude::*;
2
3use crate::errors::SssError;
4use crate::state::StablecoinConfig;
5
6pub fn require_blacklist_enabled(config: &StablecoinConfig) -> Result<()> {
7    require!(
8        config.enable_permanent_delegate,
9        SssError::BlacklistNotEnabled
10    );
11    Ok(())
12}
13
14pub fn require_transfer_hook_enabled(config: &StablecoinConfig) -> Result<()> {
15    require!(
16        config.enable_transfer_hook,
17        SssError::TransferHookNotEnabled
18    );
19    Ok(())
20}
21
22pub fn require_confidential_transfers_enabled(config: &StablecoinConfig) -> Result<()> {
23    require!(
24        config.enable_confidential_transfers,
25        SssError::ConfidentialTransfersNotEnabled
26    );
27    Ok(())
28}