fips_core/endpoint/
nostr.rs1use super::*;
2
3impl FipsEndpoint {
4 pub async fn peer_rating_events(
7 &self,
8 scope: impl Into<String>,
9 ) -> Result<Vec<nostr::Event>, FipsEndpointError> {
10 let (response_tx, response_rx) = oneshot::channel();
11 self.control(
12 "peer rating snapshot",
13 NodeEndpointControlCommand::PeerRatingEvents {
14 scope: scope.into(),
15 response_tx,
16 },
17 response_rx,
18 )
19 .await?
20 .map_err(FipsEndpointError::Node)
21 }
22
23 pub async fn ingest_nostr_event(&self, event: nostr::Event) -> Result<bool, FipsEndpointError> {
27 let (response_tx, response_rx) = oneshot::channel();
28 self.control(
29 "Nostr event ingest",
30 NodeEndpointControlCommand::IngestNostrEvent { event, response_tx },
31 response_rx,
32 )
33 .await
34 }
35
36 pub async fn ingest_nostr_discovery_event(
38 &self,
39 event: nostr::Event,
40 ) -> Result<bool, FipsEndpointError> {
41 self.ingest_nostr_event(event).await
42 }
43
44 #[deprecated(since = "0.3.98", note = "use ingest_nostr_discovery_event")]
45 pub async fn ingest_nostr_pubsub_event(
46 &self,
47 event: nostr::Event,
48 ) -> Result<bool, FipsEndpointError> {
49 self.ingest_nostr_event(event).await
50 }
51
52 pub async fn local_advertised_endpoints(
55 &self,
56 ) -> Result<Vec<crate::discovery::nostr::OverlayEndpointAdvert>, FipsEndpointError> {
57 let (response_tx, response_rx) = oneshot::channel();
58 self.control(
59 "local advert snapshot",
60 NodeEndpointControlCommand::LocalAdvertSnapshot { response_tx },
61 response_rx,
62 )
63 .await
64 }
65
66 pub async fn local_nostr_discovery_advert_event(
72 &self,
73 ) -> Result<Option<nostr::Event>, FipsEndpointError> {
74 let (response_tx, response_rx) = oneshot::channel();
75 match self
76 .control(
77 "local Nostr discovery advert",
78 NodeEndpointControlCommand::LocalNostrDiscoveryAdvertEvent { response_tx },
79 response_rx,
80 )
81 .await?
82 {
83 Ok(event) => Ok(event),
84 Err(error) => Err(FipsEndpointError::Node(error)),
85 }
86 }
87
88 pub async fn relay_statuses(&self) -> Result<Vec<FipsEndpointRelayStatus>, FipsEndpointError> {
90 let (response_tx, response_rx) = oneshot::channel();
91 self.control(
92 "relay snapshot",
93 NodeEndpointControlCommand::RelaySnapshot { response_tx },
94 response_rx,
95 )
96 .await
97 .map(|relays| {
98 relays
99 .into_iter()
100 .map(FipsEndpointRelayStatus::from)
101 .collect()
102 })
103 }
104
105 pub async fn update_relays(&self, advert_relays: Vec<String>) -> Result<(), FipsEndpointError> {
107 let (response_tx, response_rx) = oneshot::channel();
108 self.control(
109 "relay update",
110 NodeEndpointControlCommand::UpdateRelays {
111 advert_relays,
112 response_tx,
113 },
114 response_rx,
115 )
116 .await?
117 .map_err(FipsEndpointError::Node)
118 }
119}