const log = require('j7/log'); const bcutils = require('j7/bcutils'); const utils = require('j7/utils'); class NftTransferProcess extends BaseService { 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) { this.throwError(instance, err); } } }; throwError(instance, err) { const errMsg = 'processNftTransferEvent:' + utils.jsonEncode(instance) + ' err:' + err; throw errMsg; } } module.exports = NftTransferProcess;