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