diff --git a/server/web3helper/services/boxopened_process.js b/server/web3helper/services/boxopened_process.js index 03860fc..b017993 100644 --- a/server/web3helper/services/boxopened_process.js +++ b/server/web3helper/services/boxopened_process.js @@ -13,8 +13,7 @@ class BoxOpenedProcess extends BaseService { ] ); if (err) { - log.error('processEvent:' + err); - throw 'processEvent:' + err; + this.throwError(instance, err); } if (!row) { const blockNumber = event['blockNumber']; @@ -49,8 +48,7 @@ class BoxOpenedProcess extends BaseService { fieldList ); if (err) { - log.error('processEvent:' + err); - throw 'processEvent:' + err; + this.throwError(instance, err); } } } @@ -94,6 +92,11 @@ class BoxOpenedProcess extends BaseService { } } + throwError(instance, err) { + const errMsg = 'processBoxOpenedEvent:' + utils.jsonEncode(instance) + ' err:' + err; + throw errMsg; + } + } module.exports = BoxOpenedProcess; diff --git a/server/web3helper/services/event_center.js b/server/web3helper/services/event_center.js index 213f030..ce1d2db 100644 --- a/server/web3helper/services/event_center.js +++ b/server/web3helper/services/event_center.js @@ -72,14 +72,16 @@ class EventCenter extends BaseService { this.instances.forEach(async (item) => { factory.create('EventProcess', null) .init(item, async (event) = { - await factory.create('NftTransferProcess', null).start(this.conn, event); + await factory.create('NftTransferProcess', null) + .start(item, this.conn, event); }) }); } { factory.create('EventProcess', null) .init(this.boxInstance, async (event) = { - await factory.create('BoxOpenedProcess', null).start(this.conn, event); + await factory.create('BoxOpenedProcess', null) + .start(this.boxInstance, this.conn, event); }); } } diff --git a/server/web3helper/services/nft_transfer_process.js b/server/web3helper/services/nft_transfer_process.js index a5c19a9..aea514f 100644 --- a/server/web3helper/services/nft_transfer_process.js +++ b/server/web3helper/services/nft_transfer_process.js @@ -4,41 +4,44 @@ const utils = require('j7/utils'); class NftTransferProcess extends BaseService { - async start(conn, event) { - const {err, row} = await conn.ormSelectOne( + async start(instance, conn, event) { + const {err, row} = await conn.ormSelectOne( + 't_nft_transfer', + [ + ['txhash', event['transactionHash']], + ['log_index', event['logIndex']], + ] + ); + if (err) { + this.throwError(instance, err); + } + if (!row) { + const returnValues = event['returnValues']; + const {err} = await conn.insert( 't_nft_transfer', [ + ['token_id', returnValues['tokenId']], ['txhash', event['transactionHash']], + ['block_number', event['blockNumber']], ['log_index', event['logIndex']], + ['_from', bcutils.toNormalAddress(returnValues['from'])], + ['_to', bcutils.toNormalAddress(returnValues['to'])], + ['raw_data', utils.jsonEncode(event)], + ['createtime', utils.getUtcTime()], + ['modifytime', utils.getUtcTime()], ] ); if (err) { - log.error('processEvent:' + err); - throw 'processEvent:' + err; - } - if (!row) { - const returnValues = event['returnValues']; - const {err} = await conn.insert( - 't_nft_transfer', - [ - ['token_id', returnValues['tokenId']], - ['txhash', event['transactionHash']], - ['block_number', event['blockNumber']], - ['log_index', event['logIndex']], - ['_from', bcutils.toNormalAddress(returnValues['from'])], - ['_to', bcutils.toNormalAddress(returnValues['to'])], - ['raw_data', utils.jsonEncode(event)], - ['createtime', utils.getUtcTime()], - ['modifytime', utils.getUtcTime()], - ] - ); - if (err) { - log.error('processEvent:' + err); - throw 'processEvent:' + err; - } + this.throwError(instance, err); } + } }; + throwError(instance, err) { + const errMsg = 'processNftTransferEvent:' + utils.jsonEncode(instance) + ' err:' + err; + throw errMsg; + } + } module.exports = NftTransferProcess;