Socket
Socket
Sign inDemoInstall

nostr-tools

Package Overview
Dependencies
Maintainers
1
Versions
142
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nostr-tools - npm Package Compare versions

Comparing version 0.19.0 to 0.20.0

64

nip05.js

@@ -1,52 +0,26 @@

import {Buffer} from 'buffer'
import dnsPacket from 'dns-packet'
import fetch from 'cross-fetch'
const dohProviders = [
'cloudflare-dns.com',
'fi.doh.dns.snopyta.org',
'basic.bravedns.com',
'hydra.plan9-ns1.com',
'doh.pl.ahadns.net',
'dns.flatuslifir.is',
'doh.dns.sb',
'doh.li'
]
export async function searchDomain(domain, query = '') {
try {
let res = await (
await fetch(`https://${domain}/.well-known/nostr.json?name=${query}`)
).json()
let counter = 0
return res.names
} catch (_) {
return []
}
}
export async function keyFromDomain(domain) {
let host = dohProviders[counter % dohProviders.length]
export async function queryName(fullname) {
try {
let [name, domain] = fullname.split('@')
let res = await (
await fetch(`https://${domain}/.well-known/nostr.json?name=${name}`)
).json()
let buf = dnsPacket.encode({
type: 'query',
id: Math.floor(Math.random() * 65534),
flags: dnsPacket.RECURSION_DESIRED,
questions: [
{
type: 'TXT',
name: `_nostrkey.${domain}`
}
]
})
let fetching = fetch(`https://${host}/dns-query`, {
method: 'POST',
headers: {
'Content-Type': 'application/dns-message',
'Content-Length': Buffer.byteLength(buf)
},
body: buf
})
counter++
try {
let response = Buffer.from(await (await fetching).arrayBuffer())
let {answers} = dnsPacket.decode(response)
if (answers.length === 0) return null
return Buffer.from(answers[0].data[0]).toString()
} catch (err) {
console.log(`error querying DNS for ${domain} on ${host}`, err)
return res.names && res.names[name]
} catch (_) {
return null
}
}
{
"name": "nostr-tools",
"version": "0.19.0",
"version": "0.20.0",
"description": "Tools for making a Nostr client.",

@@ -15,3 +15,3 @@ "repository": {

"create-hash": "^1.2.0",
"dns-packet": "^5.2.4",
"cross-fetch": "^3.1.4",
"micro-bip32": "^0.1.0",

@@ -18,0 +18,0 @@ "micro-bip39": "^0.1.3",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc