diff --git a/event.js b/event.js index ee67648..84853e4 100644 --- a/event.js +++ b/event.js @@ -48,7 +48,6 @@ export function validateEvent(event) { } export function verifySignature(event) { - if (!validateEvent(event)) return false return secp256k1.schnorr.verify(event.sig, event.id, event.pubkey) } diff --git a/filter.js b/filter.js index cfc2651..2ca4572 100644 --- a/filter.js +++ b/filter.js @@ -1,7 +1,6 @@ export function matchFilter(filter, event) { if (filter.id && event.id !== filter.id) return false - if (filter.kind && event.kind !== filter.kind) return false - if (filter.author && event.pubkey !== filter.author) return false + if (typeof filter.kind === 'number' && event.kind !== filter.kind) return false if (filter.authors && filter.authors.indexOf(event.pubkey) === -1) return false if ( diff --git a/index.js b/index.js index d3010f1..200e692 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,7 @@ import {relayPool} from './pool' import { getBlankEvent, signEvent, + validateEvent, verifySignature, serializeEvent, getEventHash @@ -15,6 +16,7 @@ export { relayConnect, relayPool, signEvent, + validateEvent, verifySignature, serializeEvent, getEventHash, diff --git a/package.json b/package.json index 008a34c..db142b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nostr-tools", - "version": "0.15.0", + "version": "0.15.1", "description": "Tools for making a Nostr client.", "repository": { "type": "git", diff --git a/relay.js b/relay.js index 27dd94d..9320ed9 100644 --- a/relay.js +++ b/relay.js @@ -2,7 +2,7 @@ import 'websocket-polyfill' -import {verifySignature} from './event' +import {verifySignature, validateEvent} from './event' import {matchFilters} from './filter' export function normalizeRelayURL(url) { @@ -93,7 +93,8 @@ export function relayConnect(url, onNotice = () => {}, onError = () => {}) { let event = data[2] if ( - (await verifySignature(event)) && + validateEvent(event) && + verifySignature(event) && channels[channel] && matchFilters(openSubs[channel], event) ) {