45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
const log = require('j7/log');
|
|
const bcutils = require('j7/bcutils');
|
|
const utils = require('j7/utils');
|
|
|
|
class NftTransferProcess extends BaseService {
|
|
|
|
async start(conn, event) {
|
|
const {err, row} = await conn.ormSelectOne(
|
|
't_nft_transfer',
|
|
[
|
|
['txhash', event['transactionHash']],
|
|
['log_index', event['logIndex']],
|
|
]
|
|
);
|
|
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;
|
|
}
|
|
}
|
|
};
|
|
|
|
}
|
|
|
|
module.exports = NftTransferProcess;
|