This commit is contained in:
aozhiwei 2024-07-03 11:38:28 +08:00
parent 89ee4704b7
commit f3d2475177
4 changed files with 75 additions and 0 deletions

View File

@ -464,3 +464,34 @@ CREATE TABLE `t_webhook_process_last_idx` (
UNIQUE KEY `unikey` (`event_name`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `t_nft_lock_event`
--
DROP TABLE IF EXISTS `t_nft_lock_event`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t_nft_lock_event` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`txhash` varchar(255) NOT NULL DEFAULT '' COMMENT 'txhash',
`log_index` bigint NOT NULL DEFAULT '0' COMMENT 'log_index',
`hash_code` varchar(60) NOT NULL DEFAULT '' COMMENT 'hash_code',
`net_id` bigint NOT NULL DEFAULT '0' COMMENT 'net_id',
`event_name` varchar(60) NOT NULL DEFAULT '' COMMENT 'event_name',
`contract_address` varchar(60) NOT NULL DEFAULT '' COMMENT 'contract_address',
`contract_name` varchar(60) NOT NULL DEFAULT '' COMMENT 'contract_name',
`block_number` bigint NOT NULL DEFAULT '0' COMMENT 'block_number',
`return_values` mediumblob COMMENT 'return_values',
`block_data` mediumblob COMMENT 'block_data',
`src_idx` bigint NOT NULL DEFAULT '0' COMMENT 'src_idx',
`status` int(11) NOT NULL DEFAULT '0' COMMENT 'status 0待处理 1已处理',
`lock_sender` varchar(60) NOT NULL DEFAULT '' COMMENT 'lock_sender',
`lock_to` varchar(60) NOT NULL DEFAULT '' COMMENT 'lock_to',
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`idx`),
UNIQUE KEY `unikey` (`txhash`, `hash_code`, `log_index`, `net_id`, `event_name`, `contract_address`),
KEY `idx_net_id_event_name_contract_address_status` (`net_id`, `event_name`, `contract_address`, `status`)
) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;

View File

@ -2,6 +2,11 @@
{
"net_id": 13473,
"events": [
{
"contract_name": "NFTLock",
"event_name": "Lock",
"table_name": "t_nft_lock_event"
},
{
"contract_name": "CFHero",
"event_name": "Transfer",

View File

@ -0,0 +1,38 @@
const log = require('j7/log');
const bcutils = require('j7/bcutils');
const utils = require('j7/utils');
const bcconst = require('common/bcconst');
const BaseEventProcess = require('../common/BaseEventProcess');
const metaFactory = require('../../../metadata/factory');
class NftLock extends BaseEventProcess {
async start() {
const returnValues = this.getReturnValues();
const nft = bcutils.toNormalAddress(returnValues['nft']);
const sender = bcutils.toNormalAddress(returnValues['sender']);
const to = bcutils.toNormalAddress(returnValues['to']);
const nowTime = utils.getUtcTime();
{
const {err} = await this.bcEventDbConn(
'update',
't_nft_lock_event',
[
['idx', this.getEventDb()['idx']],
],
[
['lock_sender', sender],
['lock_to', to],
]
);
if (err) {
this.throwError('NftLock:' + err);
}
}
await this.markOk();
}
}
module.exports = NftLock;

View File

@ -20,6 +20,7 @@ async function add(clsName, modName) {
async function init() {
await add('CFHero.Transfer', 'CFHero/transfer');
await add('GoldBrick.Transfer', 'GoldBrick/transfer');
await add('NFTLock.Lock', 'NFTLock/lock');
}
function getEventHandle(eventProc) {