Fix event verification and deserialization in process_event
This commit is contained in:
parent
5e08737cc1
commit
1f3f480c87
1 changed files with 23 additions and 1 deletions
24
src/main.rs
24
src/main.rs
|
@ -145,9 +145,31 @@ fn process_message(app: &mut Hoot, msg: &relay::RelayMessage) {
|
|||
|
||||
}
|
||||
|
||||
fn process_event(app: &mut Hoot, _sub_id: &str, event: &str) {
|
||||
fn process_event(app: &mut Hoot, _sub_id: &str, event_json: &str) {
|
||||
#[cfg(feature = "profiling")]
|
||||
puffin::profile_function!();
|
||||
|
||||
// The event comes in a JSON array format ["EVENT", subscription_id, event_json]
|
||||
// We need to parse out the actual event JSON
|
||||
if let Ok(json_value) = serde_json::from_str::<serde_json::Value>(event_json) {
|
||||
if let Some(array) = json_value.as_array() {
|
||||
if array.len() >= 3 {
|
||||
if let Ok(event) = serde_json::from_value::<nostr::Event>(array[2].clone()) {
|
||||
// Verify the event signature
|
||||
if event.verify().is_ok() {
|
||||
debug!("Verified event: {:?}", event);
|
||||
app.events.push(event);
|
||||
} else {
|
||||
error!("Event verification failed");
|
||||
}
|
||||
} else {
|
||||
error!("Failed to parse event JSON");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
error!("Failed to parse relay message JSON: {}", event_json);
|
||||
}
|
||||
}
|
||||
|
||||
fn render_app(app: &mut Hoot, ctx: &egui::Context) {
|
||||
|
|
Loading…
Add table
Reference in a new issue