Skip to content

Commit deb74a9

Browse files
committed
Expose UnsignedEvent
1 parent 50c8d6a commit deb74a9

File tree

15 files changed

+1563
-57
lines changed

15 files changed

+1563
-57
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
* Expose `ClientOptions` ([Yuki Kishimoto])
4040
* Expose `ClientBuilder` ([Yuki Kishimoto])
4141
* Expose `NostrSigner` ([Yuki Kishimoto])
42+
* Expose `UnsignedEvent` ([Yuki Kishimoto])
4243

4344
### Fixed
4445

lib/nostr_sdk.dart

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

55
export 'src/rust/api/protocol/event.dart';
66
export 'src/rust/api/protocol/event/tag.dart';
7+
export 'src/rust/api/protocol/event/unsigned.dart';
78
export 'src/rust/api/protocol/key.dart';
89
export 'src/rust/api/protocol/key/public_key.dart';
910
export 'src/rust/api/protocol/key/secret_key.dart';

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import 'event/tag.dart';
88
import 'key/public_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): `from`
12+
1113
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_Event>>
1214
abstract class Event implements RustOpaqueInterface {
1315
/// Serialize as JSON
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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/public_key.dart';
9+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
10+
import 'tag.dart';
11+
12+
// 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`, `from`
13+
14+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_UnsignedEvent>>
15+
abstract class UnsignedEvent implements RustOpaqueInterface {
16+
/// Add signature to unsigned event
17+
///
18+
/// Internally verify the event.
19+
Event addSignature({required String sig});
20+
21+
/// Serialize as JSON
22+
String asJson();
23+
24+
/// Serialize as pretty JSON
25+
String asPrettyJson();
26+
27+
/// Get author
28+
PublicKey author();
29+
30+
/// Get content
31+
String content();
32+
33+
/// Get UNIX timestamp
34+
BigInt createdAt();
35+
36+
/// Deserialize from JSON
37+
static UnsignedEvent fromJson({required String json}) => NostrSdk.instance.api
38+
.crateApiProtocolEventUnsignedUnsignedEventFromJson(json: json);
39+
40+
/// Get event ID
41+
String? id();
42+
43+
/// Get kind
44+
int kind();
45+
46+
/// Get tags
47+
List<Tag> tags();
48+
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
55

66
import '../../frb_generated.dart';
7+
import 'event.dart';
8+
import 'event/unsigned.dart';
79
import 'key.dart';
810
import 'key/public_key.dart';
911
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
@@ -39,6 +41,9 @@ abstract class NostrSigner implements RustOpaqueInterface {
3941
/// Encrypt
4042
Future<String> nip44Encrypt(
4143
{required PublicKey publicKey, required String content});
44+
45+
/// Sign event
46+
Future<Event> signEvent({required UnsignedEvent unsignedEvent});
4247
}
4348

4449
@freezed

0 commit comments

Comments
 (0)