add interface for getRelays() and bump version.
This commit is contained in:
@@ -58,6 +58,10 @@ async function handleContentScriptMessage({type, params, host}) {
|
|||||||
case 'getPublicKey': {
|
case 'getPublicKey': {
|
||||||
return Buffer.from(getPublicKey(sk)).toString('hex')
|
return Buffer.from(getPublicKey(sk)).toString('hex')
|
||||||
}
|
}
|
||||||
|
case 'getRelays': {
|
||||||
|
let results = await browser.storage.local.get('relays')
|
||||||
|
return results.relays || {}
|
||||||
|
}
|
||||||
case 'signEvent': {
|
case 'signEvent': {
|
||||||
let {event} = params
|
let {event} = params
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import browser from 'webextension-polyfill'
|
|||||||
|
|
||||||
export const PERMISSIONS_REQUIRED = {
|
export const PERMISSIONS_REQUIRED = {
|
||||||
getPublicKey: 1,
|
getPublicKey: 1,
|
||||||
|
getRelays: 5,
|
||||||
signEvent: 10,
|
signEvent: 10,
|
||||||
'nip04.encrypt': 20,
|
'nip04.encrypt': 20,
|
||||||
'nip04.decrypt': 20
|
'nip04.decrypt': 20
|
||||||
@@ -9,6 +10,7 @@ export const PERMISSIONS_REQUIRED = {
|
|||||||
|
|
||||||
const ORDERED_PERMISSIONS = [
|
const ORDERED_PERMISSIONS = [
|
||||||
[1, ['getPublicKey']],
|
[1, ['getPublicKey']],
|
||||||
|
[5, ['getRelays']],
|
||||||
[10, ['signEvent']],
|
[10, ['signEvent']],
|
||||||
[20, ['nip04.encrypt']],
|
[20, ['nip04.encrypt']],
|
||||||
[20, ['nip04.decrypt']]
|
[20, ['nip04.decrypt']]
|
||||||
@@ -16,6 +18,7 @@ const ORDERED_PERMISSIONS = [
|
|||||||
|
|
||||||
const PERMISSION_NAMES = {
|
const PERMISSION_NAMES = {
|
||||||
getPublicKey: 'read your public key',
|
getPublicKey: 'read your public key',
|
||||||
|
getRelays: 'read your list of preferred relays',
|
||||||
signEvent: 'sign events using your private key',
|
signEvent: 'sign events using your private key',
|
||||||
'nip04.encrypt': 'encrypt messages to peers',
|
'nip04.encrypt': 'encrypt messages to peers',
|
||||||
'nip04.decrypt': 'decrypt messages from peers'
|
'nip04.decrypt': 'decrypt messages from peers'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "nos2x",
|
"name": "nos2x",
|
||||||
"description": "Nostr Signer Extension",
|
"description": "Nostr Signer Extension",
|
||||||
"version": "1.3.0",
|
"version": "1.4.0",
|
||||||
"homepage_url": "https://github.com/fiatjaf/nos2x",
|
"homepage_url": "https://github.com/fiatjaf/nos2x",
|
||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"icons": {
|
"icons": {
|
||||||
|
|||||||
@@ -12,6 +12,20 @@ window.nostr = {
|
|||||||
return this._call('signEvent', {event})
|
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) {
|
_call(type, params) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let id = Math.random().toString().slice(4)
|
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})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user