From a658ecafd8b3e8ea90e9be57b7563a5fd2539b2a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 24 Jul 2023 18:39:03 +0800 Subject: [PATCH] 1 --- .../services/events/HERO/transfer.js | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/server/web3dbspider/services/events/HERO/transfer.js b/server/web3dbspider/services/events/HERO/transfer.js index 2ddf8ba..fa99db1 100644 --- a/server/web3dbspider/services/events/HERO/transfer.js +++ b/server/web3dbspider/services/events/HERO/transfer.js @@ -14,10 +14,11 @@ class Transfer extends BaseEventProcess { const tokenId = returnValues['tokenId']; if (bcutils.isSysAddress(from)) { - const airDropMeta = metaFactory.getAirDrop(tokenId, - this.getNetId(), - bcconst.BC_NFT_HERO, - this.getContractAddress()); + const airDropMeta = metaFactory.getAirDrop( + tokenId, + this.getNetId(), + bcconst.BC_NFT_HERO, + this.getContractAddress()); if (airDropMeta) { const exists = await this.exists721Nft(tokenId, this.getContractAddress()); if (!exists) { @@ -30,7 +31,7 @@ class Transfer extends BaseEventProcess { this.getBlockNumber() ); } - await this.apiMint(airDropMeta); + await this.apiMint(to, tokenId, airDropMeta); } } @@ -45,8 +46,28 @@ class Transfer extends BaseEventProcess { await this.markOk(); } - async apiMint(airDropMeta) { - + async apiMint(address, tokenId, airDropMeta) { + const params = { + 'c': 'Callback', + 'a': 'dispatch', + 'action': 'mintNftHero', + 'address': address, + 'tokenId': tokenId, + 'itemId': airDropMeta['item_id'], + 'quality': airDropMeta['quality'], + }; + await this.callGameApi + (params, + async (data) => { + if (!data) { + this.throwError('callGameApi error:' + data); + } + if (data['errcode'] == 0 || + data['errcode'] == 1) { + return true; + } + return true; + }); } }