diff --git a/extension/manifest.json b/extension/manifest.json index 3eb1ce1..d45f954 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,7 +1,7 @@ { "name": "nos2x", "description": "Nostr Signer Extension", - "version": "1.4.1", + "version": "1.5.0", "homepage_url": "https://github.com/fiatjaf/nos2x", "manifest_version": 3, "icons": { diff --git a/extension/popup.jsx b/extension/popup.jsx index fd1ed68..a3c2683 100644 --- a/extension/popup.jsx +++ b/extension/popup.jsx @@ -1,15 +1,26 @@ import browser from 'webextension-polyfill' import {render} from 'react-dom' import {getPublicKey} from 'nostr-tools' -import React, {useState, useEffect} from 'react' +import {bech32} from 'bech32' +import React, {useState, useRef, useEffect} from 'react' function Popup() { let [key, setKey] = useState('') + let keys = useRef([]) useEffect(() => { browser.storage.local.get('private_key').then(results => { if (results.private_key) { - setKey(getPublicKey(results.private_key)) + let hexKey = getPublicKey(results.private_key) + let npubKey = bech32.encode( + 'npub', + bech32.toWords(Buffer.from(hexKey, 'hex')) + ) + + setKey(npubKey) + + keys.current.push(hexKey) + keys.current.push(npubKey) } else { setKey(null) } @@ -25,7 +36,9 @@ function Popup() {
) : ( <> -your public key:
++ ↩️ your public key: +
) + + function toggleKeyType(e) { + e.preventDefault() + let nextKeyType = + keys.current[(keys.current.indexOf(key) + 1) % keys.current.length] + setKey(nextKeyType) + } } render(