395 Commits

Author SHA1 Message Date
fiatjaf
96423e9d03 wip 2024-01-01 13:07:25 -03:00
fiatjaf
5938a71146 replace close() with actually sending a value to .EndOfStoredEvents and .Closed channels.
I thought `close()` would be nice because it would be cheap and not lock the goroutine while waiting for the receiver to acknowledge the thing, but turns out it introduces the serious risk of users putting <- sub.EndOfStoredEvents in the same for { select {} } statement as sub.Events, for example, and they they get into an infinite loop.

we had this same problem here inside this same library, and what is fixed in 242af0bf76e4b23de47012244efb95ccec9e4374 by @mattn.
2024-01-01 10:18:16 -03:00
fiatjaf
3afa6fc5f6 update reflect/unsafe.String thing. 2024-01-01 10:15:06 -03:00
fiatjaf
7692f1c148
go mod tidy v0.27.5 2023-12-29 18:16:58 -03:00
fiatjaf
45bdd193c5
Tags.GetD() 2023-12-29 18:10:56 -03:00
Yasuhiro Matsumoto
8b1839bfc1 remove dependency for github.com/dgraph-io/ristretto/z
dgraph-io/ristretto use google/glog. glog rewrites flags on its own, which
causes unexpected behaviour.
2023-12-29 18:10:31 -03:00
fiatjaf
781aecc6ac
binary/hybrid Marshal() fails if event has any items over the limits. v0.27.3 2023-12-22 19:33:30 -03:00
fiatjaf
f1980e8b7a
expose max limits allowed for binary format event fields. 2023-12-22 18:18:44 -03:00
fiatjaf
2f514d5026
remove unnecessary mutex. 2023-12-15 14:15:37 -03:00
Yasuhiro Matsumoto
f60b70eb5e update go version v0.27.2 2023-12-14 16:07:46 -03:00
Yasuhiro Matsumoto
242af0bf76 fix heavy loop 2023-12-14 16:07:46 -03:00
fiatjaf
c55b509653
binary: fix encoding, was using uint8 for tags length, which was obviously not working. v0.27.1 2023-12-10 21:13:34 -03:00
fiatjaf
7ecbc0a7cf
binary: move benchmarks to different test file. 2023-12-10 21:12:54 -03:00
fiatjaf
e73b784501
update example in README. 2023-12-09 14:40:39 -03:00
fiatjaf
fabd5160a8
fix sign in relay test just recently updated. v0.27.0 2023-12-09 13:26:50 -03:00
fiatjaf
3e1749a01d
fix OK handling. 2023-12-09 13:21:35 -03:00
fiatjaf
1bccebbf2a
fix ParseMessage() so it works with CLOSED and improve tests. 2023-12-09 11:29:14 -03:00
fiatjaf
64eb395dc1
fix tests that relied on the defunct PublishStatus enum. 2023-12-07 21:39:43 -03:00
fiatjaf
b2170efb5a
support performing AUTH in the middle of SimplePool's subMany* 2023-12-07 21:37:41 -03:00
fiatjaf
f8fa490293
get rid of PublishStatus and always expect relays to answer with an OK for both AUTH and EvENT publishes. 2023-12-07 21:31:40 -03:00
fiatjaf
f9f3a34ccc
nip46: fix variable name (was using the shared key as the secret key.) v0.26.4 2023-12-02 15:31:26 -03:00
fiatjaf
15f026d2c5
exponential backoff on SimplePool reconnections and only update since once. 2023-12-02 15:12:45 -03:00
fiatjaf
0e0ecb2412
refactor SimplePool automatic reconnection. 2023-12-02 14:59:16 -03:00
fiatjaf
a65bd94a00
minor. v0.26.3 2023-12-02 14:38:18 -03:00
fiatjaf
32c1969397
simplify pre-eose cleanup in pool.subMany() 2023-12-02 14:37:32 -03:00
Yasuhiro Matsumoto
cb8b40bd00 reconnect 2023-12-02 14:36:16 -03:00
fiatjaf
a9972245f3
nip04: augment tests with cross-compatibility vectors. 2023-12-02 13:13:32 -03:00
fiatjaf
2b9b4dfa2f
nip46: rename Pool to Signer. v0.26.2 2023-12-01 20:50:00 -03:00
fiatjaf
c606a43c07
fix atrocious bug on pool.subMany(): we were missing events because of a badly designed select{} 2023-12-01 20:49:45 -03:00
fiatjaf
2969449fb3
nip46: make everything strings because pablo did it like that. 2023-12-01 17:23:59 -03:00
fiatjaf
277cdd8df8
nip46: improvements. 2023-12-01 17:20:29 -03:00
fiatjaf
73d5e943e2
nip-46 signer flow helpers. 2023-12-01 16:15:24 -03:00
fiatjaf
711db062a1
primitive support for CLOSED in SimplePool. 2023-12-01 13:37:24 -03:00
fiatjaf
775821f4e5
fix CLOSED->CLOSE marshaling on CloseEnvelope. v0.26.1 2023-12-01 12:57:18 -03:00
fiatjaf
3adb1cde3c
only store the last AUTH challenge and allow user to perform auth only whenever they want instead of automatically. v0.26.0 2023-11-28 22:30:16 -03:00
fiatjaf
0c5a1b7b4f
move internal utilts to helpers.go 2023-11-28 22:24:05 -03:00
fiatjaf
ddc50028c3
add NormalizeOKMessage() helper. 2023-11-28 22:23:51 -03:00
fiatjaf
7449f254db
support handling CLOSED messages from relay client. 2023-11-28 18:54:24 -03:00
fiatjaf
fa20f84ec7
support CLOSED messages. 2023-11-28 18:25:46 -03:00
fiatjaf
b6ec7327ef
easyjson on filter.String() 2023-11-28 15:14:35 -03:00
Yasuhiro Matsumoto
cd0d644046 If EOSE is not given, they should not be deleted. 2023-11-24 10:33:08 -03:00
Yasuhiro Matsumoto
ba25770f65 seenAlready must drop older events 2023-11-24 10:33:08 -03:00
fiatjaf
8a540998b9
nip11 fetch better errors. 2023-11-20 14:59:12 -03:00
fiatjaf
f3c081fcd6
remove nip11 min_prefix. 2023-11-18 10:43:29 -03:00
fiatjaf
b33fe374c1 nip11's info.AddSupportedNIP() v0.25.7 2023-11-18 10:32:15 -03:00
fiatjaf
fe32ecd440
nip11: "restricted_writes". v0.25.6 2023-11-18 09:42:19 -03:00
fiatjaf
0cfaa0da0a
ensure private key is 64 characters long.
fixes https://github.com/nbd-wtf/go-nostr/issues/111
v0.25.5
2023-11-17 09:27:16 -03:00
fiatjaf
307df51b9a
use xsync maps for pool relays to prevent concurrent access panics. 2023-11-16 14:51:33 -03:00
fiatjaf
9287b9fb5e
accept > 2 items on EOSE and NOTICE envelopes, but ignore them.
fixes https://github.com/nbd-wtf/go-nostr/issues/110
v0.25.4
2023-11-14 15:45:52 -03:00
fiatjaf
93b43ed426
add infolog for when a relay sends an unexpected OK message.
this can be indicative of either us or the relay miscalculating the event id.
2023-11-08 22:22:30 -03:00