no event.parsedAddress
This commit is contained in:
parent
c499e0f945
commit
c62e7fc3bf
|
@ -10,13 +10,16 @@ const { muxrpcMissing } = require('./utils')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Array<[any, any]>} parsedAddress
|
* @param {string} addresses
|
||||||
* @returns {string | undefined}
|
* @returns {string | undefined}
|
||||||
*/
|
*/
|
||||||
function extractSHSEPubkey(parsedAddress) {
|
function extractSHSEPubkey(addresses) {
|
||||||
for (const [transport, transform] of parsedAddress) {
|
for (const address of addresses.split(';')) {
|
||||||
if (transform.name === 'shse') {
|
for (const [transport, transform] of address.split('~')) {
|
||||||
return bs58.encode(transform.pubkey)
|
const [name, pubkey, extra] = transform.split(':')
|
||||||
|
if (name === 'shse') {
|
||||||
|
return pubkey
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,8 +45,8 @@ const makeTunnelPlugin = (hubs, peer) => (/** @type {any}} */ msConfig) => {
|
||||||
pull(
|
pull(
|
||||||
peer.net.listen(),
|
peer.net.listen(),
|
||||||
pull.filter(({ type }) => type === 'connected'),
|
pull.filter(({ type }) => type === 'connected'),
|
||||||
pull.drain(async ({ address, parsedAddress, details }) => {
|
pull.drain(async ({ address, details }) => {
|
||||||
const pubkey = extractSHSEPubkey(parsedAddress)
|
const pubkey = extractSHSEPubkey(address)
|
||||||
if (!pubkey) return
|
if (!pubkey) return
|
||||||
if (hubs.has(pubkey)) return
|
if (hubs.has(pubkey)) return
|
||||||
if (!details?.rpc) return
|
if (!details?.rpc) return
|
||||||
|
@ -69,8 +72,8 @@ const makeTunnelPlugin = (hubs, peer) => (/** @type {any}} */ msConfig) => {
|
||||||
pull(
|
pull(
|
||||||
peer.net.listen(),
|
peer.net.listen(),
|
||||||
pull.filter(({ type }) => type === 'disconnected'),
|
pull.filter(({ type }) => type === 'disconnected'),
|
||||||
pull.drain(({ parsedAddress }) => {
|
pull.drain(({ address }) => {
|
||||||
const pubkey = extractSHSEPubkey(parsedAddress)
|
const pubkey = extractSHSEPubkey(address)
|
||||||
if (!pubkey) return
|
if (!pubkey) return
|
||||||
if (!hubs.has(pubkey)) return
|
if (!hubs.has(pubkey)) return
|
||||||
hubs.get(pubkey)?.close()
|
hubs.get(pubkey)?.close()
|
||||||
|
@ -107,7 +110,7 @@ const makeTunnelPlugin = (hubs, peer) => (/** @type {any}} */ msConfig) => {
|
||||||
|
|
||||||
// If no hub found, wait a second and try again
|
// If no hub found, wait a second and try again
|
||||||
if (!hubRPC) {
|
if (!hubRPC) {
|
||||||
await new Promise(resolve => setTimeout(resolve, 1000))
|
await new Promise((resolve) => setTimeout(resolve, 1000))
|
||||||
hubRPC = hubs.get(hub)?.rpc
|
hubRPC = hubs.get(hub)?.rpc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue