From 6e2480d2a052ec5cfed0aeceae51e28dc44804e3 Mon Sep 17 00:00:00 2001 From: Alex Perry Date: Mon, 27 Jan 2025 16:55:28 +0100 Subject: [PATCH] feat: rename stuff --- .../monitor-confirmations.ts | 10 ------ src/background/alarms/transaction-monitor.ts | 33 +++++++++++++------ src/background/background.ts | 3 ++ 3 files changed, 26 insertions(+), 20 deletions(-) delete mode 100644 src/app/common/monitor-confirmations/monitor-confirmations.ts diff --git a/src/app/common/monitor-confirmations/monitor-confirmations.ts b/src/app/common/monitor-confirmations/monitor-confirmations.ts deleted file mode 100644 index a8e3c57b538..00000000000 --- a/src/app/common/monitor-confirmations/monitor-confirmations.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { SupportedBlockchains } from '@leather.io/models'; - -const monitoredTxs: PendingConfirmation[] = []; - -export interface PendingConfirmation { - chain: SupportedBlockchains; - txid: string; -} - -function monitorConfirmation(txid: string) {} diff --git a/src/background/alarms/transaction-monitor.ts b/src/background/alarms/transaction-monitor.ts index e4d68ab9ffa..a7b59bde3ef 100644 --- a/src/background/alarms/transaction-monitor.ts +++ b/src/background/alarms/transaction-monitor.ts @@ -1,32 +1,45 @@ -import type { PendingConfirmation } from '@app/common/monitor-confirmations/monitor-confirmations'; +/* eslint-disable no-console */ +import { z } from 'zod'; -export async function monitorTransactions() { - const alarm = await chrome.alarms.get('transaction-monitor'); +import { supportedBlockchains } from '@leather.io/models'; + +export const pendingConfirmationSchema = z.object({ + chain: z.enum(supportedBlockchains), + txid: z.string(), +}); + +export type PendingConfirmation = z.infer; + +const pendingConfirmationsAlarm = 'pending-confirmation-alarm'; +const PENDING_CONFIRMATIONS_STORE = 'pendingConfirmations'; + +export async function monitorPendingConfirmations() { + console.log('monitoring confirmations'); + const alarm = await chrome.alarms.get(pendingConfirmationsAlarm); if (!alarm) { - await chrome.alarms.create('transaction-monitor', { + console.log('starting pending confirmation alarm'); + await chrome.alarms.create(pendingConfirmationsAlarm, { periodInMinutes: 0.05, }); } } -const MONITORED_TXNS_KEY = 'monitoredTransactions'; - interface PendingConfirmationStore { pendingConfirmations: PendingConfirmation[]; } -export async function readTransactionStore() { +export async function readPendingConfirmationsStore() { const { pendingConfirmations = [] } = chrome.storage.local.get( - MONITORED_TXNS_KEY + PENDING_CONFIRMATIONS_STORE ) as unknown as PendingConfirmationStore; return pendingConfirmations; } export async function writeTransaction(pendingConfirmation: PendingConfirmation) { - const exisitingPendingConfirmations = await readTransactionStore(); + const exisitingPendingConfirmations = await readPendingConfirmationsStore(); return await chrome.storage.local.set({ - [MONITORED_TXNS_KEY]: [pendingConfirmation, ...exisitingPendingConfirmations], + [PENDING_CONFIRMATIONS_STORE]: [pendingConfirmation, ...exisitingPendingConfirmations], }); } diff --git a/src/background/background.ts b/src/background/background.ts index 81e9d6ec221..9834774d033 100755 --- a/src/background/background.ts +++ b/src/background/background.ts @@ -6,6 +6,7 @@ import { CONTENT_SCRIPT_PORT, type LegacyMessageFromContentScript } from '@share import { WalletRequests } from '@shared/rpc/rpc-methods'; import { warnUsersAboutDevToolsDangers } from '@shared/utils/dev-tools-warning-log'; +import { monitorPendingConfirmations } from './alarms/transaction-monitor'; import { initContextMenuActions } from './init-context-menus'; import { internalBackgroundMessageHandler } from './messaging/internal-methods/message-handler'; import { @@ -59,3 +60,5 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { // Listener fn must return `true` to indicate the response will be async return true; }); + +monitorPendingConfirmations();