Skip to content

Commit 324e809

Browse files
committed
Expose EventId
1 parent 5c5bfc4 commit 324e809

File tree

14 files changed

+1317
-98
lines changed

14 files changed

+1317
-98
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,22 @@
2323
2424
-->
2525

26+
## [Unreleased]
27+
28+
### Breaking changes
29+
30+
### Changed
31+
32+
### Added
33+
34+
* Expose `EventId` ([Yuki Kishimoto])
35+
36+
### Fixed
37+
38+
### Removed
39+
40+
### Deprecated
41+
2642
## [v0.38.0]
2743

2844
### Added

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/builder.dart';
7+
export 'src/rust/api/protocol/event/id.dart';
78
export 'src/rust/api/protocol/event/tag.dart';
89
export 'src/rust/api/protocol/event/unsigned.dart';
910
export 'src/rust/api/protocol/key.dart';

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
55

66
import '../../frb_generated.dart';
7+
import 'event/id.dart';
78
import 'event/tag.dart';
89
import 'key/public_key.dart';
910
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
@@ -32,7 +33,7 @@ abstract class Event implements RustOpaqueInterface {
3233
NostrSdk.instance.api.crateApiProtocolEventEventFromJson(json: json);
3334

3435
/// Get event ID
35-
String id();
36+
EventId id();
3637

3738
/// Returns `true` if the event has an expiration tag that is expired.
3839
/// If an event has no expiration tag, then it will return `false`.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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 '../key/public_key.dart';
8+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
9+
import 'tag.dart';
10+
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+
13+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_EventId>>
14+
abstract class EventId implements RustOpaqueInterface {
15+
/// Parse from bytes
16+
static EventId fromSlice({required List<int> bytes}) => NostrSdk.instance.api
17+
.crateApiProtocolEventIdEventIdFromSlice(bytes: bytes);
18+
19+
factory EventId(
20+
{required PublicKey publicKey,
21+
required BigInt createdAt,
22+
required int kind,
23+
required List<Tag> tags,
24+
required String content}) =>
25+
NostrSdk.instance.api.crateApiProtocolEventIdEventIdNew(
26+
publicKey: publicKey,
27+
createdAt: createdAt,
28+
kind: kind,
29+
tags: tags,
30+
content: content);
31+
32+
/// Try to parse event ID from `hex`, `bech32` or [NIP21](https://github.com/nostr-protocol/nips/blob/master/21.md) uri
33+
static EventId parse({required String id}) =>
34+
NostrSdk.instance.api.crateApiProtocolEventIdEventIdParse(id: id);
35+
36+
/// Serialize to bech32
37+
String toBech32();
38+
39+
/// Get bytes
40+
Uint8List toBytes();
41+
42+
/// Serialize to hex
43+
String toHex();
44+
45+
/// Serialize as nostr URI
46+
String toNostrUri();
47+
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import '../../../frb_generated.dart';
77
import '../event.dart';
88
import '../key/public_key.dart';
9+
import 'id.dart';
910
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
1011
import 'tag.dart';
1112

@@ -38,7 +39,7 @@ abstract class UnsignedEvent implements RustOpaqueInterface {
3839
.crateApiProtocolEventUnsignedUnsignedEventFromJson(json: json);
3940

4041
/// Get event ID
41-
String? id();
42+
EventId? id();
4243

4344
/// Get kind
4445
int kind();

0 commit comments

Comments
 (0)