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 +3 -3
- package/keys.js +1 -0
- package/nip05.js +1 -5
- package/package.json +1 -1
- package/pool.js +12 -4
- package/relay.js +16 -4
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(
|
|
56
|
-
|
|
57
|
-
)
|
|
55
|
+
return Buffer.from(
|
|
56
|
+
await secp256k1.schnorr.sign(getEventHash(event), key)
|
|
57
|
+
).toString('hex')
|
|
58
58
|
}
|
package/keys.js
CHANGED
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
package/pool.js
CHANGED
|
@@ -26,27 +26,35 @@ export function relayPool() {
|
|
|
26
26
|
|
|
27
27
|
const activeSubscriptions = {}
|
|
28
28
|
|
|
29
|
-
const sub = (
|
|
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 = ({
|
|
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 = (
|
|
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: ({
|
|
139
|
-
|
|
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: {
|
|
175
|
+
filter: {ids: [event.id]}
|
|
164
176
|
},
|
|
165
177
|
`monitor-${event.id.slice(0, 5)}`
|
|
166
178
|
)
|