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;