add interface for getRelays() and bump version.

This commit is contained in:
fiatjaf
2022-02-15 16:15:27 -03:00
parent 414c0ea337
commit 259a37d4d7
4 changed files with 22 additions and 11 deletions

View File

@@ -58,6 +58,10 @@ async function handleContentScriptMessage({type, params, host}) {
case 'getPublicKey': {
return Buffer.from(getPublicKey(sk)).toString('hex')
}
case 'getRelays': {
let results = await browser.storage.local.get('relays')
return results.relays || {}
}
case 'signEvent': {
let {event} = params

View File

@@ -2,6 +2,7 @@ import browser from 'webextension-polyfill'
export const PERMISSIONS_REQUIRED = {
getPublicKey: 1,
getRelays: 5,
signEvent: 10,
'nip04.encrypt': 20,
'nip04.decrypt': 20
@@ -9,6 +10,7 @@ export const PERMISSIONS_REQUIRED = {
const ORDERED_PERMISSIONS = [
[1, ['getPublicKey']],
[5, ['getRelays']],
[10, ['signEvent']],
[20, ['nip04.encrypt']],
[20, ['nip04.decrypt']]
@@ -16,6 +18,7 @@ const ORDERED_PERMISSIONS = [
const PERMISSION_NAMES = {
getPublicKey: 'read your public key',
getRelays: 'read your list of preferred relays',
signEvent: 'sign events using your private key',
'nip04.encrypt': 'encrypt messages to peers',
'nip04.decrypt': 'decrypt messages from peers'

View File

@@ -1,7 +1,7 @@
{
"name": "nos2x",
"description": "Nostr Signer Extension",
"version": "1.3.0",
"version": "1.4.0",
"homepage_url": "https://github.com/fiatjaf/nos2x",
"manifest_version": 3,
"icons": {

View File

@@ -12,6 +12,20 @@ window.nostr = {
return this._call('signEvent', {event})
},
async getRelays() {
return this._call('getRelays', {})
},
nip04: {
async encrypt(peer, plaintext) {
return window.nostr._call('nip04.encrypt', {peer, plaintext})
},
async decrypt(peer, ciphertext) {
return window.nostr._call('nip04.decrypt', {peer, ciphertext})
}
},
_call(type, params) {
return new Promise((resolve, reject) => {
let id = Math.random().toString().slice(4)
@@ -26,16 +40,6 @@ window.nostr = {
'*'
)
})
},
nip04: {
encrypt(peer, plaintext) {
return window.nostr._call('nip04.encrypt', {peer, plaintext})
},
decrypt(peer, ciphertext) {
return window.nostr._call('nip04.decrypt', {peer, ciphertext})
}
}
}