tangle


git clone https://radroots.dev/git/tangle.git
Log | Files | Refs | README | LICENSE

commit 0018a8a7c9dc8ef3f98c711161048ab58ca60ab9
parent b9cb95abfc26d965edd7785ecf9be69a1ba387a9
Author: triesap <tyson@radroots.org>
Date:   Sun, 14 Jun 2026 03:27:53 -0700

runtime: cover event storage replies

- prove invalid public EVENT submissions return rejected OK without storage
- prove valid public events store once and duplicate submissions return accepted duplicate OK
- prove ephemeral events return accepted OK without persistence
- cover the existing public EVENT store path before offset fanout work

Diffstat:
Mcrates/tangle_runtime/src/relay/core.rs | 41+++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+), 0 deletions(-)

diff --git a/crates/tangle_runtime/src/relay/core.rs b/crates/tangle_runtime/src/relay/core.rs @@ -674,6 +674,47 @@ mod tests { } #[test] + fn base_relay_event_path_rejects_invalid_signatures_and_skips_ephemeral_storage() { + let mut relay = test_relay("base-relay-event-store-path", 8); + let valid = signed_public_event(7, 1, Vec::new(), "valid"); + let signature_source = signed_public_event(8, 1, Vec::new(), "signature source"); + let invalid = Event::new( + valid.id().clone(), + valid.unsigned().clone(), + signature_source.sig().clone(), + ); + let ephemeral = signed_public_event(7, 20_001, Vec::new(), "ephemeral"); + + assert!(matches!( + relay.handle_event(invalid.clone()).expect("invalid"), + RelayMessage::Ok { + event_id, + accepted: false, + message + } if event_id == *invalid.id() + && message == "invalid: event signature verification failed" + )); + assert_eq!(count_kind(&relay, 1), 0); + + assert_accepted(relay.handle_event(valid.clone()).expect("valid"), &valid); + assert_eq!( + relay.handle_event(valid.clone()).expect("duplicate"), + RelayMessage::Ok { + event_id: valid.id().clone(), + accepted: true, + message: "duplicate: already have this event".to_owned() + } + ); + assert_eq!(count_kind(&relay, 1), 1); + + assert_accepted( + relay.handle_event(ephemeral.clone()).expect("ephemeral"), + &ephemeral, + ); + assert_eq!(count_kind(&relay, 20_001), 0); + } + + #[test] fn base_relay_rejects_group_marked_events_before_group_service() { let mut relay = test_relay("base-relay-group-reject", 4); let event = signed_public_event(