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

View File

@ -3,6 +3,7 @@ const app = require('j7/app');
const bcutils = require('j7/bcutils');
const utils = require('j7/utils');
const j7event = require('j7/event');
const http = require('j7/http');
const constant = require('common/constant');
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;