game2006market/server/web3helper/services/nft_transfer_process.js
aozhiwei 787eacb993 1
2022-04-22 09:50:48 +08:00

48 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(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;