fix: dual call of signEvent

This commit is contained in:
Shusui MOYATANI
2024-01-14 23:23:37 +09:00
parent 620870a801
commit 04ba912cee

View File

@@ -34,27 +34,21 @@ export const signEvent = async (unsignedEvent: UnsignedEvent): Promise<NostrEven
const useCommands = () => { const useCommands = () => {
const pool = usePool(); const pool = usePool();
const publishEvent = async ( const publishEvent = (relayUrls: string[], event: NostrEvent): Promise<void>[] =>
relayUrls: string[], relayUrls.map(async (relayUrl) => {
event: UnsignedEvent,
): Promise<Promise<void>[]> => {
const signedEvent = await signEvent(event);
return relayUrls.map(async (relayUrl) => {
const relay = await pool().ensureRelay(relayUrl); const relay = await pool().ensureRelay(relayUrl);
try { try {
await relay.publish(signedEvent); await relay.publish(event);
console.log(`${relayUrl} has accepted our event`); console.log(`${relayUrl} has accepted our event`);
} catch (err) { } catch (err) {
const reason = err instanceof Error ? err.message : JSON.stringify(err); const reason = err instanceof Error ? err.message : JSON.stringify(err);
console.warn(`failed to publish to ${relayUrl}: ${reason}`); console.warn(`failed to publish to ${relayUrl}: ${reason}`);
} }
}); });
};
const asPublish = const asPublish =
<P>(f: (p: P) => UnsignedEvent) => <P>(f: (p: P) => UnsignedEvent) =>
async (params: WithRelayUrls<P>) => { async (params: WithRelayUrls<P>): Promise<Promise<void>[]> => {
const unsignedEvent = f(params); const unsignedEvent = f(params);
const signedEvent = await signEvent(unsignedEvent); const signedEvent = await signEvent(unsignedEvent);
return publishEvent(params.relayUrls, signedEvent); return publishEvent(params.relayUrls, signedEvent);