sss-token 1.0.3

Solana Stablecoin Standard - Token Program with blacklist, seize, freeze, and GENIUS Act compliance
Documentation
use anchor_lang::prelude::*;

#[event]
pub struct StablecoinInitialized {
    pub config: Pubkey,
    pub mint: Pubkey,
    pub master_authority: Pubkey,
    pub name: String,
    pub symbol: String,
    pub preset: u8,
    pub timestamp: i64,
}

#[event]
pub struct TokensMinted {
    pub config: Pubkey,
    pub minter: Pubkey,
    pub recipient: Pubkey,
    pub amount: u64,
    pub total_minted: u64,
    pub timestamp: i64,
}

#[event]
pub struct TokensBurned {
    pub config: Pubkey,
    pub burner: Pubkey,
    pub from: Pubkey,
    pub amount: u64,
    pub total_burned: u64,
    pub timestamp: i64,
}

#[event]
pub struct AccountFrozen {
    pub config: Pubkey,
    pub authority: Pubkey,
    pub target_account: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct AccountThawed {
    pub config: Pubkey,
    pub authority: Pubkey,
    pub target_account: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct ProgramPaused {
    pub config: Pubkey,
    pub pauser: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct ProgramUnpaused {
    pub config: Pubkey,
    pub pauser: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct RoleUpdated {
    pub config: Pubkey,
    pub role: String,
    pub old_holder: Pubkey,
    pub new_holder: Pubkey,
    pub updated_by: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct MinterUpdated {
    pub config: Pubkey,
    pub minter: Pubkey,
    pub is_active: bool,
    pub mint_quota: u64,
    pub updated_by: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct AuthorityTransferred {
    pub config: Pubkey,
    pub old_authority: Pubkey,
    pub new_authority: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct AuthorityNominated {
    pub config: Pubkey,
    pub old_authority: Pubkey,
    pub nominated_authority: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct BlacklistAdded {
    pub config: Pubkey,
    pub blocked_address: Pubkey,
    pub reason: String,
    pub blacklisted_by: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct BlacklistRemoved {
    pub config: Pubkey,
    pub unblocked_address: Pubkey,
    pub removed_by: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct AllowlistAdded {
    pub config: Pubkey,
    pub address: Pubkey,
    pub added_by: Pubkey,
    pub reason: String,
    pub timestamp: i64,
}

#[event]
pub struct AllowlistRemoved {
    pub config: Pubkey,
    pub address: Pubkey,
    pub removed_by: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct TokensSeized {
    pub config: Pubkey,
    pub from: Pubkey,
    pub amount: u64,
    pub seized_by: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct AuditLogRecorded {
    pub config: Pubkey,
    pub index: u64,
    pub action: u8,
    pub actor: Pubkey,
    pub timestamp: i64,
}

#[event]
pub struct SupplyCapUpdated {
    pub config: Pubkey,
    pub old_cap: u64,
    pub new_cap: u64,
    pub timestamp: i64,
}

#[event]
pub struct MetadataUpdated {
    pub config: Pubkey,
    pub timestamp: i64,
}