market相关功能增加approve
This commit is contained in:
parent
a1ce68e561
commit
97b7edbe2d
@ -8,6 +8,8 @@ import { abiMarket } from "../abis/abiMarket";
|
|||||||
import { abiMall } from "../abis/abiMall";
|
import { abiMall } from "../abis/abiMall";
|
||||||
import { abiGameMarket } from "../abis/abiGameMarket";
|
import { abiGameMarket } from "../abis/abiGameMarket";
|
||||||
import { abiGameMall } from "../abis/abiGameMall";
|
import { abiGameMall } from "../abis/abiGameMall";
|
||||||
|
import { ZError } from "../common/ZError";
|
||||||
|
import { abiERC20 } from "../abis/abiERC20";
|
||||||
|
|
||||||
export class JCStandard {
|
export class JCStandard {
|
||||||
private web3: Web3;
|
private web3: Web3;
|
||||||
@ -239,9 +241,26 @@ export class JCStandard {
|
|||||||
gas = await contract.methods.buy(orderId).estimateGas();
|
gas = await contract.methods.buy(orderId).estimateGas();
|
||||||
}
|
}
|
||||||
gas = (gas * 1.1) | 1;
|
gas = (gas * 1.1) | 1;
|
||||||
if (estimate) {
|
// begin of increase allowance
|
||||||
return jc.wallet.generateGasShow(gas);
|
let orderInfo = await contract.methods.orderInfos(orderId).call();
|
||||||
|
if (!orderInfo.orderId) {
|
||||||
|
throw new ZError(100, `order info with id: ${orderId} not found`);
|
||||||
}
|
}
|
||||||
|
const tokenInstance = new this.web3.eth.Contract(
|
||||||
|
abiERC20,
|
||||||
|
orderInfo.currency
|
||||||
|
);
|
||||||
|
let gasApprove = await tokenInstance.methods
|
||||||
|
.approve(addressMarket, orderInfo.price)
|
||||||
|
.estimateGas();
|
||||||
|
gasApprove = (gasApprove * 1.1) | 1;
|
||||||
|
if (estimate) {
|
||||||
|
return jc.wallet.generateGasShow(gas + gasApprove);
|
||||||
|
}
|
||||||
|
|
||||||
|
await tokenInstance.methods
|
||||||
|
.approve(addressMarket, orderInfo.price)
|
||||||
|
.send({ gas: gasApprove });
|
||||||
|
|
||||||
let details = [
|
let details = [
|
||||||
{
|
{
|
||||||
@ -287,9 +306,19 @@ export class JCStandard {
|
|||||||
gas = await contract.methods.buyNFT(addresses, values).estimateGas();
|
gas = await contract.methods.buyNFT(addresses, values).estimateGas();
|
||||||
}
|
}
|
||||||
gas = (gas * 1.1) | 1;
|
gas = (gas * 1.1) | 1;
|
||||||
|
|
||||||
|
const tokenInstance = new this.web3.eth.Contract(abiERC20, addresses[2]);
|
||||||
|
let gasApprove = await tokenInstance.methods
|
||||||
|
.approve(addressMall, values[1])
|
||||||
|
.estimateGas();
|
||||||
|
gasApprove = (gasApprove * 1.1) | 1;
|
||||||
|
|
||||||
if (estimate) {
|
if (estimate) {
|
||||||
return jc.wallet.generateGasShow(gas);
|
return jc.wallet.generateGasShow(gas + gasApprove);
|
||||||
}
|
}
|
||||||
|
await tokenInstance.methods
|
||||||
|
.approve(addressMall, values[1])
|
||||||
|
.sent({ gas: gasApprove });
|
||||||
|
|
||||||
let details = [
|
let details = [
|
||||||
{
|
{
|
||||||
@ -362,8 +391,15 @@ export class JCStandard {
|
|||||||
.estimateGas();
|
.estimateGas();
|
||||||
}
|
}
|
||||||
gas = (gas * 1.1) | 1;
|
gas = (gas * 1.1) | 1;
|
||||||
|
|
||||||
|
const tokenInstance = new this.web3.eth.Contract(abiERC20, currency);
|
||||||
|
let gasApprove = await tokenInstance.methods
|
||||||
|
.approve(addressGameMarket, price)
|
||||||
|
.estimateGas();
|
||||||
|
gasApprove = (gasApprove * 1.1) | 1;
|
||||||
|
|
||||||
if (estimate) {
|
if (estimate) {
|
||||||
return jc.wallet.generateGasShow(gas);
|
return jc.wallet.generateGasShow(gas + gasApprove);
|
||||||
}
|
}
|
||||||
|
|
||||||
let details = [
|
let details = [
|
||||||
@ -379,6 +415,9 @@ export class JCStandard {
|
|||||||
title: "game_market_buy",
|
title: "game_market_buy",
|
||||||
details: details,
|
details: details,
|
||||||
};
|
};
|
||||||
|
await tokenInstance.methods
|
||||||
|
.approve(addressGameMarket, price)
|
||||||
|
.send({ gas: gasApprove });
|
||||||
return universalChainCb(
|
return universalChainCb(
|
||||||
logData,
|
logData,
|
||||||
contract.methods
|
contract.methods
|
||||||
@ -421,8 +460,13 @@ export class JCStandard {
|
|||||||
.estimateGas();
|
.estimateGas();
|
||||||
}
|
}
|
||||||
gas = (gas * 1.1) | 1;
|
gas = (gas * 1.1) | 1;
|
||||||
|
const tokenInstance = new this.web3.eth.Contract(abiERC20, currency);
|
||||||
|
let gasApprove = await tokenInstance.methods
|
||||||
|
.approve(addressGameMall, price)
|
||||||
|
.estimateGas();
|
||||||
|
gasApprove = (gasApprove * 1.1) | 1;
|
||||||
if (estimate) {
|
if (estimate) {
|
||||||
return jc.wallet.generateGasShow(gas);
|
return jc.wallet.generateGasShow(gas + gasApprove);
|
||||||
}
|
}
|
||||||
// TOTO::
|
// TOTO::
|
||||||
let details = [
|
let details = [
|
||||||
@ -438,6 +482,9 @@ export class JCStandard {
|
|||||||
title: "game_mall_buy",
|
title: "game_mall_buy",
|
||||||
details: details,
|
details: details,
|
||||||
};
|
};
|
||||||
|
await tokenInstance.methods
|
||||||
|
.approve(addressGameMall, price)
|
||||||
|
.send({ gas: gasApprove });
|
||||||
return universalChainCb(
|
return universalChainCb(
|
||||||
logData,
|
logData,
|
||||||
contract.methods
|
contract.methods
|
||||||
|
Loading…
x
Reference in New Issue
Block a user