This commit is contained in:
aozhiwei 2022-04-22 09:50:48 +08:00
parent 57fea86b5d
commit 787eacb993
3 changed files with 39 additions and 31 deletions

View File

@ -13,8 +13,7 @@ class BoxOpenedProcess extends BaseService {
] ]
); );
if (err) { if (err) {
log.error('processEvent:' + err); this.throwError(instance, err);
throw 'processEvent:' + err;
} }
if (!row) { if (!row) {
const blockNumber = event['blockNumber']; const blockNumber = event['blockNumber'];
@ -49,8 +48,7 @@ class BoxOpenedProcess extends BaseService {
fieldList fieldList
); );
if (err) { if (err) {
log.error('processEvent:' + err); this.throwError(instance, err);
throw 'processEvent:' + 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; module.exports = BoxOpenedProcess;

View File

@ -72,14 +72,16 @@ class EventCenter extends BaseService {
this.instances.forEach(async (item) => { this.instances.forEach(async (item) => {
factory.create('EventProcess', null) factory.create('EventProcess', null)
.init(item, async (event) = { .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) factory.create('EventProcess', null)
.init(this.boxInstance, async (event) = { .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);
}); });
} }
} }

View File

@ -4,41 +4,44 @@ const utils = require('j7/utils');
class NftTransferProcess extends BaseService { class NftTransferProcess extends BaseService {
async start(conn, event) { async start(instance, conn, event) {
const {err, row} = await conn.ormSelectOne( 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', 't_nft_transfer',
[ [
['token_id', returnValues['tokenId']],
['txhash', event['transactionHash']], ['txhash', event['transactionHash']],
['block_number', event['blockNumber']],
['log_index', event['logIndex']], ['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) { if (err) {
log.error('processEvent:' + err); this.throwError(instance, 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;
}
} }
}
}; };
throwError(instance, err) {
const errMsg = 'processNftTransferEvent:' + utils.jsonEncode(instance) + ' err:' + err;
throw errMsg;
}
} }
module.exports = NftTransferProcess; module.exports = NftTransferProcess;