// AutistMask popup entry point. // Loads state, initializes views, triggers first render. const { DEBUG } = require("../shared/wallet"); const { state, saveState, loadState } = require("../shared/state"); const { refreshPrices } = require("../shared/prices"); const { refreshBalances } = require("../shared/balances"); const { showView } = require("./views/helpers"); const home = require("./views/home"); const welcome = require("./views/welcome"); const addWallet = require("./views/addWallet"); const importKey = require("./views/importKey"); const addressDetail = require("./views/addressDetail"); const send = require("./views/send"); const receive = require("./views/receive"); const addToken = require("./views/addToken"); const settings = require("./views/settings"); const approval = require("./views/approval"); function renderWalletList() { home.render(ctx); } async function doRefreshAndRender() { await Promise.all([ refreshPrices(), refreshBalances(state.wallets, state.trackedTokens, state.rpcUrl), ]); await saveState(); renderWalletList(); } const ctx = { renderWalletList, doRefreshAndRender, showAddWalletView: () => addWallet.show(), showImportKeyView: () => importKey.show(), showAddressDetail: () => addressDetail.show(), showAddTokenView: () => addToken.show(), }; async function init() { if (DEBUG) { const banner = document.createElement("div"); banner.id = "debug-banner"; banner.textContent = "DEBUG / INSECURE"; banner.style.cssText = "background:#c00;color:#fff;text-align:center;font-size:10px;padding:1px 0;font-family:monospace;position:sticky;top:0;z-index:9999;"; document.body.prepend(banner); } await loadState(); // Initialize all view event handlers welcome.init(ctx); addWallet.init(ctx); importKey.init(ctx); home.init(ctx); addressDetail.init(ctx); send.init(ctx); receive.init(ctx); addToken.init(ctx); settings.init(ctx); approval.init(ctx); if (!state.hasWallet) { showView("welcome"); } else { renderWalletList(); showView("main"); doRefreshAndRender(); } } document.addEventListener("DOMContentLoaded", init);