Skip to content

Commit aa4184e

Browse files
committed
nostr: add NEG-MSG message
1 parent 7e4e719 commit aa4184e

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

crates/nostr/src/message/client.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ pub enum ClientMessage {
5555
/// Initial message
5656
initial_message: String,
5757
},
58+
/// Negentropy Message
59+
NegMsg {
60+
/// Subscription ID
61+
subscription_id: SubscriptionId,
62+
/// Message
63+
message: String,
64+
},
5865
}
5966

6067
impl Serialize for ClientMessage {
@@ -175,6 +182,10 @@ impl ClientMessage {
175182
initial_message
176183
])
177184
}
185+
Self::NegMsg {
186+
subscription_id,
187+
message,
188+
} => json!(["NEG-MSG", subscription_id, message]),
178189
}
179190
}
180191

@@ -288,6 +299,20 @@ impl ClientMessage {
288299
});
289300
}
290301

302+
// Negentropy Message
303+
// ["NEG-MSG", <subscription ID string>, <message, lowercase hex-encoded>]
304+
if v[0] == "NEG-MSG" {
305+
if v_len != 3 {
306+
return Err(MessageHandleError::InvalidMessageFormat);
307+
}
308+
let subscription_id: SubscriptionId = SubscriptionId::new(v[1].to_string());
309+
let message: String = v[2].to_string();
310+
return Ok(Self::NegMsg {
311+
subscription_id,
312+
message,
313+
});
314+
}
315+
291316
Err(MessageHandleError::InvalidMessageFormat)
292317
}
293318

crates/nostr/src/message/relay.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ pub enum RelayMessage {
5656
/// Events count
5757
count: usize,
5858
},
59+
/// Negentropy Message
60+
NegMsg {
61+
/// Subscription ID
62+
subscription_id: SubscriptionId,
63+
/// Message
64+
message: String,
65+
},
5966
}
6067

6168
impl Serialize for RelayMessage {
@@ -153,6 +160,10 @@ impl RelayMessage {
153160
subscription_id,
154161
count,
155162
} => json!(["COUNT", subscription_id, { "count": count }]),
163+
Self::NegMsg {
164+
subscription_id,
165+
message,
166+
} => json!(["NEG-MSG", subscription_id, message]),
156167
}
157168
}
158169

@@ -266,6 +277,20 @@ impl RelayMessage {
266277
return Ok(Self::new_count(subscription_id, count));
267278
}
268279

280+
// Negentropy Message
281+
// ["NEG-MSG", <subscription ID string>, <message, lowercase hex-encoded>]
282+
if v[0] == "NEG-MSG" {
283+
if v_len != 3 {
284+
return Err(MessageHandleError::InvalidMessageFormat);
285+
}
286+
let subscription_id: SubscriptionId = SubscriptionId::new(v[1].to_string());
287+
let message: String = v[2].to_string();
288+
return Ok(Self::NegMsg {
289+
subscription_id,
290+
message,
291+
});
292+
}
293+
269294
Err(MessageHandleError::InvalidMessageFormat)
270295
}
271296

0 commit comments

Comments
 (0)