I've gotten it to write my 30041 events, but it keeps complaining that the $json in Relay.php must be of type string.
But it is a string. 🤷♀️
I've gotten it to write my 30041 events, but it keeps complaining that the $json in Relay.php must be of type string.
But it is a string. 🤷♀️
Could you share a snippet of your code of command? I'm debugging the CLI atm which could be broken indeed after the last minor version upgrade.
include_once(__DIR__.'/vendor/autoload.php');
use swentel\nostr\Event\Event;
use swentel\nostr\Message\EventMessage;
use swentel\nostr\Relay\Relay;
use swentel\nostr\Sign\Sign;
$private_key = file_get_contents("private/nostr-private.key");
$note = new Event();
$note->setContent('30041 event test 2');
$note->setKind(30041);
$note->setTags([
['d', 'test-title'],
['title', 'This is the test title for 30041 2'],
]);
$signer = new Sign();
$signer->signEvent($note, $private_key);
$eventMessage = new EventMessage($note);
$relayUrl = "wss://theforest.nostr1.com";
$relay = new Relay($relayUrl);
$relay->setMessage($eventMessage);
$result = $relay->send();
Worked correctly and gave me this
But it also gave me this
PHP Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, WebSocket\Message\Text given in /home/.../vendor/swentel/nostr-php/src/Relay/Relay.php:90
Stack trace:
#0 /home/.../vendor/swentel/nostr-php/src/Relay/Relay.php(90): json_decode()
#1 /home/.../create30041Event.php(28): swentel\nostr\Relay\Relay->send()
#2 {main}
thrown in /home/.../vendor/swentel/nostr-php/src/Relay/Relay.php on line 90
Found it, fixing it and will push a new release asap with the fix.
Might want to see if the tests aren't broken, as well. They seem to be having trouble resolving the Key namespace.
Here's what happened with the CLI.
$ bin/nostr-php --content "Test of CLI" --key /home/.../nostr-private.key --relay wss://theforest.nostr1.com
PHP Fatal error: Uncaught Error: Typed property swentel\nostr\Relay\Relay::$payload must not be accessed before initialization in /home/.../nostr-php/src/Relay/Relay.php:87
Stack trace:
#0 /home/.../nostr-php/src/Application/Client.php(85): swentel\nostr\Relay\Relay->send()
#1 /home/.../nostr-php/bin/nostr-php(47): swentel\nostr\Application\Client->run()
#2 {main}
thrown in /home/.../nostr-php/src/Relay/Relay.php on line 87
Fixed / new release is out.
https://github.com/nostrver-se/nostr-php/releases/tag/1.3.3
$ bin/nostr-php --content "Hello world! Testing this fix" --key privkey --relay wss://nostr.sebastix.dev
Send to Nostr!
Still getting the string error on the $json with the full script using swentel\nostr\Relay\Relay
Switched to RelaySet and it seems to work, but it hangs after writing and throws a fatal error.
PHP Fatal error: Uncaught WebSocket\Exception\ConnectionClosedException: Connection has unexpectedly closed in /home/.../vendor/phrity/websocket/src/Connection.php:374
I didn't have access to a relay. Works now.