Implement NostrNetworkManager and UserRelayListManager

This commit implements a new layer called NostrNetworkManager,
responsible for managing interactions with the Nostr network, and
providing a higher level API that is easier and more secure to use for
the layer above it.

It also integrates it with the rest of the app, by moving RelayPool and PostBox
into NostrNetworkManager, along with all their usages.

Changelog-Added: Added NIP-65 relay list support
Changelog-Changed: Improved robustness of relay list handling
Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
This commit is contained in:
Daniel D’Aquino
2025-03-26 15:23:59 -03:00
parent 0ec2b05070
commit 3a0acfaba1
60 changed files with 837 additions and 398 deletions

View File

@@ -35,7 +35,7 @@ final class MutingTests: XCTestCase {
}
test_damus_state.mutelist_manager.set_mutelist(mutelist)
test_damus_state.postbox.send(mutelist)
test_damus_state.nostrNetwork.postbox.send(mutelist)
XCTAssert(test_damus_state.mutelist_manager.is_event_muted(spammy_test_note))
XCTAssertFalse(test_damus_state.mutelist_manager.is_event_muted(test_note))