Daniel D’Aquino
5b6534fd56
Fix stack corruption in bech32 parsing
...
This commit fixes a stack corruption issue caused by
an off-by-one error in one of the functions responsible
for parsing bech32 entities.
Changelog-None
Signed-off-by: Daniel D’Aquino <daniel@daquino.me >
2025-08-11 16:40:01 -07:00
William Casarin and Daniel D’Aquino
28a06af534
Switch over to use use blocks from nostrdb
...
This is still kind of broken until queries are switched over to nostrdb.
Will do this next
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:40:01 -07:00
d8e7b4707e
nostrdb: nip19: add kind to naddr & nevent
...
Add support for type KIND for bech32-encoded entities naddr and nevent
as specified in NIP-19.
Co-authored-by: kernelkind <kernelkind@gmail.com >
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:40:01 -07:00
William Casarin and Daniel D’Aquino
3186b0e1d3
nostrdb: fix windows build
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:40:00 -07:00
William Casarin and Daniel D’Aquino
2d02a17af6
nostrdb: fix bech32 parsing and add test
...
was off by one
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:40:00 -07:00
William Casarin and Daniel D’Aquino
bca3716e33
nostrdb: fix note content parsing bug with damus.io urls
...
Changelog-Fixed: Fixed bug where non-bech32 damus io urls would cause corruption
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:40:00 -07:00
William Casarin and Daniel D’Aquino
b8bef86ea1
nostrdb: port kernelkind's to the new bech32 parser
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:40:00 -07:00
William Casarin and Daniel D’Aquino
dfa145dd4a
nostrdb/parser: fix bech32 block decoding
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00
William Casarin and Daniel D’Aquino
034f2cc02f
nostrdb/blocks: add note block iterator
...
This adds an api that walks along and pulls compact note block data out of
nostrdb.
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00
William Casarin and Daniel D’Aquino
c3b06d281e
nostrdb/bech32: add some initial tests
...
since we modified this recently, let's add some tests to make sure
we didn't break anything
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00
William Casarin and Daniel D’Aquino
1b09e9458c
nostrdb/nostr_bech32: parse in one pass
...
since we will be decoding these in realtime, let's make sure we can
decode them in O(1)
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00
William Casarin and Daniel D’Aquino
aa5809d792
nostrdb/nostr_bech32: only parse up to raw bech32 buffers
...
We will be storing raw nostr bech32 buffers directly into nostrdb, so
adapt our bech32 code to reflect this.
When doing our content parsing pass, we will only look for strings and we
won't allocate any intermediate buffers. Only when we write this string
block to nostrdb will we actually allocate in our nostrdb output buffer
(no mallocs!)
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00
William Casarin and Daniel D’Aquino
30ba0d72cc
nostrdb/bech32: retab
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00
William Casarin and Daniel D’Aquino
1ffbd80c67
nostrdb: move everything to src
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-08-11 16:39:43 -07:00