Skip to content

Commit 91a5bdf

Browse files
committed
Expose EventBuilder
1 parent 1b1af0c commit 91a5bdf

File tree

17 files changed

+1441
-92
lines changed

17 files changed

+1441
-92
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
* Expose `ClientBuilder` ([Yuki Kishimoto])
4141
* Expose `NostrSigner` ([Yuki Kishimoto])
4242
* Expose `UnsignedEvent` ([Yuki Kishimoto])
43+
* Expose `EventBuilder` ([Yuki Kishimoto])
4344

4445
### Fixed
4546

lib/nostr_sdk.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ library nostr_sdk;
33
export 'src/rust/frb_generated.dart' show NostrSdk;
44

55
export 'src/rust/api/protocol/event.dart';
6+
export 'src/rust/api/protocol/event/builder.dart';
67
export 'src/rust/api/protocol/event/tag.dart';
78
export 'src/rust/api/protocol/event/unsigned.dart';
89
export 'src/rust/api/protocol/key.dart';
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// This file is automatically generated, so please do not edit it.
2+
// Generated by `flutter_rust_bridge`@ 2.0.0.
3+
4+
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
5+
6+
import '../../../frb_generated.dart';
7+
import '../event.dart';
8+
import '../key.dart';
9+
import '../key/public_key.dart';
10+
import '../signer.dart';
11+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
12+
import 'tag.dart';
13+
import 'unsigned.dart';
14+
15+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_EventBuilder>>
16+
abstract class EventBuilder implements RustOpaqueInterface {
17+
/// Build unsigned event
18+
UnsignedEvent build({required PublicKey publicKey});
19+
20+
/// Set a custom `created_at` UNIX timestamp
21+
EventBuilder customCreatedAt({required BigInt createdAt});
22+
23+
/// New event builder
24+
factory EventBuilder({required int kind, required String content}) =>
25+
NostrSdk.instance.api.crateApiProtocolEventBuilderEventBuilderNew(
26+
kind: kind, content: content);
27+
28+
/// Set POW difficulty
29+
///
30+
/// Only values `> 0` are accepted!
31+
EventBuilder pow({required int difficulty});
32+
33+
/// Build, sign and return event
34+
Future<Event> sign({required NostrSigner signer});
35+
36+
/// Build, sign and return event using keys signer
37+
Event signWithKeys({required Keys keys});
38+
39+
/// Add tag
40+
EventBuilder tag({required Tag tag});
41+
42+
/// Add tags
43+
///
44+
/// This method extends the current tags (if any).
45+
EventBuilder tags({required List<Tag> tags});
46+
47+
/// Text note
48+
///
49+
/// <https://github.com/nostr-protocol/nips/blob/master/01.md>
50+
static EventBuilder textNote({required String content}) =>
51+
NostrSdk.instance.api
52+
.crateApiProtocolEventBuilderEventBuilderTextNote(content: content);
53+
}

lib/src/rust/api/protocol/key.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import 'key/public_key.dart';
88
import 'key/secret_key.dart';
99
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
1010

11+
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `deref`
12+
1113
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_Keys>>
1214
abstract class Keys implements RustOpaqueInterface {
1315
/// Generate random keys

0 commit comments

Comments
 (0)