improved generateHandshakeAddress()

This commit is contained in:
Daniel Lugo 2020-02-06 13:02:24 -04:00
parent fab6e66439
commit 4c19336fcf
2 changed files with 22 additions and 10 deletions

View file

@ -502,7 +502,7 @@ class Mediator {
await throwOnInvalidToken(token)
await API.Actions.generateHandshakeAddress(user)
await API.Actions.generateHandshakeAddress()
this.socket.emit(Action.GENERATE_NEW_HANDSHAKE_NODE, {
ok: true,
@ -1105,7 +1105,7 @@ const register = async (alias, pass) => {
return authenticate(alias, pass).then(async pub => {
await API.Actions.setDisplayName('anon' + pub.slice(0, 8), user)
await API.Actions.generateHandshakeAddress(user)
await API.Actions.generateHandshakeAddress()
await API.Actions.generateOrderAddress(user)
return pub
})

View file

@ -364,17 +364,15 @@ const blacklist = (publicKey, user) =>
})
/**
* @param {UserGUNNode} user
* @returns {Promise<void>}
*/
const generateHandshakeAddress = user =>
new Promise((res, rej) => {
if (!user.is) {
throw new Error(ErrorCode.NOT_AUTH)
}
const generateHandshakeAddress = async () => {
const gun = require('../Mediator').getGun()
const user = require('../Mediator').getUser()
const address = uuidv1()
await new Promise((res, rej) => {
user.get(Key.CURRENT_HANDSHAKE_ADDRESS).put(address, ack => {
if (ack.err) {
rej(new Error(ack.err))
@ -384,6 +382,20 @@ const generateHandshakeAddress = user =>
})
})
await new Promise((res, rej) => {
gun
.get(Key.HANDSHAKE_NODES)
.get(address)
.put({ unused: 0 }, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
}
/**
* @param {string} recipientPublicKey
* @param {GUNNode} gun
@ -1098,7 +1110,7 @@ const disconnect = async pub => {
})
})
await generateHandshakeAddress(require('../Mediator').getUser())
await generateHandshakeAddress()
}
module.exports = {