From a2217b75c2f9dbcf7e20e156d4df795f317a749e Mon Sep 17 00:00:00 2001 From: AzizbekFayziyev Date: Sun, 29 Mar 2026 18:36:03 +0500 Subject: [PATCH 1/2] fix: handle wallet locked/offline state --- public/images/zano_128px.png | Bin 9431 -> 0 bytes public/images/zano_16px.png | Bin 654 -> 0 bytes public/images/zano_48px.png | Bin 2107 -> 0 bytes public/index.html | 16 ------------ public/manifest.json | 38 ----------------------------- public/robots.txt | 3 --- src/app/utils/permission.ts | 25 +++++++++++++++---- src/app/utils/preprocessRequest.ts | 22 +++++++++++++++++ src/app/utils/utils.ts | 7 ++++++ src/background/background.ts | 14 ++++++----- src/constants/index.ts | 4 ++- 11 files changed, 60 insertions(+), 69 deletions(-) delete mode 100644 public/images/zano_128px.png delete mode 100644 public/images/zano_16px.png delete mode 100644 public/images/zano_48px.png delete mode 100644 public/index.html delete mode 100644 public/manifest.json delete mode 100644 public/robots.txt create mode 100644 src/app/utils/preprocessRequest.ts diff --git a/public/images/zano_128px.png b/public/images/zano_128px.png deleted file mode 100644 index f840b1e553343913f961cafa310edbfb07120d84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9431 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 %)s*0SEC+0A)bkKWz?!-P#8~GVlTk$NP+eoF% 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 diff --git a/public/images/zano_48px.png b/public/images/zano_48px.png deleted file mode 100644 index 13f073e8776a99f0bf1eaca01b598b93589db1f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2107 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 diff --git a/public/index.html b/public/index.html deleted file mode 100644 index f5b8228..0000000 --- a/public/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - Zano extension - - - -
- - diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index 9b1c633..0000000 --- a/public/manifest.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "manifest_version": 3, - "name": "Zano Companion", - "version": "1.1.10", - "description": "A browser extension for Zano wallet app", - "permissions": ["storage", "network"], - "content_security_policy": { - "extension_pages": "script-src 'self'; object-src 'self'; connect-src 'self' http://localhost:* https://api.coingecko.com https://api.zano.org https://explorer.zano.org;" - }, - "action": { - "default_popup": "index.html", - "default_icon": { - "16": "images/zano_16px.png", - "48": "images/zano_48px.png", - "128": "images/zano_128px.png" - } - }, - "background": { - "service_worker": "static/js/background.bundle.js" - }, - "content_scripts": [ - { - "matches": [""], - "js": ["static/js/content.bundle.js"] - }, - { - "world": "MAIN", - "js": ["static/js/inject.bundle.js"], - "matches": [""], - "run_at": "document_start" - } - ], - "icons": { - "16": "images/zano_16px.png", - "48": "images/zano_48px.png", - "128": "images/zano_128px.png" - } -} diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index e9e57dc..0000000 --- a/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/src/app/utils/permission.ts b/src/app/utils/permission.ts index c40dd5a..36004ee 100644 --- a/src/app/utils/permission.ts +++ b/src/app/utils/permission.ts @@ -1,7 +1,7 @@ import { getWalletData } from '../../background/wallet'; -import { METHOD_EXTRA_PERMISSIONS, PUBLIC_METHODS } from '../../constants'; +import { METHOD_EXTRA_PERMISSIONS, PERMISSION_PUBLIC_METHODS } from '../../constants'; import { PermissionType, RequestType, Sender, SendResponse } from '../../types'; -import { normalizeOrigin } from './utils'; +import { normalizeOrigin, raceTimeout } from './utils'; export async function getPermissions(origin: string, address: string): Promise { const stored = await chrome.storage.local.get('permissions'); @@ -21,7 +21,7 @@ export async function permissionMiddleware( ): Promise { const isFromExtensionFrontend = sender.url && sender.url.includes(chrome.runtime.getURL('/')); - if (PUBLIC_METHODS.includes(request.method) || isFromExtensionFrontend) return true; + if (PERMISSION_PUBLIC_METHODS.includes(request.method) || isFromExtensionFrontend) return true; if (!sender.origin && !sender.url) { sendResponse({ error: 'Unknown origin' }); @@ -30,8 +30,23 @@ export async function permissionMiddleware( const origin = normalizeOrigin(sender.origin || new URL(sender.url!).origin); - const wallet = await getWalletData(); - const { address } = wallet; + let address; + + try { + const wallet = await raceTimeout(getWalletData()); + + if (wallet?.address) { + address = wallet.address; + } + } catch { + sendResponse({ error: 'Wallet is offline!' }); + return false; + } + + if (!address) { + sendResponse({ error: 'Wallet is offline!' }); + return false; + } const perms = await getPermissions(origin, address); diff --git a/src/app/utils/preprocessRequest.ts b/src/app/utils/preprocessRequest.ts new file mode 100644 index 0000000..08f5a55 --- /dev/null +++ b/src/app/utils/preprocessRequest.ts @@ -0,0 +1,22 @@ +import { getUserData } from '../../background/background'; +import { RequestType, Sender, SendResponse } from '../../types'; +import { permissionMiddleware } from './permission'; + +async function preprocessRequest( + request: RequestType, + sender: Sender, + sendResponse: SendResponse, +): Promise { + const userData = await getUserData(); + if (!userData.password) { + sendResponse({ error: 'Wallet is locked!' }); + return false; + } + + const allowed = await permissionMiddleware(request, sender, sendResponse); + if (!allowed) return false; + + return true; +} + +export default preprocessRequest; diff --git a/src/app/utils/utils.ts b/src/app/utils/utils.ts index b9692ae..d5dab0e 100644 --- a/src/app/utils/utils.ts +++ b/src/app/utils/utils.ts @@ -91,3 +91,10 @@ export function normalizeOrigin(origin: string) { return origin; } } + +export function raceTimeout(promise: Promise, ms = 2500): Promise { + return Promise.race([ + promise, + new Promise((_, reject) => setTimeout(() => reject(new Error('TIMEOUT')), ms)), + ]); +} diff --git a/src/background/background.ts b/src/background/background.ts index 2a80419..ffa0e85 100644 --- a/src/background/background.ts +++ b/src/background/background.ts @@ -1,5 +1,5 @@ import JSONbig from 'json-bigint'; -import { SELF_ONLY_REQUESTS, ZANO_ASSET_ID } from '../constants'; +import { SELF_ONLY_REQUESTS, SYSTEM_PUBLIC_METHODS, ZANO_ASSET_ID } from '../constants'; import { AccessRequestType, BurnAssetDataType, @@ -31,7 +31,8 @@ import { getAliasByAddress, } from './wallet'; import { normalizeOrigin, truncateToDecimals } from '../app/utils/utils'; -import { getPermissions, hasPermission, permissionMiddleware } from '../app/utils/permission'; +import { getPermissions, hasPermission } from '../app/utils/permission'; +import preprocessRequest from '../app/utils/preprocessRequest'; const POPUP_HEIGHT = 630; const POPUP_WIDTH = 370; @@ -213,7 +214,7 @@ async function setUserData(state: UserData): Promise { }); } -async function getUserData(): Promise { +export async function getUserData(): Promise { return new Promise((resolve) => { chrome.storage.local.get('userData', (result) => { resolve(result.userData || defaultUserData); @@ -274,9 +275,10 @@ const accessReqs: AccessRequestType[] = []; const accessReqFinalizers: Record void> = {}; async function processRequest(request: RequestType, sender: Sender, sendResponse: SendResponse) { - const allowed = await permissionMiddleware(request, sender, sendResponse); // check permission access - - if (!allowed) return; + if (!SYSTEM_PUBLIC_METHODS.includes(request.method)) { + const ok = await preprocessRequest(request, sender, sendResponse); + if (!ok) return; + } const isFromExtensionFrontend = sender.url && sender.url.includes(chrome.runtime.getURL('/')); diff --git a/src/constants/index.ts b/src/constants/index.ts index b80944f..8a99acd 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -39,4 +39,6 @@ export const METHOD_EXTRA_PERMISSIONS: Record = { GET_WALLET_BALANCE: ['balance'], }; -export const PUBLIC_METHODS = ['REQUEST_ACCESS']; +export const PERMISSION_PUBLIC_METHODS = ['REQUEST_ACCESS']; + +export const SYSTEM_PUBLIC_METHODS = ['PING_WALLET', 'SET_PASSWORD', 'GET_PASSWORD']; From ba440c5da4e5318eeab0d981c557de65e828e5d2 Mon Sep 17 00:00:00 2001 From: AzizbekFayziyev Date: Sun, 29 Mar 2026 18:41:27 +0500 Subject: [PATCH 2/2] fix: restore public folder --- public/images/zano_128px.png | Bin 0 -> 9431 bytes public/images/zano_16px.png | Bin 0 -> 654 bytes public/images/zano_48px.png | Bin 0 -> 2107 bytes public/index.html | 16 +++++++++++++++ public/manifest.json | 38 +++++++++++++++++++++++++++++++++++ public/robots.txt | 3 +++ 6 files changed, 57 insertions(+) create mode 100644 public/images/zano_128px.png create mode 100644 public/images/zano_16px.png create mode 100644 public/images/zano_48px.png create mode 100644 public/index.html create mode 100644 public/manifest.json create mode 100644 public/robots.txt diff --git a/public/images/zano_128px.png b/public/images/zano_128px.png new file mode 100644 index 0000000000000000000000000000000000000000..f840b1e553343913f961cafa310edbfb07120d84 GIT binary patch literal 9431 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 %)s*0SEC+0A)bkKWz?!-P#8~GVlTk$NP+eoF% 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 literal 0 HcmV?d00001 diff --git a/public/images/zano_48px.png b/public/images/zano_48px.png new file mode 100644 index 0000000000000000000000000000000000000000..13f073e8776a99f0bf1eaca01b598b93589db1f8 GIT binary patch literal 2107 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 literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..f5b8228 --- /dev/null +++ b/public/index.html @@ -0,0 +1,16 @@ + + + + + + + + + + Zano extension + + + +
+ + diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..9b1c633 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,38 @@ +{ + "manifest_version": 3, + "name": "Zano Companion", + "version": "1.1.10", + "description": "A browser extension for Zano wallet app", + "permissions": ["storage", "network"], + "content_security_policy": { + "extension_pages": "script-src 'self'; object-src 'self'; connect-src 'self' http://localhost:* https://api.coingecko.com https://api.zano.org https://explorer.zano.org;" + }, + "action": { + "default_popup": "index.html", + "default_icon": { + "16": "images/zano_16px.png", + "48": "images/zano_48px.png", + "128": "images/zano_128px.png" + } + }, + "background": { + "service_worker": "static/js/background.bundle.js" + }, + "content_scripts": [ + { + "matches": [""], + "js": ["static/js/content.bundle.js"] + }, + { + "world": "MAIN", + "js": ["static/js/inject.bundle.js"], + "matches": [""], + "run_at": "document_start" + } + ], + "icons": { + "16": "images/zano_16px.png", + "48": "images/zano_48px.png", + "128": "images/zano_128px.png" + } +} diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: