nostr-tools 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/event.js CHANGED
@@ -52,7 +52,7 @@ export function verifySignature(event) {
52
52
  }
53
53
 
54
54
  export async function signEvent(event, key) {
55
- return Buffer.from(secp256k1.schnorr.sign(getEventHash(event), key)).toString(
56
- 'hex'
57
- )
55
+ return Buffer.from(
56
+ await secp256k1.schnorr.sign(getEventHash(event), key)
57
+ ).toString('hex')
58
58
  }
package/keys.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as secp256k1 from '@noble/secp256k1'
2
+ import {Buffer} from 'buffer'
2
3
 
3
4
  export function generatePrivateKey() {
4
5
  return Buffer.from(secp256k1.utils.randomPrivateKey()).toString('hex')
package/nip05.js CHANGED
@@ -15,11 +15,7 @@ export async function searchDomain(domain, query = '') {
15
15
  export async function queryName(fullname) {
16
16
  try {
17
17
  let [name, domain] = fullname.split('@')
18
-
19
- if (!domain) {
20
- domain = name
21
- name = '_'
22
- }
18
+ if (!domain) return null
23
19
 
24
20
  let res = await (
25
21
  await fetch(`https://${domain}/.well-known/nostr.json?name=${name}`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nostr-tools",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "Tools for making a Nostr client.",
5
5
  "repository": {
6
6
  "type": "git",
package/pool.js CHANGED
@@ -26,27 +26,35 @@ export function relayPool() {
26
26
 
27
27
  const activeSubscriptions = {}
28
28
 
29
- const sub = ({cb, filter}, id = Math.random().toString().slice(2)) => {
29
+ const sub = (
30
+ {cb, filter, beforeSend},
31
+ id = Math.random().toString().slice(2)
32
+ ) => {
30
33
  const subControllers = Object.fromEntries(
31
34
  Object.values(relays)
32
35
  .filter(({policy}) => policy.read)
33
36
  .map(({relay}) => [
34
37
  relay.url,
35
- relay.sub({filter, cb: event => cb(event, relay.url)}, id)
38
+ relay.sub({filter, cb: event => cb(event, relay.url), beforeSend}, id)
36
39
  ])
37
40
  )
38
41
 
39
42
  const activeCallback = cb
40
43
  const activeFilters = filter
44
+ const activeBeforeSend = beforeSend
41
45
 
42
46
  const unsub = () => {
43
47
  Object.values(subControllers).forEach(sub => sub.unsub())
44
48
  delete activeSubscriptions[id]
45
49
  }
46
- const sub = ({cb = activeCallback, filter = activeFilters}) => {
50
+ const sub = ({
51
+ cb = activeCallback,
52
+ filter = activeFilters,
53
+ beforeSend = activeBeforeSend
54
+ }) => {
47
55
  Object.entries(subControllers).map(([relayURL, sub]) => [
48
56
  relayURL,
49
- sub.sub({cb, filter}, id)
57
+ sub.sub({cb, filter, beforeSend}, id)
50
58
  ])
51
59
  return activeSubscriptions[id]
52
60
  }
package/relay.js CHANGED
@@ -119,7 +119,10 @@ export function relayConnect(url, onNotice = () => {}, onError = () => {}) {
119
119
  ws.send(msg)
120
120
  }
121
121
 
122
- const sub = ({cb, filter}, channel = Math.random().toString().slice(2)) => {
122
+ const sub = (
123
+ {cb, filter, beforeSend},
124
+ channel = Math.random().toString().slice(2)
125
+ ) => {
123
126
  var filters = []
124
127
  if (Array.isArray(filter)) {
125
128
  filters = filter
@@ -127,16 +130,25 @@ export function relayConnect(url, onNotice = () => {}, onError = () => {}) {
127
130
  filters.push(filter)
128
131
  }
129
132
 
133
+ if (beforeSend) {
134
+ const beforeSendResult = beforeSend({filter, relay: url, channel})
135
+ filters = beforeSendResult.filter
136
+ }
137
+
130
138
  trySend(['REQ', channel, ...filters])
131
139
  channels[channel] = cb
132
140
  openSubs[channel] = filters
133
141
 
134
142
  const activeCallback = cb
135
143
  const activeFilters = filters
144
+ const activeBeforeSend = beforeSend
136
145
 
137
146
  return {
138
- sub: ({cb = activeCallback, filter = activeFilters}) =>
139
- sub({cb, filter}, channel),
147
+ sub: ({
148
+ cb = activeCallback,
149
+ filter = activeFilters,
150
+ beforeSend = activeBeforeSend
151
+ }) => sub({cb, filter, beforeSend}, channel),
140
152
  unsub: () => {
141
153
  delete openSubs[channel]
142
154
  delete channels[channel]
@@ -160,7 +172,7 @@ export function relayConnect(url, onNotice = () => {}, onError = () => {}) {
160
172
  unsub()
161
173
  clearTimeout(willUnsub)
162
174
  },
163
- filter: {id: event.id}
175
+ filter: {ids: [event.id]}
164
176
  },
165
177
  `monitor-${event.id.slice(0, 5)}`
166
178
  )