From b8f2e14e6dc6b688605e55c86e68ac17b53338f0 Mon Sep 17 00:00:00 2001 From: Vivek Ganesan Date: Thu, 11 May 2023 20:39:40 +0530 Subject: [PATCH] Add user experience recommendation about NIP-07 Invoking NIP-07 methods as a part of page-load event listener creates intermittent issues due to race conditions between the browser's extension script and the client's page scripts. --- 07.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/07.md b/07.md index 3b7a1d2..0fe8121 100644 --- a/07.md +++ b/07.md @@ -22,6 +22,11 @@ async window.nostr.nip04.encrypt(pubkey, plaintext): string // returns ciphertex async window.nostr.nip04.decrypt(pubkey, ciphertext): string // takes ciphertext and iv as specified in nip-04 ``` +### User experience recommendation +Due to the way browsers load the extensions, it may take some time for `window.nostr` object will be fully ready to accept requests. Hence, it is a good idea to run the first `window.nostr` interaction on a user action on the web page (like a button click), and not during the page load. + +Calling the `window.nostr` based methods during the page load runs the risk of intermittent issues due to race conditions between the client page's script and the extension's script + ### Implementation - [horse](https://github.com/fiatjaf/horse) (Chrome and derivatives)