Files
einundzwanzig-verein/resources/js/nostrZap.js
fsociety 3e271e932a feat: update zapEndpoint URL and remove unused function
Updated the zapEndpoint URL in the nostrZap.js file to direct towards the updated URL. Additionally, removed an unused function from the profile.blade.php file for cleaner code.
2024-10-01 18:28:50 +02:00

63 lines
1.9 KiB
JavaScript

import NDK, {NDKEvent} from "@nostr-dev-kit/ndk";
import {
nip57,
} from "nostr-tools";
export default (livewireComponent) => ({
invoice: livewireComponent.entangle('invoice', true),
async zap(message, sender, amountToPay, env) {
const relayUrl = env === 'production' ? 'wss://simple-relay.steuernsindraub21.xyz' : 'wss://simple-relay.steuernsindraub21.xyz';
const ndk = new NDK({
explicitRelayUrls: [
relayUrl
],
enableOutboxModel: false,
});
// Now connect to specified relays
await ndk.connect();
const event = await ndk.fetchEvent({
kinds: [32121],
authors: ['daf83d92768b5d0005373f83e30d4203c0b747c170449e02fea611a0da125ee6']
});
const amount = amountToPay * 1000;
console.log('event', event);
const zapEndpoint = 'https://pay.einundzwanzig.space/BTC/UILNURL/pay/i/98eo2PNNWByxqMCFZR5nzW';
const zapEvent = nip57.makeZapRequest({
profile: sender,
event: event.id,
amount: amount,
relays: [relayUrl],
comment: message,
});
console.log('zapEvent', zapEvent);
const signedEvent = await window.nostr.signEvent(zapEvent);
console.log('signedEvent', signedEvent);
let url = `${zapEndpoint}?amount=${amount}&nostr=${encodeURIComponent(
JSON.stringify(signedEvent)
)}`;
url = `${url}&comment=${encodeURIComponent(message)}`;
console.log('url', url);
const res = await fetch(url);
const { pr: invoice, reason, status } = await res.json();
if (invoice) {
console.log('invoice', invoice);
this.invoice = invoice;
} else if (status === "ERROR") {
throw new Error(reason ?? "Unable to fetch invoice");
} else {
throw new Error("Other error");
}
},
});