feat: Add zap command for sending Bitcoin Lightning tips

- Implemented the `zap` command in the CLI to allow users to send sats to a user, event, or snippet using a NIP-60 wallet.
- Created a new `zap.ts` file to handle the command logic and integrated it into the MCP server.
- Added wallet balance command to check the balance of a user's wallet.
- Enhanced the MCP server to register the new zap command and wallet balance command.
- Introduced caching for wallets to optimize performance and reduce redundant network requests.
- Updated database schema to include snippets table for storing code snippets.
- Improved logging functionality for better debugging and tracking of operations.
- Added functionality to save snippets to the database upon retrieval.
- Updated project overview documentation to reflect new features and structure.
- Refactored existing commands and logic for better modularity and maintainability.
This commit is contained in:
pablof7z
2025-04-08 18:10:16 +01:00
parent f74736191a
commit 10fbca0824
19 changed files with 723 additions and 35 deletions

6
ndk.ts
View File

@@ -22,9 +22,7 @@ export async function initNDK(config: ConfigData) {
let signer: NDKSigner;
if (config.privateKey) {
signer = new NDKPrivateKeySigner(config.privateKey);
} else if (config.bunker) {
if (config.bunker) {
let localSigner: NDKPrivateKeySigner;
if (config.bunkerLocalKey) {
localSigner = new NDKPrivateKeySigner(config.bunkerLocalKey);
@@ -38,6 +36,8 @@ export async function initNDK(config: ConfigData) {
signer = new NDKNip46Signer(ndk, config.bunker, localSigner);
await signer.blockUntilReady();
} else if (config.privateKey) {
signer = new NDKPrivateKeySigner(config.privateKey);
} else {
throw new Error("No private key or bunker provided");
}