* dev: (85 commits) chore: console.log debug leftovers fix: third level navigation links fix: show subheader on refresh fix: machines/:id routing fix: customer route chore: update wallet nodes feat: shorten long addresses in funding page feat: shorten long addresses refactor: support copied text different from presented text chore: udpate react, downshift and routing refactor: use Wizard component on first route fix: autocomplete component rendering feat: skip2fa option on .env fix: drop contraint before dropping index chore: stop using alias imports fix: re-instate urlResolver chore: server code formatting chore: reformat code chore: adding eslint and prettier config chore: typo ...
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
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')
|
|
|
|
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(process.env.MNEMONIC_PATH, 'utf8').then(mnemonic => {
|
|
state.mnemonic = mnemonic
|
|
return mnemonic
|
|
})
|
|
}
|
|
|
|
function generateOperatorId() {
|
|
return getMnemonic()
|
|
.then(mnemonic => {
|
|
return computeOperatorId(mnemonicHelpers.toEntropyBuffer(mnemonic))
|
|
})
|
|
.catch(e => {
|
|
console.error('Error while computing operator id\n' + e)
|
|
throw e
|
|
})
|
|
}
|
|
|
|
exports.up = function (next) {
|
|
return generateOperatorId().then(operatorId => {
|
|
const sql = [
|
|
`CREATE TABLE operator_ids (
|
|
id serial PRIMARY KEY,
|
|
operator_id TEXT NOT NULL,
|
|
service TEXT NOT NULL
|
|
)`,
|
|
`INSERT INTO operator_ids (operator_id, service) VALUES ('${operatorId}','middleware')`,
|
|
`INSERT INTO operator_ids (operator_id, service) VALUES ('${operatorId}','coinatmradar')`,
|
|
`INSERT INTO operator_ids (operator_id, service) VALUES ('${operatorId}','authentication')`,
|
|
]
|
|
db.multi(sql, next)
|
|
})
|
|
}
|
|
|
|
exports.down = function (next) {
|
|
next()
|
|
}
|