From 62b16a24c6c6f7da0a8738b44002314a203ae39a Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Fri, 4 Nov 2022 22:24:03 -0300
Subject: [PATCH] show npub key by default.
---
extension/manifest.json | 2 +-
extension/popup.jsx | 26 +++++++++++++++++++++++---
package.json | 1 +
yarn.lock | 5 +++++
4 files changed, 30 insertions(+), 4 deletions(-)
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(, document.getElementById('main'))
diff --git a/package.json b/package.json
index b6bfc2f..c625ce3 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,7 @@
"dependencies": {
"@esbuild-plugins/node-globals-polyfill": "^0.1.1",
"async-mutex": "^0.3.2",
+ "bech32": "^2.0.0",
"esbuild": "^0.14.11",
"esbuild-plugin-alias": "^0.2.1",
"eslint": "^8.6.0",
diff --git a/yarn.lock b/yarn.lock
index 52151bf..9b73ab8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -130,6 +130,11 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+bech32@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355"
+ integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"