mod accreditation_service;
mod account_deletion_service;
#[cfg(test)]
mod account_deletion_service_tests;
mod apple_oauth_service;
mod apple_service;
mod audit_service;
mod authorization_service;
mod circuit_breaker;
mod comms_service;
mod credit_service;
mod credit_types;
mod deposit_credit_service;
mod deposit_fee_service;
mod deposit_service;
mod deposit_tiered_service;
mod email;
mod encrypted_payload;
mod encryption_service;
mod google_service;
mod hold_expiration_worker;
mod image_storage;
mod jupiter_swap_service;
mod jwt_service;
mod kyc_service;
pub(crate) mod kyc_stripe;
mod logging_service;
mod metrics_service;
mod mfa_attempt_service;
mod micro_batch_worker;
mod note_encryption_service;
mod notification_service;
pub mod oidc_service;
mod outbox_worker;
mod password_service;
pub mod payout_transfer;
mod policy_service;
mod privacy_sidecar_client;
mod referral_payout_worker;
pub(crate) mod referral_reward_service;
mod sanctions_service;
mod settings_service;
mod sidecar_types;
mod signup_gating_service;
mod sol_price_service;
mod solana_service;
mod step_up_service;
mod token_gating_service;
mod totp_service;
mod wallet_signing_service;
mod wallet_unlock_cache;
pub mod webauthn_service;
mod withdrawal_worker;
pub use accreditation_service::{
AccreditationService, AccreditationStatusResponse, SubmitAccreditationData,
SubmitAccreditationResponse,
};
pub use account_deletion_service::{delete_account, AccountDeletionOutcome};
pub use apple_oauth_service::{
exchange_and_encrypt_refresh_token, extract_apple_refresh_token_metadata,
revoke_encrypted_refresh_token, sync_apple_credential,
verify_apple_id_token_for_allowed_clients,
VerifiedAppleToken,
};
pub use apple_service::{AppleService, AppleTokenClaims};
pub use audit_service::AuditService;
pub use authorization_service::{
AuthContext, AuthorizationResult, AuthorizationService, Permission,
};
pub use comms_service::CommsService;
pub use credit_service::{
AdjustResult, CreditBalance, CreditHistory, CreditHistoryItem, CreditService, HoldResult,
SpendResult,
};
pub use deposit_credit_service::{CreditParams, CreditResult, DepositCreditService};
pub use deposit_fee_service::{CalculatedFees, DepositFeeService, FeeConfig, FeePolicy};
pub use deposit_service::{DepositResult, DepositService};
pub use deposit_tiered_service::{
execute_admin_withdrawal, MicroDepositResult, PublicDepositResult, TieredDepositService,
};
pub use email::{
AccountDeletionEmailData, Email, EmailService, EmailType, InstantLinkEmailData,
InviteEmailData, LogEmailService, NoopEmailService, PasswordResetEmailData,
PostmarkEmailService, SecurityAlertEmailData, VerificationEmailData,
};
pub(crate) use encrypted_payload::decrypt_base64_payload;
pub use encryption_service::EncryptionService;
pub use google_service::{GoogleService, GoogleTokenClaims};
pub use hold_expiration_worker::{HoldExpirationConfig, HoldExpirationWorker};
pub use image_storage::{ImageStorageService, S3ImageStorageConfig, S3ImageStorageService};
pub use jupiter_swap_service::{
ExecuteResult as JupiterExecuteResult, JupiterSwapService, OrderParams as JupiterOrderParams,
SwapOrder as JupiterSwapOrder,
};
pub use jwt_service::{AccessTokenClaims, JwtService, TokenContext};
pub use kyc_service::{KycService, KycStartResponse, KycStatusResponse};
pub use logging_service::{init_logging, LogLevel, LoggingService};
pub use metrics_service::{
get_prometheus_handle, init_metrics, record_auth_duration, record_auth_failure,
record_auth_success, record_credits_spent, record_deposit, record_error, record_http_request,
record_rate_limit_hit, record_session_created, record_session_revoked, record_user_registered,
record_withdrawal, render_metrics, set_active_sessions, set_total_users,
};
pub use mfa_attempt_service::MfaAttemptService;
pub use micro_batch_worker::MicroBatchWorker;
pub use note_encryption_service::{
EncryptedNote, NoteEncryptionService, NONCE_SIZE as NOTE_NONCE_SIZE,
};
pub use notification_service::{
AdminNotification, DiscordNotificationService, LogNotificationService, NoopNotificationService,
NotificationService, NotificationSeverity, TelegramNotificationService,
};
pub use oidc_service::OidcService;
pub use outbox_worker::{OutboxWorker, OutboxWorkerConfig};
pub use password_service::{PasswordRules, PasswordService};
pub use policy_service::{PolicyContext, PolicyEvaluationResult, PolicyService};
pub use privacy_sidecar_client::{
BalanceResponse as SidecarBalanceResponse, DepositResponse as SidecarDepositResponse,
PrivacySidecarClient, SidecarClientConfig, WithdrawResponse as SidecarWithdrawResponse,
};
pub use referral_payout_worker::ReferralPayoutWorker;
pub use sanctions_service::{SanctionsService, SanctionsStats};
pub use settings_service::SettingsService;
pub(crate) use signup_gating_service::period_start;
pub use signup_gating_service::{SignupGateResult, SignupGatingService};
pub use sol_price_service::SolPriceService;
pub use solana_service::SolanaService;
pub use step_up_service::{StepUpService, DEFAULT_STEP_UP_MAX_AGE_SECS};
pub use token_gating_service::{TokenGateRule, TokenGatingService};
pub use totp_service::TotpService;
pub(crate) use wallet_signing_service::derive_pubkey_from_seed;
pub use wallet_signing_service::{
derive_child_seed_from_bytes, derive_pubkey_at_index,
UnlockCredential as WalletUnlockCredential, WalletSigningService,
};
pub use wallet_unlock_cache::{
create_wallet_unlock_cache, WalletUnlockCache, WalletUnlockCacheConfig,
};
pub use webauthn_service::WebAuthnService;
pub use withdrawal_worker::{WithdrawalWorker, WithdrawalWorkerConfig};