Nostr.swift (1860B)
1 import Foundation 2 3 public struct NostrEventId: Hashable, Sendable { 4 public let rawValue: String 5 6 public init(_ rawValue: String) { 7 self.rawValue = rawValue 8 } 9 } 10 11 public extension NostrPostEventMetadata { 12 var eventId: NostrEventId { 13 NostrEventId(id) 14 } 15 } 16 17 public extension NostrProfileEventMetadata { 18 var eventId: NostrEventId { 19 NostrEventId(id) 20 } 21 } 22 23 public extension FieldRuntimeService { 24 func nostrPostProfile( 25 name: String? = nil, 26 displayName: String? = nil, 27 nip05: String? = nil, 28 about: String? = nil 29 ) async throws -> NostrEventId { 30 let id = try await run { 31 try $0.nostrPostProfile( 32 name: name, 33 displayName: displayName, 34 nip05: nip05, 35 about: about 36 ) 37 } 38 return NostrEventId(id) 39 } 40 41 func nostrPostTextNote(content: String) async throws -> NostrEventId { 42 let id = try await run { try $0.nostrPostTextNote(content: content) } 43 return NostrEventId(id) 44 } 45 46 func nostrPostReply( 47 parentEventIdHex: String, 48 parentAuthorHex: String, 49 content: String, 50 rootEventIdHex: String? = nil 51 ) async throws -> NostrEventId { 52 let id = try await run { 53 try $0.nostrPostReply( 54 parentEventIdHex: parentEventIdHex, 55 parentAuthorHex: parentAuthorHex, 56 content: content, 57 rootEventIdHex: rootEventIdHex 58 ) 59 } 60 return NostrEventId(id) 61 } 62 63 func nostrStartPostStream(sinceUnix: UInt64? = nil) async throws { 64 try await run { try $0.nostrStartPostEventStream(sinceUnix: sinceUnix) } 65 } 66 67 func nostrStopPostStream() async throws { 68 try await run { try $0.nostrStopPostEventStream() } 69 } 70 }