package com.bitcointxoko.gudariwallet.util object WalletConstants { // ── Unit conversion ─────────────────────────────────────────────────────── const val MSAT_PER_SAT = 1_000L // millisatoshis per satoshi // ── Polling ─────────────────────────────────────────────────────────────── const val POLL_INTERVAL_MS = 3_000L // delay between payment status checks const val POLL_MAX_ATTEMPTS = 200 // 200 × 3s = 10 minutes max // ── WebSocket reconnect ─────────────────────────────────────────────────── const val WS_INITIAL_BACKOFF_MS = 1_000L // first retry delay const val WS_MAX_BACKOFF_MS = 16_000L // cap — never wait longer than this const val WS_MAX_ATTEMPTS = 5 // give up after 5 failed reconnects // ── SharedPreferences ───────────────────────────────────────────────────── const val PREFS_NAME = "lnbits_prefs" const val PREFS_BASE_URL = "base_url" const val PREFS_INVOICE_KEY_ENC = "invoice_key_enc" const val PREFS_ADMIN_KEY_ENC = "admin_key_enc" const val PREFS_ONBOARDED = "onboarded" // ── Network ─────────────────────────────────────────────────────────────── const val CONNECT_TIMEOUT_S = 15L const val READ_TIMEOUT_S = 30L const val WRITE_TIMEOUT_S = 15L // ── WebSocket close ─────────────────────────────────────────────────────── const val WS_CLOSE_NORMAL = 1000 // ── History pagination ──────────────────────────────────────────────────── const val PAYMENTS_PAGE_SIZE = 20 // ── Alias cache ─────────────────────────────────────────────────────────── const val ALIAS_CACHE_TTL_MS = 3_600_000L // 1 hour — in-memory stale threshold const val ALIAS_PREFS_NAME = "alias_cache_prefs" const val ALIAS_PREFS_KEY = "alias_cache" const val ALIAS_PERSIST_TTL_MS = 86_400_000L // 24 hours — drop on load if older than this // ── Payments cache ──────────────────────────────────────────────────────── // const val PAYMENTS_PREFS_NAME = "payment_cache_prefs" // const val PAYMENTS_PREFS_KEY = "payment_list" // const val PAYMENTS_PREFS_SAVED_AT = "payment_list_saved_at" const val PAYMENTS_CACHE_TTL_MS = 300_000L // 5 minutes — show stale, refresh in background // ── Balance cache ───────────────────────────────────────────────────────── const val BALANCE_PREFS_NAME = "balance_cache_prefs" const val BALANCE_PREFS_KEY = "last_balance_sats" const val BALANCE_PREFS_SAVED_AT = "last_balance_saved_at" const val BALANCE_CACHE_TTL_MS = 3_600_000L // 1 hour // ── LNURL metadata cache ────────────────────────────────────────────────── const val LNURL_CACHE_PREFS_NAME = "lnurl_cache_prefs" const val LNURL_CACHE_PREFS_KEY = "lnurl_entries" const val LNURL_CACHE_TTL_MS = 3_600_000L // 1 hour }