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) {
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;

View File

@ -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);
});
}
}

View File

@ -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;