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

View file

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