diff --git a/server/web3helper/services/event_center.js b/server/web3helper/services/event_center.js index 05e6089..adcb93d 100644 --- a/server/web3helper/services/event_center.js +++ b/server/web3helper/services/event_center.js @@ -93,6 +93,8 @@ class EventCenter extends BaseService { const outputLog = async () => { while (true) { log.info(++count + '-------------------------------------------------------------'); + log.info('pendingConfirmOwnerHash.size:' + + Object.keys(this.pendingConfirmOwnerHash).length); allInstances.forEach((item) => { log.info(utils.jsonEncode(item)); }); diff --git a/server/web3helper/services/exec_confirm_owner.js b/server/web3helper/services/exec_confirm_owner.js index 246c7d2..a2e4481 100644 --- a/server/web3helper/services/exec_confirm_owner.js +++ b/server/web3helper/services/exec_confirm_owner.js @@ -19,7 +19,7 @@ class ExecConfirmOwner { this.addTryCount(); await this.doConfirm(); } catch (err) { - console.log(err); + log.error('ExecConfirmOwner:' + this.tokenId + ' err:' + err); } finally { this.destory(); } @@ -39,7 +39,7 @@ class ExecConfirmOwner { const oldTryCount = this.tryCount; const oldBlockNumber = bc.getCurrBlockNumber(); let oldOwner = await this.getOwner(); - while (oldBlockNumber + 8 < bc.getCurrBlockNumber()) { + while (oldBlockNumber + 8 > bc.getCurrBlockNumber()) { await utils.sleep(1000 + utils.randRange(0, 500)); } @@ -48,8 +48,8 @@ class ExecConfirmOwner { let newOwner = await this.getOwner(); if (oldOwner == newOwner) { - await this.updateConfirmed(newOwner, oldBlockNumber); - if (oldTryCount == this.tryCount) { + const ok = await this.updateConfirmed(newOwner, oldBlockNumber); + if (ok && oldTryCount == this.tryCount) { break; } } @@ -101,7 +101,9 @@ class ExecConfirmOwner { async getOwner() { const instanceName = this.getInstanceName(); - log.info('getOwner:' + instanceName + ' tryCount:' + this.tryCount); + log.info('getOwner:' + instanceName + + ' tryCount:' + this.tryCount + + ' token_id:' + this.tokenId); while (true) { await bc.lockQuery(); try { @@ -123,7 +125,8 @@ class ExecConfirmOwner { async updateConfirmed(newOwner, blockNumber) { const {err, conn} = await app.getDbConn('MarketDb0'); if (err) { - return; + log.error('updateConfirmed:' + this.tokenId + ' err:' + err); + return false; } try { { @@ -134,19 +137,31 @@ class ExecConfirmOwner { ], [ ['owner_address', bcutils.toNormalAddress(newOwner)], + ['confirm_count', this.nftDb['confirm_count'] + 1], ['confirm_block_number', blockNumber] ]); + if (err) { + log.error('updateConfirmed:' + this.tokenId + ' err:' + err); + return false; + } } { - await conn.execScript( - 'UPDATE t_nft_transfer SET `owner_confirmed` = 1 WHERE block_number < ?', + const {err} = await conn.execScript( + 'UPDATE t_nft_transfer SET `owner_confirmed`=1 ' + + 'WHERE token_id=? AND block_number < ?', [ + this.tokenId, blockNumber ]); + if (err) { + log.error('updateConfirmed:' + this.tokenId + ' err:' + err); + return false; + } } } finally { conn.release() } + return true; } }