This commit is contained in:
aozhiwei 2023-07-09 14:35:54 +08:00
parent ea9d3d997a
commit b2ff69bac2
5 changed files with 398 additions and 0 deletions

View File

@ -0,0 +1,88 @@
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');
/*
// 操作成功的事件ß
event BuyOrder(
uint256 indexed tokenId,
uint256 orderId,
address nftToken,
uint256 amount,
address seller,
address buyer,
address erc20,
uint256 price
);
*/
class BuyOrder {
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'];
const tokenId = returnValues['tokenId'];
const orderId = returnValues['orderId'];
const nftToken = returnValues['nftToken'];
const amount = returnValues['amount'];
const seller = returnValues['seller'];
const buyer = returnValues['buyer'];
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);
if (!data) {
throw 'data is empty5';
}
if (data['errcode'] == 0 ||
data['errcode'] == 1) {
return;
}
} 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;
}
}
module.exports = BuyOrder;

View File

@ -0,0 +1,72 @@
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');
/*
// 操作成功的事件
event CancelOrder(
uint256 indexed orderId,
address indexed nftToken,
uint256 indexed tokenId
);
*/
class CancelOrder {
async start(instance, conn, event) {
this.instance = instance;
this.conn = conn;
this.event = event;
console.log('CancelOrder', event);
const blockNumber = event['blockNumber'];
const returnValues = event['returnValues'];
const orderId = returnValues['orderId'];
const nftToken = returnValues['nftToken'];
const tokenId = returnValues['tokenId'];
while (true) {
try {
const {err, data} = await http.get(BASE_URL,
{
'c': 'Market',
'a': 'eventCancelOrder',
'orderId': orderId,
'nftToken': nftToken,
'tokenId': tokenId,
});
console.log(err, data);
if (!data) {
throw 'data is empty3';
}
if (data['errcode'] == 0 ||
data['errcode'] == 1) {
return;
}
} catch (e) {
log.error(e);
}
await utils.sleep(3000 + utils.randRange(500, 1500));
}
}
throwError(err) {
const errMsg = 'processCancelOrderEvent:' +
utils.jsonEncode(this.instance) +
' err:' + err;
throw errMsg;
}
}
module.exports = CancelOrder;

View File

@ -0,0 +1,78 @@
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');
/*
// 操作成功的事件
event PriceUpdate(
uint256 indexed orderId,
address indexed nftToken,
uint256 indexed tokenId,
uint256 priceOld,
uint256 price
);
*/
class PriceUpdateOrder {
async start(instance, conn, event) {
this.instance = instance;
this.conn = conn;
this.event = event;
console.log('PriceUpdateOrder', event);
const blockNumber = event['blockNumber'];
const returnValues = event['returnValues'];
const orderId = returnValues['orderId'];
const nftToken = returnValues['nftToken'];
const tokenId = returnValues['tokenId'];
const priceOld = returnValues['priceOld'];
const price = returnValues['price'];
while (true) {
try {
const {err, data} = await http.get(BASE_URL,
{
'c': 'Market',
'a': 'eventPriceUpdateOrder',
'orderId': orderId,
'nftToken': nftToken,
'tokenId': tokenId,
'priceOld': priceOld,
'price': price
});
console.log(err, data);
if (!data) {
throw 'data is empty4';
}
if (data['errcode'] == 0 ||
data['errcode'] == 1) {
return;
}
} catch (e) {
log.error(e);
}
await utils.sleep(3000 + utils.randRange(500, 1500));
}
}
throwError(err) {
const errMsg = 'processPriceUpdateOrderEvent:' +
utils.jsonEncode(this.instance) +
' err:' + err;
throw errMsg;
}
}
module.exports = PriceUpdateOrder;

View File

@ -0,0 +1,88 @@
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');
/*
// 操作成功的事件
event SellOrder(
uint256 indexed tokenId,
address indexed owner,
address indexed nftToken,
uint256 amount,
uint256 orderId,
address currency,
uint256 price
);
*/
class SellOrder {
async start(instance, conn, event) {
this.instance = instance;
this.conn = conn;
this.event = event;
console.log('SellOrder', event);
const blockNumber = event['blockNumber'];
const returnValues = event['returnValues'];
const tokenId = returnValues['tokenId'];
const owner = returnValues['owner'];
const nftToken = returnValues['nftToken'];
const amount = returnValues['amount'];
const orderId = returnValues['orderId'];
const currency = returnValues['currency'];
const price = returnValues['price'];
while (true) {
try {
const {err, data} = await http.get
(BASE_URL,
{
'c': 'Market',
'a': 'eventSellOrder',
'tokenId': tokenId,
'owner': owner,
'nftToken': nftToken,
'amount': amount,
'orderId': orderId,
'currency': currency,
'price': price
});
if (err) {
throw err;
}
console.log(err, data);
if (!data) {
throw 'data is empty2';
}
if (data['errcode'] == 0 ||
data['errcode'] == 1) {
return;
}
} catch (e) {
log.error(e);
}
await utils.sleep(3000 + utils.randRange(500, 1500));
}
}
throwError(err) {
const errMsg = 'processSellOrderEvent:' +
utils.jsonEncode(this.instance) +
' err:' + err;
throw errMsg;
}
}
module.exports = SellOrder;

View File

@ -0,0 +1,72 @@
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');
/*
操作成功的事件
event ItemSoldOut(
address indexed buyer,
uint256 indexed orderId,
address currency,
uint256 price
);
*/
class GameItemMallBuy {
async start(instance, conn, event) {
console.log('GameItemMallBuy', event);
const blockNumber = event['blockNumber'];
const returnValues = event['returnValues'];
const transId = returnValues['orderId'];
const orderId = returnValues['orderId'];
if (orderId != transId) {
//this.throwError('error orderId:' + utils.jsonEncode(returnValues));
//return;
}
const a = 'dispatch';
while (true) {
try {
const {err, data} = await gameapi.callApi
(
'Callback',
a,
{
'action': 'gameItemMallBuyOk',
'trans_id': transId,
'order_id': orderId,
}
);
if (err) {
throw err;
}
console.log(data);
if (!data) {
throw 'data is empty1';
}
if (data['errcode'] == 0 ||
data['errcode'] == 1 ||
data['errcode'] == 2) {
return;
}
} catch (e) {
log.error(e);
}
await utils.sleep(3000 + utils.randRange(500, 1500));
}
}
throwError(instance, err) {
const errMsg = 'GameItemMallBuy:' + utils.jsonEncode(instance) + ' err:' + err;
throw errMsg;
}
}
module.exports = GameItemMallBuy;