@@ -11,7 +11,7 @@ use std::time::Duration;
11
11
use async_utility:: thread;
12
12
use js_sys:: Array ;
13
13
use nostr_js:: error:: { into_err, Result } ;
14
- use nostr_js:: event:: { JsEvent , JsEventArray , JsEventId , JsTag } ;
14
+ use nostr_js:: event:: { JsEvent , JsEventArray , JsEventBuilder , JsEventId , JsTag } ;
15
15
use nostr_js:: key:: JsPublicKey ;
16
16
use nostr_js:: message:: { JsFilter , JsRelayMessage } ;
17
17
use nostr_js:: types:: { JsContact , JsMetadata } ;
@@ -192,6 +192,34 @@ impl JsClient {
192
192
. map ( |id| id. into ( ) )
193
193
}
194
194
195
+ /// Take an [`EventBuilder`], sign it by using the [`ClientSigner`] and broadcast to all relays.
196
+ ///
197
+ /// Rise an error if the [`ClientSigner`] is not set.
198
+ #[ wasm_bindgen( js_name = sendEvent) ]
199
+ pub async fn send_event_builder ( & self , builder : & JsEventBuilder ) -> Result < JsEventId > {
200
+ self . inner
201
+ . send_event_builder ( builder. deref ( ) . clone ( ) )
202
+ . await
203
+ . map_err ( into_err)
204
+ . map ( |id| id. into ( ) )
205
+ }
206
+
207
+ /// Take an [`EventBuilder`], sign it by using the [`ClientSigner`] and broadcast to specific relays.
208
+ ///
209
+ /// Rise an error if the [`ClientSigner`] is not set.
210
+ #[ wasm_bindgen( js_name = sendEventTo) ]
211
+ pub async fn send_event_builder_to (
212
+ & self ,
213
+ url : String ,
214
+ builder : & JsEventBuilder ,
215
+ ) -> Result < JsEventId > {
216
+ self . inner
217
+ . send_event_builder_to ( url, builder. deref ( ) . clone ( ) )
218
+ . await
219
+ . map_err ( into_err)
220
+ . map ( |id| id. into ( ) )
221
+ }
222
+
195
223
/// Update metadata
196
224
///
197
225
/// <https://github.com/nostr-protocol/nips/blob/master/01.md>
0 commit comments