game2006market/server/web3helper/services/nft_transfer_process.js
aozhiwei 57fea86b5d 1
2022-04-22 09:40:37 +08:00

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;