feat: create db table and store operator id
This commit is contained in:
parent
86e9204a28
commit
9b28c6a3f1
4 changed files with 77 additions and 38 deletions
|
|
@ -1,17 +1,16 @@
|
|||
const axios = require('axios')
|
||||
const _ = require('lodash/fp')
|
||||
const hkdf = require('futoin-hkdf')
|
||||
|
||||
const pify = require('pify')
|
||||
const fs = pify(require('fs'))
|
||||
|
||||
const db = require('../db')
|
||||
const mnemonicHelpers = require('../mnemonic-helpers')
|
||||
const configManager = require('../new-config-manager')
|
||||
const complianceTriggers = require('../compliance-triggers')
|
||||
const options = require('../options')
|
||||
const logger = require('../logger')
|
||||
const plugins = require('../plugins')
|
||||
const { getOperatorId } = require('../operator')
|
||||
|
||||
const TIMEOUT = 10000
|
||||
const MAX_CONTENT_LENGTH = 2000
|
||||
|
|
@ -133,10 +132,10 @@ function sendRadar (data) {
|
|||
|
||||
function mapRecord (rates, settings) {
|
||||
const timestamp = new Date().toISOString()
|
||||
return Promise.all([getMachines(rates, settings), fs.readFile(options.mnemonicPath, 'utf8')])
|
||||
.then(([machines, mnemonic]) => {
|
||||
return Promise.all([getMachines(rates, settings), getOperatorId()])
|
||||
.then(([machines, operatorId]) => {
|
||||
return {
|
||||
operatorId: computeOperatorId(mnemonicHelpers.toEntropyBuffer(mnemonic)),
|
||||
operatorId: operatorId,
|
||||
operator: {
|
||||
name: null,
|
||||
phone: null,
|
||||
|
|
@ -157,7 +156,3 @@ function update (rates, settings) {
|
|||
.then(sendRadar)
|
||||
.catch(err => logger.error(`Failure to update CoinATMRadar`, err))
|
||||
}
|
||||
|
||||
function computeOperatorId (masterSeed) {
|
||||
return hkdf(masterSeed, 16, { salt: 'lamassu-server-salt', info: 'operator-id' }).toString('hex')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,34 +1,15 @@
|
|||
const pify = require('pify')
|
||||
const fs = pify(require('fs'))
|
||||
const hkdf = require('futoin-hkdf')
|
||||
|
||||
const state = require('./state')
|
||||
const mnemonicHelpers = require('../mnemonic-helpers')
|
||||
const options = require('../options')
|
||||
const logger = require('../logger')
|
||||
|
||||
function computeOperatorId (masterSeed) {
|
||||
return hkdf(masterSeed, 16, { salt: 'lamassu-server-salt', info: 'operator-id' }).toString('hex')
|
||||
}
|
||||
|
||||
function getMnemonic () {
|
||||
if (state.mnemonic) return Promise.resolve(state.mnemonic)
|
||||
return fs.readFile(options.mnemonicPath, 'utf8').then(mnemonic => {
|
||||
state.mnemonic = mnemonic
|
||||
return mnemonic
|
||||
})
|
||||
}
|
||||
const { getOperatorId } = require('../operator')
|
||||
|
||||
function findOperatorId (req, res, next) {
|
||||
return getMnemonic().then(mnemonic => {
|
||||
return computeOperatorId(mnemonicHelpers.toEntropyBuffer(mnemonic))
|
||||
}).then(id => {
|
||||
res.locals.operatorId = id
|
||||
return next()
|
||||
}).catch(e => {
|
||||
logger.error('Error while computing operator id\n' + e)
|
||||
next(e)
|
||||
})
|
||||
return getOperatorId()
|
||||
.then(({ id }) => {
|
||||
res.locals.operatorId = id
|
||||
return next()
|
||||
})
|
||||
.catch(e => {
|
||||
console.error('Error while computing operator id\n' + e)
|
||||
next(e)
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = findOperatorId
|
||||
|
|
|
|||
8
lib/operator.js
Normal file
8
lib/operator.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
const db = require('./db')
|
||||
|
||||
function getOperatorId () {
|
||||
const sql = `SELECT id FROM operator_ids WHERE description = 'mnemonic'`
|
||||
return db.oneOrNone(sql)
|
||||
}
|
||||
|
||||
module.exports = { getOperatorId }
|
||||
55
migrations/1623413776161-create-operator-ids.js
Normal file
55
migrations/1623413776161-create-operator-ids.js
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
var db = require('./db')
|
||||
const pify = require('pify')
|
||||
const fs = pify(require('fs'))
|
||||
const hkdf = require('futoin-hkdf')
|
||||
|
||||
const state = require('../lib/middlewares/state')
|
||||
const mnemonicHelpers = require('../lib/mnemonic-helpers')
|
||||
const options = require('../lib/options')
|
||||
|
||||
function computeOperatorId (masterSeed) {
|
||||
return hkdf(masterSeed, 16, { salt: 'lamassu-server-salt', info: 'operator-id' }).toString('hex')
|
||||
}
|
||||
|
||||
function getMnemonic () {
|
||||
if (state.mnemonic) return Promise.resolve(state.mnemonic)
|
||||
return fs.readFile(options.mnemonicPath, 'utf8').then(mnemonic => {
|
||||
state.mnemonic = mnemonic
|
||||
return mnemonic
|
||||
})
|
||||
}
|
||||
|
||||
function generateOperatorId () {
|
||||
return getMnemonic().then(mnemonic => {
|
||||
return computeOperatorId(mnemonicHelpers.toEntropyBuffer(mnemonic))
|
||||
}).then(id => {
|
||||
return id
|
||||
}).catch(e => {
|
||||
console.error('Error while computing operator id\n' + e)
|
||||
throw e
|
||||
})
|
||||
}
|
||||
|
||||
exports.up = function (next) {
|
||||
const sql =
|
||||
[
|
||||
`CREATE TABLE operator_ids (
|
||||
id TEXT PRIMARY KEY,
|
||||
description TEXT NOT NULL)`
|
||||
]
|
||||
generateOperatorId()
|
||||
.then(operatorId => {
|
||||
const sql2 = `INSERT INTO operator_ids (id, description) VALUES ('${operatorId}','mnemonic' )`
|
||||
sql.push(sql2)
|
||||
db.multi(sql, next)
|
||||
.then(() => next())
|
||||
})
|
||||
.catch(e => {
|
||||
db.multi(sql, next)
|
||||
.then(() => next())
|
||||
})
|
||||
}
|
||||
|
||||
exports.down = function (next) {
|
||||
next()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue