Release v1.0.9 - Add wallet tab with Cashu and Lightning support
- Add wallet tab with NWC (Nostr Wallet Connect) Lightning support - Add Cashu ecash wallet with mint management, send/receive tokens - Add Cashu deposit feature (mint via Lightning invoice) - Add token viewer showing proof amounts and timestamps - Add refresh button with auto-refresh for spent proof detection - Add browser sync warning for Cashu users on welcome screen - Add Cashu onboarding info panel with storage considerations - Add settings page sync info note explaining how to change sync - Add backups page for vault snapshot management - Add About section to identity (You) page - Fix lint accessibility issues in wallet component Files modified: - projects/common/src/lib/services/nwc/* (new) - projects/common/src/lib/services/cashu/* (new) - projects/common/src/lib/services/storage/* (extended) - projects/chrome/src/app/components/home/wallet/* - projects/firefox/src/app/components/home/wallet/* - projects/chrome/src/app/components/welcome/* - projects/firefox/src/app/components/welcome/* - projects/chrome/src/app/components/home/settings/* - projects/firefox/src/app/components/home/settings/* - projects/chrome/src/app/components/home/identity/* - projects/firefox/src/app/components/home/identity/* - projects/chrome/src/app/components/home/backups/* (new) - projects/firefox/src/app/components/home/backups/* (new) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,17 @@ import {
|
||||
import { deletePermission } from './related/permission';
|
||||
import { createNewVault, deleteVault, unlockVault } from './related/vault';
|
||||
import { addRelay, deleteRelay, updateRelay } from './related/relay';
|
||||
import {
|
||||
addNwcConnection,
|
||||
deleteNwcConnection,
|
||||
updateNwcConnectionBalance,
|
||||
} from './related/nwc';
|
||||
import {
|
||||
addCashuMint,
|
||||
deleteCashuMint,
|
||||
updateCashuMintProofs,
|
||||
} from './related/cashu';
|
||||
import { CashuMint_DECRYPTED, CashuProof } from './types';
|
||||
|
||||
export interface StorageServiceConfig {
|
||||
browserSessionHandler: BrowserSessionHandler;
|
||||
@@ -176,6 +187,43 @@ export class StorageService {
|
||||
await updateRelay.call(this, relayClone);
|
||||
}
|
||||
|
||||
async addNwcConnection(data: {
|
||||
name: string;
|
||||
connectionUrl: string;
|
||||
}): Promise<void> {
|
||||
await addNwcConnection.call(this, data);
|
||||
}
|
||||
|
||||
async deleteNwcConnection(connectionId: string): Promise<void> {
|
||||
await deleteNwcConnection.call(this, connectionId);
|
||||
}
|
||||
|
||||
async updateNwcConnectionBalance(
|
||||
connectionId: string,
|
||||
balanceMillisats: number
|
||||
): Promise<void> {
|
||||
await updateNwcConnectionBalance.call(this, connectionId, balanceMillisats);
|
||||
}
|
||||
|
||||
async addCashuMint(data: {
|
||||
name: string;
|
||||
mintUrl: string;
|
||||
unit?: string;
|
||||
}): Promise<CashuMint_DECRYPTED> {
|
||||
return await addCashuMint.call(this, data);
|
||||
}
|
||||
|
||||
async deleteCashuMint(mintId: string): Promise<void> {
|
||||
await deleteCashuMint.call(this, mintId);
|
||||
}
|
||||
|
||||
async updateCashuMintProofs(
|
||||
mintId: string,
|
||||
proofs: CashuProof[]
|
||||
): Promise<void> {
|
||||
await updateCashuMintProofs.call(this, mintId, proofs);
|
||||
}
|
||||
|
||||
exportVault(): string {
|
||||
this.assureIsInitialized();
|
||||
const vaultJson = JSON.stringify(
|
||||
@@ -226,6 +274,17 @@ export class StorageService {
|
||||
return this.#signerMetaHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current browser sync flow setting.
|
||||
* Returns NO_SYNC if not initialized or no setting found.
|
||||
*/
|
||||
getSyncFlow(): BrowserSyncFlow {
|
||||
if (!this.isInitialized || !this.#signerMetaHandler?.signerMetaData) {
|
||||
return BrowserSyncFlow.NO_SYNC;
|
||||
}
|
||||
return this.#signerMetaHandler.signerMetaData.syncFlow ?? BrowserSyncFlow.NO_SYNC;
|
||||
}
|
||||
|
||||
/**
|
||||
* Throws an exception if the service is not initialized.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user