mirror of
https://github.com/aljazceru/mcp-code.git
synced 2025-12-17 12:45:28 +01:00
- 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.
35 lines
1.5 KiB
TypeScript
35 lines
1.5 KiB
TypeScript
import { Command } from "commander";
|
|
import { sendZap } from "../logic/zap.js";
|
|
|
|
/**
|
|
* Register the zap command with the Commander program
|
|
* @param program The Commander program instance
|
|
*/
|
|
export function registerZapCommand(program: Command) {
|
|
program
|
|
.command("zap")
|
|
.description("Send sats to a user, event, or snippet using a NIP-60 wallet")
|
|
.requiredOption("-a, --amount <amount>", "Amount in sats to send", Number.parseInt)
|
|
.option("-r, --recipient <recipient>", "Recipient (username, npub, or pubkey) to zap directly")
|
|
.option("-e, --event-id <eventId>", "Event ID to zap")
|
|
.option("-t, --title <title>", "Snippet title to look up and zap")
|
|
.option("-m, --message <message>", "Thank you message to include with the zap")
|
|
.option("-u, --username <username>", "Username to zap from (uses wallet associated with this user)")
|
|
.action(async (options) => {
|
|
try {
|
|
const result = await sendZap(
|
|
options.amount,
|
|
options.recipient,
|
|
options.eventId,
|
|
options.title,
|
|
options.message,
|
|
options.username
|
|
);
|
|
const message = result?.content?.[0]?.text;
|
|
console.log(message || "Zap sent successfully!");
|
|
} catch (error) {
|
|
console.error(error instanceof Error ? error.message : String(error));
|
|
process.exit(1);
|
|
}
|
|
});
|
|
} |