loadEvents(); } public function loadEvents(): void { $subscription = new Subscription; $subscriptionId = $subscription->setId(); $filter1 = new Filter; $filter1->setKinds([31924]); $filter1->setLimit(25); $filters = [$filter1]; $requestMessage = new RequestMessage($subscriptionId, $filters); $relays = [ new Relay('ws://nostream:8008'), ]; $relaySet = new RelaySet; $relaySet->setRelays($relays); $request = new Request($relaySet, $requestMessage); $response = $request->send(); $this->events = collect($response['ws://nostream:8008']) ->map(function ($event) { if (! isset($event->event)) { return false; } return [ 'id' => $event->event->id, 'kind' => $event->event->kind, 'content' => $event->event->content, 'pubkey' => $event->event->pubkey, 'tags' => $event->event->tags, 'created_at' => $event->event->created_at, ]; }) ->filter() ->toArray(); } public function save(): void { $note = new NostrEvent; $note->setContent($this->description); $note->setKind(31924); $note->setTags([ ['d', str()->uuid()->toString()], ['title', $this->title], ]); $this->signThisEvent = $note->toJson(); } public function signEvent($event): void { $note = new NostrEvent; $note->setId($event['id']); $note->setSignature($event['sig']); $note->setKind($event['kind']); $note->setContent($event['content']); $note->setPublicKey($event['pubkey']); $note->setTags($event['tags']); $note->setCreatedAt($event['created_at']); $eventMessage = new EventMessage($note); $relayUrl = 'ws://nostream:8008'; $relay = new Relay($relayUrl); $relay->setMessage($eventMessage); $relay->send(); $this->title = ''; $this->description = ''; $this->loadEvents(); } }