68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
const util = require('util');
|
|
const utils = require('./utils');
|
|
const db = require("./db");
|
|
const dbhelper = require("./dbhelper");
|
|
const bchelper = require("./bchelper");
|
|
const log = require("./log");
|
|
const dblog = require("./dblog");
|
|
const bc = require('./blockchain');
|
|
const metamgr = require('./metamgr');
|
|
const C = require('./C');
|
|
|
|
class Withdrawal {
|
|
|
|
constructor(db, isNew) {
|
|
this.isNew = isNew;
|
|
this.db = db;
|
|
}
|
|
|
|
init () {
|
|
setTimeout(this.start.bind(this), utils.randRange(100, 1000));
|
|
}
|
|
|
|
async start() {
|
|
const logClass = 'start';
|
|
await bc.mustBeActive();
|
|
await this.updateDbMustBeSuccess
|
|
(logClass,
|
|
[
|
|
['state', 1]
|
|
]);
|
|
}
|
|
|
|
async updateDbMustBeSuccess(logClass, fieldList) {
|
|
const err = await dbhelper.update(
|
|
't_withdrawal',
|
|
[
|
|
['idx', this.db['idx']]
|
|
],
|
|
fieldList);
|
|
if (err) {
|
|
log.error(util.format('%s updateDbMustBeSuccess withdrawalDb:%s fieldList:%s err:%s',
|
|
logClass,
|
|
utils.jsonEncode(this.db),
|
|
utils.jsonEncode(fieldList),
|
|
err
|
|
)
|
|
);
|
|
await this.suspend(logClass + ' updateDbMustBeSuccess ', err);
|
|
} else {
|
|
fieldList.forEach((val) => {
|
|
const name = val[0];
|
|
const value = val[1];
|
|
this.db[name] = value;
|
|
});
|
|
log.info(util.format('%s updateDbMustBeSuccess db:%s',
|
|
logClass,
|
|
utils.jsonEncode(this.db),
|
|
utils.jsonEncode(fieldList)
|
|
)
|
|
);
|
|
}
|
|
return err;
|
|
}
|
|
|
|
}
|
|
|
|
exports.Withdrawal = Withdrawal;
|