web-app/send_test_note.js
padreug 17a1504771 feat: Enhance logging in send_test_note.js for better debugging
- Add logging of the hex public key to provide more context during note sending.
- Include instructions for making a note an admin post by adding the hex pubkey to the .env file.
2025-07-02 19:29:19 +02:00

75 lines
No EOL
2.1 KiB
JavaScript

#!/usr/bin/env node
// Test script to send a Nostr note using nostr-tools
// Usage: node send_test_note.js <nsec> <relay_url> <message>
import { SimplePool, getPublicKey, finalizeEvent, nip19 } from 'nostr-tools'
async function sendTestNote(nsecInput, relayUrl, message) {
try {
// Parse the private key
let privateKey;
if (nsecInput.startsWith('nsec')) {
const decoded = nip19.decode(nsecInput);
privateKey = decoded.data;
} else {
// Assume hex
privateKey = Buffer.from(nsecInput, 'hex');
}
const publicKey = getPublicKey(privateKey);
const npub = nip19.npubEncode(publicKey);
console.log(`Sending note from: ${npub}`);
console.log(`Hex pubkey: ${publicKey}`);
console.log(`To relay: ${relayUrl}`);
console.log(`Message: ${message}`);
console.log('');
console.log('💡 To make this an admin post, add this hex pubkey to .env:');
console.log(` "${publicKey}"`);
console.log('');
// Create the event
const event = {
kind: 1,
created_at: Math.floor(Date.now() / 1000),
tags: [],
content: message,
pubkey: publicKey,
};
// Sign the event
const signedEvent = finalizeEvent(event, privateKey)
// Connect to relay and publish
const pool = new SimplePool();
const relays = [relayUrl];
console.log('Connecting to relay...');
await pool.publish(relays, signedEvent);
console.log('✅ Event published successfully!');
console.log('Event ID:', signedEvent.id);
// Wait a bit then close
setTimeout(() => {
pool.close(relays);
process.exit(0);
}, 2000);
} catch (error) {
console.error('❌ Failed to send note:', error.message);
process.exit(1);
}
}
// Parse command line arguments
const args = process.argv.slice(2);
if (args.length < 3) {
console.log('Usage: node send_test_note.js <nsec> <relay_url> <message>');
console.log('Example: node send_test_note.js nsec1abc123... wss://relay.example.com "Hello world!"');
process.exit(1);
}
const [nsec, relayUrl, message] = args;
sendTestNote(nsec, relayUrl, message);