Skip to main content

sss_token/
lib.rs

1#![allow(unexpected_cfgs, ambiguous_glob_reexports, deprecated)]
2
3use anchor_lang::prelude::*;
4#[cfg(not(feature = "no-entrypoint"))]
5use solana_security_txt::security_txt;
6
7pub mod errors;
8pub mod events;
9pub mod instructions;
10pub mod state;
11pub mod utils;
12
13use instructions::*;
14
15declare_id!("5ZBiFxX4ggWfNR5VhAQDRZauG6CvG84puS4SQiH8BcL4");
16
17#[cfg(not(feature = "no-entrypoint"))]
18security_txt! {
19    name: "SSS Token",
20    project_url: "https://github.com/solanabr/solana-stablecoin-standard",
21    contacts: "link:https://github.com/solanabr/solana-stablecoin-standard/issues",
22    policy: "https://github.com/solanabr/solana-stablecoin-standard/blob/main/SECURITY.md",
23    source_code: "https://github.com/solanabr/solana-stablecoin-standard",
24    auditors: "N/A"
25}
26
27#[program]
28pub mod sss_token {
29    use super::*;
30
31    pub fn initialize(ctx: Context<Initialize>, params: InitializeParams) -> Result<()> {
32        instructions::initialize::handler(ctx, params)
33    }
34
35    pub fn mint_tokens(ctx: Context<MintTokens>, amount: u64) -> Result<()> {
36        instructions::mint::handler(ctx, amount)
37    }
38
39    pub fn burn_tokens(ctx: Context<BurnTokens>, amount: u64) -> Result<()> {
40        instructions::burn::handler(ctx, amount)
41    }
42
43    pub fn freeze_account(ctx: Context<FreezeTokenAccount>) -> Result<()> {
44        instructions::freeze::handler(ctx)
45    }
46
47    pub fn thaw_account(ctx: Context<ThawTokenAccount>) -> Result<()> {
48        instructions::thaw::handler(ctx)
49    }
50
51    pub fn pause(ctx: Context<Pause>) -> Result<()> {
52        instructions::pause::handler(ctx)
53    }
54
55    pub fn unpause(ctx: Context<Unpause>) -> Result<()> {
56        instructions::unpause::handler(ctx)
57    }
58
59    pub fn update_roles(ctx: Context<UpdateRoles>, params: UpdateRoleParams) -> Result<()> {
60        instructions::update_roles::handler(ctx, params)
61    }
62
63    pub fn update_minter(ctx: Context<UpdateMinter>, params: UpdateMinterParams) -> Result<()> {
64        instructions::update_minter::handler(ctx, params)
65    }
66
67    pub fn transfer_authority(ctx: Context<TransferAuthority>) -> Result<()> {
68        instructions::transfer_authority::handler(ctx)
69    }
70
71    pub fn nominate_authority(
72        ctx: Context<NominateAuthority>,
73        nominated_authority: Pubkey,
74    ) -> Result<()> {
75        instructions::nominate_authority::handler(ctx, nominated_authority)
76    }
77
78    pub fn accept_authority(ctx: Context<AcceptAuthority>) -> Result<()> {
79        instructions::accept_authority::handler(ctx)
80    }
81
82    pub fn blacklist_add(ctx: Context<BlacklistAdd>, params: BlacklistAddParams) -> Result<()> {
83        instructions::blacklist_add::handler(ctx, params)
84    }
85
86    pub fn blacklist_remove(ctx: Context<BlacklistRemove>) -> Result<()> {
87        instructions::blacklist_remove::handler(ctx)
88    }
89
90    pub fn allowlist_add(ctx: Context<AllowlistAdd>, params: AllowlistAddParams) -> Result<()> {
91        instructions::allowlist_add::handler(ctx, params)
92    }
93
94    pub fn allowlist_remove(ctx: Context<AllowlistRemove>) -> Result<()> {
95        instructions::allowlist_remove::handler(ctx)
96    }
97
98    pub fn seize(ctx: Context<Seize>, amount: u64) -> Result<()> {
99        instructions::seize::handler(ctx, amount)
100    }
101
102    pub fn set_supply_cap(ctx: Context<SetSupplyCap>, new_cap: u64) -> Result<()> {
103        instructions::set_supply_cap::handler(ctx, new_cap)
104    }
105
106    pub fn update_metadata(
107        ctx: Context<UpdateMetadata>,
108        params: UpdateMetadataParams,
109    ) -> Result<()> {
110        instructions::update_metadata::handler(ctx, params)
111    }
112
113    pub fn attest_reserve(ctx: Context<AttestReserve>, params: AttestReserveParams) -> Result<()> {
114        instructions::attest_reserve::handler(ctx, params)
115    }
116}