handle error codes
This commit is contained in:
parent
d7c155aa52
commit
fdbde085a3
2 changed files with 67 additions and 9 deletions
|
|
@ -380,14 +380,31 @@ module.exports = async (
|
||||||
const walletStatus = await walletExists()
|
const walletStatus = await walletExists()
|
||||||
const availableService = await getAvailableService()
|
const availableService = await getAvailableService()
|
||||||
const statusMessage = availableService.walletStatus
|
const statusMessage = availableService.walletStatus
|
||||||
|
if (availableService.code === 12) {
|
||||||
|
return res.status(401).json({
|
||||||
|
field: 'lnd_locked',
|
||||||
|
errorMessage: availableService.message
|
||||||
|
? availableService.message
|
||||||
|
: 'unknown'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (availableService.code === 14) {
|
||||||
|
return res.status(401).json({
|
||||||
|
field: 'lnd_dead',
|
||||||
|
errorMessage: availableService.message
|
||||||
|
? availableService.message
|
||||||
|
: 'unknown'
|
||||||
|
})
|
||||||
|
}
|
||||||
if (walletStatus) {
|
if (walletStatus) {
|
||||||
if (statusMessage === 'unlocked') {
|
if (statusMessage === 'unlocked') {
|
||||||
return next()
|
return next()
|
||||||
}
|
}
|
||||||
|
|
||||||
return res.status(401).json({
|
return res.status(401).json({
|
||||||
field: 'wallet',
|
field: 'wallet',
|
||||||
errorMessage: statusMessage ? statusMessage : 'unknown'
|
errorMessage: availableService.message
|
||||||
|
? availableService.message
|
||||||
|
: 'unknown'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -399,6 +416,18 @@ module.exports = async (
|
||||||
next()
|
next()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(err)
|
logger.error(err)
|
||||||
|
if (err.code === 12) {
|
||||||
|
return res.status(401).json({
|
||||||
|
field: 'lnd_locked',
|
||||||
|
errorMessage: err.message ? err.message : 'unknown'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (err.code === 14) {
|
||||||
|
return res.status(401).json({
|
||||||
|
field: 'lnd_dead',
|
||||||
|
errorMessage: err.message ? err.message : 'unknown'
|
||||||
|
})
|
||||||
|
}
|
||||||
res.status(500).json({
|
res.status(500).json({
|
||||||
field: 'wallet',
|
field: 'wallet',
|
||||||
errorMessage: err.message ? err.message : err
|
errorMessage: err.message ? err.message : err
|
||||||
|
|
@ -602,17 +631,46 @@ module.exports = async (
|
||||||
stream.on('end', () => {
|
stream.on('end', () => {
|
||||||
logger.info('Channel backup stream ended, starting a new one...')
|
logger.info('Channel backup stream ended, starting a new one...')
|
||||||
// Prevents call stack overflow exceptions
|
// Prevents call stack overflow exceptions
|
||||||
process.nextTick(onNewChannelBackup)
|
//process.nextTick(onNewChannelBackup)
|
||||||
})
|
})
|
||||||
stream.on('error', err => {
|
stream.on('error', err => {
|
||||||
logger.error('Channel backup stream error:', err)
|
logger.error('Channel backup stream error:', err)
|
||||||
})
|
})
|
||||||
stream.on('status', status => {
|
stream.on('status', status => {
|
||||||
if (status.code === 14) {
|
logger.error('Channel backup stream status:', status)
|
||||||
// Prevents call stack overflow exceptions
|
switch (status.code) {
|
||||||
process.nextTick(() => setTimeout(onNewChannelBackup, 30000))
|
case 0: {
|
||||||
} else {
|
logger.info('Channel backup stream ok')
|
||||||
logger.error('Channel backup stream status:', status)
|
break
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
//Happens to fire when the grpc client lose access to macaroon file
|
||||||
|
logger.warn('Channel backup got UNKNOWN error status')
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 12: {
|
||||||
|
logger.warn(
|
||||||
|
'Channel backup LND locked, new registration in 60 seconds'
|
||||||
|
)
|
||||||
|
process.nextTick(() =>
|
||||||
|
setTimeout(() => onNewTransaction(socket, subID), 60000)
|
||||||
|
)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 13: {
|
||||||
|
//https://grpc.github.io/grpc/core/md_doc_statuscodes.html
|
||||||
|
logger.error('Channel backup INTERNAL LND error')
|
||||||
|
break
|
||||||
|
}
|
||||||
|
case 14: {
|
||||||
|
logger.error(
|
||||||
|
'Channel backup LND disconnected, sockets reconnecting in 30 seconds...'
|
||||||
|
)
|
||||||
|
process.nextTick(() =>
|
||||||
|
setTimeout(() => onNewTransaction(socket, subID), 30000)
|
||||||
|
)
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ class LNDErrorManager {
|
||||||
this._healthListeners.length = 0
|
this._healthListeners.length = 0
|
||||||
this._isCheckingHealth = false
|
this._isCheckingHealth = false
|
||||||
}
|
}
|
||||||
const deadline = Date.now() + 2000
|
const deadline = Date.now() + 4000
|
||||||
lightning.getInfo({},{deadline}, callback)
|
lightning.getInfo({},{deadline}, callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue