This commit is contained in:
aozhiwei 2023-07-09 15:23:43 +08:00
parent b2ff69bac2
commit 5087125525
2 changed files with 45 additions and 48 deletions

View File

@ -1,18 +1,12 @@
const log = require('j7/log'); const log = require('j7/log');
const app = require('j7/app'); const app = require('j7/app');
const bcutils = require('j7/bcutils');
const utils = require('j7/utils'); const utils = require('j7/utils');
const j7event = require('j7/event'); const j7event = require('j7/event');
const metaFactory = require('../../metadata/factory'); const metaFactory = require('../../metadata/factory');
const C = require('../../C'); const BaseEventProcess = require('../common/BaseEventProcess');
const gameapi = require('../gameapi');
const http = require('j7/http');
const config = require('j7/config');
const BASE_URL = config('market_api');
/* /*
// 操作成功的事件ß // 操作成功的事件
event BuyOrder( event BuyOrder(
uint256 indexed tokenId, uint256 indexed tokenId,
uint256 orderId, uint256 orderId,
@ -25,16 +19,10 @@ event BuyOrder(
); );
*/ */
class BuyOrder { class BuyOrder extends BaseEventProcess {
async start(instance, conn, event) { async start() {
this.instance = instance; const returnValues = this.getReturnValues();
this.conn = conn;
this.event = event;
console.log('BuyOrder', event);
const blockNumber = event['blockNumber'];
const returnValues = event['returnValues'];
const tokenId = returnValues['tokenId']; const tokenId = returnValues['tokenId'];
const orderId = returnValues['orderId']; const orderId = returnValues['orderId'];
@ -45,42 +33,31 @@ class BuyOrder {
const erc20 = returnValues['erc20']; const erc20 = returnValues['erc20'];
const price = returnValues['price']; const price = returnValues['price'];
while (true) { const params = {
try { 'c': 'Market',
const {err, data} = await http.get 'a': 'eventBuyOrder',
(BASE_URL, 'tokenId': tokenId,
{ 'orderId': orderId,
'c': 'Market', 'nftToken': nftToken,
'a': 'eventBuyOrder', 'amount': amount,
'tokenId': tokenId, 'seller': seller,
'orderId': orderId, 'buyer': buyer,
'nftToken': nftToken, 'erc20': erc20,
'amount': amount, 'price': price
'seller': seller, };
'buyer': buyer, await this.callGameApi
'erc20': erc20, (params,
'price': price async (data) => {
});
console.log(err, data);
if (!data) { if (!data) {
throw 'data is empty5'; this.throwError('callGameApi error:' + data);
} }
if (data['errcode'] == 0 || if (data['errcode'] == 0 ||
data['errcode'] == 1) { data['errcode'] == 1) {
return; return true;
} }
} catch (e) { return true;
log.error(e); });
} await this.markOk();
await utils.sleep(3000 + utils.randRange(500, 1500));
}
}
throwError(err) {
const errMsg = 'processBuyOrderEvent:' +
utils.jsonEncode(this.instance) +
' err:' + err;
throw errMsg;
} }
} }

View File

@ -3,6 +3,7 @@ const app = require('j7/app');
const bcutils = require('j7/bcutils'); const bcutils = require('j7/bcutils');
const utils = require('j7/utils'); const utils = require('j7/utils');
const j7event = require('j7/event'); const j7event = require('j7/event');
const http = require('j7/http');
const constant = require('common/constant'); const constant = require('common/constant');
const metaFactory = require('../../metadata/factory'); const metaFactory = require('../../metadata/factory');
@ -67,6 +68,25 @@ class BaseEventProcess {
} }
} }
async callGameApi(params, checkCb) {
while (true) {
try {
const {err, data} = await http.get('',params);
if (err) {
await utils.sleep(3000 + utils.randRange(500, 1500));
continue;
}
const ret = await checkCb(data);
if (ret) {
break;
}
} catch (e) {
log.error(e);
}
await utils.sleep(3000 + utils.randRange(500, 1500));
}
}
} }
module.exports = BaseEventProcess; module.exports = BaseEventProcess;