Skip to content

Commit

Permalink
feat: transaction monitor WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
camerow committed Jan 27, 2025
1 parent 59bd38a commit 1eb7c1e
Showing 3 changed files with 40 additions and 4 deletions.
4 changes: 2 additions & 2 deletions src/app/common/monitor-confirmations/monitor-confirmations.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { SupportedBlockchains } from '@leather.io/models';

const monitoredTxs: MonitoredConfirmation[] = [];
const monitoredTxs: PendingConfirmation[] = [];

Check failure on line 3 in src/app/common/monitor-confirmations/monitor-confirmations.ts

GitHub Actions / typecheck

'monitoredTxs' is declared but its value is never read.

export interface MonitoredConfirmation {
export interface PendingConfirmation {
chain: SupportedBlockchains;
txid: string;
}
35 changes: 35 additions & 0 deletions src/background/alarms/transaction-monitor.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import type { PendingConfirmation } from '@app/common/monitor-confirmations/monitor-confirmations';

async function monitorTransactions() {
const alarm = await chrome.alarms.get('transaction-monitor');

if (!alarm) {
await chrome.alarms.create('transaction-monitor', {
periodInMinutes: 0.05,
});
}
}

// eslint-disable-next-line no-console
monitorTransactions().catch(error => console.error(error));

const MONITORED_TXNS_KEY = 'monitoredTransactions';

interface PendingConfirmationStore {
pendingConfirmations: PendingConfirmation[];
}

export async function readTransactionStore() {
const { pendingConfirmations = [] } = chrome.storage.local.get(
MONITORED_TXNS_KEY
) as unknown as PendingConfirmationStore;

return pendingConfirmations;
}

export async function writeTransaction(pendingConfirmation: PendingConfirmation) {
const exisitingPendingConfirmations = await readTransactionStore();
return await chrome.storage.local.set({
[MONITORED_TXNS_KEY]: [pendingConfirmation, ...exisitingPendingConfirmations],
});
}
5 changes: 3 additions & 2 deletions src/shared/message-types.ts
Original file line number Diff line number Diff line change
@@ -6,9 +6,9 @@ import {
} from '@stacks/connect';
import { PublicProfile } from '@stacks/profile';

export const MESSAGE_SOURCE = 'stacks-wallet' as const;
export const MESSAGE_SOURCE = 'stacks-wallet';

export const CONTENT_SCRIPT_PORT = 'content-script' as const;
export const CONTENT_SCRIPT_PORT = 'content-script';

export enum ExternalMethods {
transactionRequest = 'hiroWalletTransactionRequest',
@@ -29,6 +29,7 @@ export enum InternalMethods {
RequestDerivedStxAccounts = 'RequestDerivedStxAccounts',
OriginatingTabClosed = 'OriginatingTabClosed',
AccountChanged = 'AccountChanged',
TransactionBroadcast = 'TransactionBroadcast',
}

export type ExtensionMethods = ExternalMethods | InternalMethods;

0 comments on commit 1eb7c1e

Please sign in to comment.