You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
6 years ago
|
/*!
|
||
|
* scripts/import-hd-accounts.js
|
||
|
* Copyright © 2019 – Katana Cryptographic Ltd. All Rights Reserved.
|
||
|
*/
|
||
|
'use strict'
|
||
|
|
||
|
const util = require('../lib/util')
|
||
|
const Logger = require('../lib/logger')
|
||
|
const db = require('../lib/db/mysql-db-wrapper')
|
||
|
const hdaHelper = require('../lib/bitcoin/hd-accounts-helper')
|
||
|
const hdaService = require('../lib/bitcoin/hd-accounts-service')
|
||
|
const apiHelper = require('../accounts/api-helper')
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Script importing a list of hdaccounts (xpubs, ypubs, zpubs) into the database
|
||
|
* Used to declare the xpub, ypub, zpub into the database before the initial setup
|
||
|
*/
|
||
|
|
||
|
async function run(strEntities) {
|
||
|
const entities = apiHelper.parseEntities(strEntities)
|
||
|
|
||
|
if (entities.xpubs.length > 0) {
|
||
|
for (let i = 0; i < entities.xpubs.length; i++) {
|
||
|
const xpub = entities.xpubs[i]
|
||
|
|
||
|
let scheme = hdaHelper.BIP44
|
||
|
|
||
|
if (entities.ypubs[i])
|
||
|
scheme = hdaHelper.BIP49
|
||
|
else if (entities.zpubs[i])
|
||
|
scheme = hdaHelper.BIP84
|
||
|
|
||
|
await hdaService.createHdAccount(xpub, scheme)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Launch the script
|
||
|
*/
|
||
|
|
||
|
// Retrieves command line arguments
|
||
|
if (process.argv.length < 3) {
|
||
|
Logger.error(null, 'Missing arguments. Command = import-hd-accounts.js <xpub1>|<ypub1>|<zpub1>|...')
|
||
|
return
|
||
|
}
|
||
|
|
||
|
Logger.info('Start processing')
|
||
|
|
||
|
const entities = process.argv[2]
|
||
|
|
||
|
const startupTimeout = setTimeout(async function() {
|
||
|
return run(entities).then(() => {
|
||
|
Logger.info('Process completed')
|
||
|
})
|
||
|
}, 1500)
|