diff --git a/.eslintrc.json b/.eslintrc.json index 2eb9e3d..1bf4935 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,4 +1,5 @@ { + "root": true, "parserOptions": { "ecmaVersion": 9, "ecmaFeatures": { diff --git a/event.js b/event.js index e6a6f6f..088f8c9 100644 --- a/event.js +++ b/event.js @@ -34,13 +34,13 @@ export function verifySignature(event) { if (event.id !== getEventHash(event)) return false return verifySchnorr( Buffer.from(event.id, 'hex'), - Buffer.from(event.pubkey, 'hex') - Buffer.from(event.sig, 'hex'), + Buffer.from(event.pubkey, 'hex'), + Buffer.from(event.sig, 'hex') ) } export function signEvent(event, key) { let eventHash = Buffer.from(getEventHash(event), 'hex') - let key = Buffer.from(key, 'hex') - return Buffer.from(signSchnorr(eventHash, key)).toString('hex') + let keyB = Buffer.from(key, 'hex') + return Buffer.from(signSchnorr(eventHash, keyB)).toString('hex') } diff --git a/index.js b/index.js index 83bbcb3..d3010f1 100644 --- a/index.js +++ b/index.js @@ -11,6 +11,7 @@ import { import {matchFilter, matchFilters} from './filter' export { + generatePrivateKey, relayConnect, relayPool, signEvent, diff --git a/nip06.js b/nip06.js index 0122807..7f17522 100644 --- a/nip06.js +++ b/nip06.js @@ -1,4 +1,3 @@ -import createHmac from 'create-hmac' import {wordlist} from 'micro-bip39/wordlists/english' import { generateMnemonic, diff --git a/package.json b/package.json index 5dfd4b4..237215a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nostr-tools", - "version": "0.12.1", + "version": "0.12.2", "description": "Tools for making a Nostr client.", "repository": { "type": "git", @@ -12,7 +12,6 @@ "browserify-cipher": ">=1", "buffer": ">=5", "create-hash": "^1.2.0", - "create-hmac": ">=1", "dns-packet": "^5.2.4", "micro-bip39": "^0.1.3", "randombytes": ">=2", @@ -30,5 +29,9 @@ "censorship", "censorship-resistance", "client" - ] + ], + "devDependencies": { + "eslint": "^8.5.0", + "eslint-plugin-babel": "^5.3.1" + } } diff --git a/pool.js b/pool.js index a0a0265..cd6a5d3 100644 --- a/pool.js +++ b/pool.js @@ -3,7 +3,6 @@ import {relayConnect, normalizeRelayURL} from './relay' export function relayPool(globalPrivateKey) { const relays = {} - const globalSub = [] const noticeCallbacks = [] function propagateNotice(notice, relayURL) { @@ -28,29 +27,34 @@ export function relayPool(globalPrivateKey) { const activeCallback = cb const activeFilters = filter - activeSubscriptions[id] = { - sub: ({cb = activeCallback, filter = activeFilters}) => { - Object.entries(subControllers).map(([relayURL, sub]) => [ - relayURL, - sub.sub({cb, filter}, id) - ]) - return activeSubscriptions[id] - }, - addRelay: relay => { - subControllers[relay.url] = relay.sub({cb, filter}, id) - return activeSubscriptions[id] - }, - removeRelay: relayURL => { - if (relayURL in subControllers) { - subControllers[relayURL].unsub() - if (Object.keys(subControllers).length === 0) unsub() - } - return activeSubscriptions[id] - }, - unsub: () => { - Object.values(subControllers).forEach(sub => sub.unsub()) - delete activeSubscriptions[id] + const unsub = () => { + Object.values(subControllers).forEach(sub => sub.unsub()) + delete activeSubscriptions[id] + } + const sub = ({cb = activeCallback, filter = activeFilters}) => { + Object.entries(subControllers).map(([relayURL, sub]) => [ + relayURL, + sub.sub({cb, filter}, id) + ]) + return activeSubscriptions[id] + } + const addRelay = relay => { + subControllers[relay.url] = relay.sub({cb, filter}, id) + return activeSubscriptions[id] + } + const removeRelay = relayURL => { + if (relayURL in subControllers) { + subControllers[relayURL].unsub() + if (Object.keys(subControllers).length === 0) unsub() } + return activeSubscriptions[id] + } + + activeSubscriptions[id] = { + sub, + unsub, + addRelay, + removeRelay } return activeSubscriptions[id] diff --git a/relay.js b/relay.js index b174d3b..184f564 100644 --- a/relay.js +++ b/relay.js @@ -1,3 +1,5 @@ +/* global WebSocket */ + import 'websocket-polyfill' import {verifySignature} from './event' @@ -148,7 +150,7 @@ export function relayConnect(url, onNotice) { try { await trySend(['EVENT', event]) statusCallback(0) - let {unsub} = relay.sub( + let {unsub} = sub( { cb: () => { statusCallback(1)