* Fix missing margin-left for invoice status in /satistics
* Fix margin-bottom not applied in invoice info
* Only apply margin-left if there is something left
* Fix ephemeral events missed
The spec mentions the following:
> for kind n such that 20000 <= n < 30000, events are ephemeral, which means they are not expected to be stored by relays.
This applies to NWC events. This means that we need to subscribe _before_ we publish the request.
See https://github.com/nostr-protocol/nips/blob/master/01.md
* Verify events before accepting them
* Reinitialize wallet form if initial values change
This fixes that enabled is not set on first render if only recv is configured
* Remove unnecessary old usage of ClientCheckbox
This isn't needed even without enableReinitialize since for send, enabled is correctly set on first render.
It was needed in the past when we were still validating wallets before enabling them on first page load but now, we simply load the configuration from localStorage which is immediately available on the client.
* Fix readOnly hydration error
* Replace repetitive isMounted logic with useIsClient hook
* Skip wallet connection tests if only priority is changed
* Fix server priority overrides client priority
* Also add priorityOnly as last argument in generateMutation
* Show item details via context
* Use zappers instead of upvotes
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
---------
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
* Add NWC receives
* Refactor sendPayment+createInvoice with nwcCall function
* Update badge
* Add method support checks
* Add timeout to NWC test invoice
* Fix NWC isConfigured state
All NWC fields are marked as optional but NWC should only be considered configured if one of them is set.
* Fix relay.fetch() throws 'crypto is not defined' in node
nip04.encrypt() was failing in worker because 'crypto is not defined'. Updating to nostr-tools v2.7.2 fixed that.
However, now crypto.randomUUID() in relay.fetch() was throwing 'crypto is not defined'. Importing crypto from 'crypto' fixed that.
However, with the import, randomUUID() does not work so I switched to randomBytes().
Running relay.fetch() now works in browser and node.
* recv must not support pay_invoice
* Fix Relay connection check
* this.url was undefined
* error was an object
* Fix additional isConfigured check runs always
It was meant to only catch false positives, not turn negatives into false positives.
* Rename testConnectServer to testCreateInvoice
* Rename testConnectClient to testSendPayment
* Only run testSendPayment if send is configured
The return value of testSendPayment was used before but it only returned something for LNC.
And for LNC, we only wanted to save the transformation during validation, so it was not needed.
* Always use withTimeout in NWC test functions
* Fix fragment name
* Use get_info command exclusively
* Check permissions more efficiently
* Log NWC request-response flow
* Fix variable name
* Call ws.send after listener is added
* Fix websocket not closed after timeout
* Also check that pay_keysend etc. are not supported
* fix lnc session key save
---------
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>