1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

use estimateGas() function in FixedRateExchange

This commit is contained in:
Miquel A. Cabot 2022-04-05 23:37:54 +02:00
parent f5f8fdd84b
commit e2a4c32a65

View File

@ -9,7 +9,8 @@ import {
configHelperNetworks,
setContractDefaults,
amountToUnits,
unitsToAmount
unitsToAmount,
estimateGas
} from '../../utils'
import { Config } from '../../models/index.js'
import { PriceAndFees } from '../..'
@ -131,22 +132,16 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.buyDT(
datatokenAddress,
dtAmount,
maxBaseTokenAmount,
consumeMarketAddress,
consumeMarketFee
)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(
account,
fixedRate.methods.buyDT,
datatokenAddress,
dtAmount,
maxBaseTokenAmount,
consumeMarketAddress,
consumeMarketFee
)
}
/**
@ -178,8 +173,9 @@ export class FixedRateExchange {
maxBaseTokenAmount
)
const estGas = await this.estBuyDT(
const estGas = await estimateGas(
address,
this.contract.methods.buyDT,
exchangeId,
dtAmountFormatted,
maxBtFormatted,
@ -227,22 +223,16 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.sellDT(
datatokenAddress,
dtAmount,
maxBaseTokenAmount,
consumeMarketAddress,
consumeMarketFee
)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(
account,
fixedRate.methods.sellDT,
datatokenAddress,
dtAmount,
maxBaseTokenAmount,
consumeMarketAddress,
consumeMarketFee
)
}
/**
@ -273,8 +263,9 @@ export class FixedRateExchange {
exchange.baseToken,
minBaseTokenAmount
)
const estGas = await this.estBuyDT(
const estGas = await estimateGas(
address,
this.contract.methods.sellDT,
exchangeId,
dtAmountFormatted,
minBtFormatted,
@ -328,16 +319,13 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.setRate(exchangeId, await this.web3.utils.toWei(newRate))
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(
account,
fixedRate.methods.setRate,
exchangeId,
await this.web3.utils.toWei(newRate)
)
}
/**
@ -352,7 +340,12 @@ export class FixedRateExchange {
exchangeId: string,
newRate: string
): Promise<TransactionReceipt> {
const estGas = await this.estSetRate(address, exchangeId, newRate)
const estGas = await estimateGas(
address,
this.contract.methods.setRate,
exchangeId,
this.web3.utils.toWei(newRate)
)
const trxReceipt = await this.contract.methods
.setRate(exchangeId, this.web3.utils.toWei(newRate))
.send({
@ -378,16 +371,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.setRate(exchangeId, newAllowedSwapper)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.setRate, exchangeId, newAllowedSwapper)
}
/**
@ -402,7 +387,12 @@ export class FixedRateExchange {
exchangeId: string,
newAllowedSwapper: string
): Promise<TransactionReceipt> {
const estGas = await this.estSetAllowedSwapper(address, exchangeId, newAllowedSwapper)
const estGas = await estimateGas(
address,
this.contract.methods.setAllowedSwapper,
exchangeId,
newAllowedSwapper
)
const trxReceipt = await this.contract.methods
.setAllowedSwapper(exchangeId, newAllowedSwapper)
.send({
@ -426,16 +416,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.toggleExchangeState(exchangeId)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.toggleExchangeState, exchangeId)
}
/**
@ -452,7 +434,11 @@ export class FixedRateExchange {
if (!exchange) return null
if (exchange.active === true) return null
const estGas = await this.estActivate(address, exchangeId)
const estGas = await estimateGas(
address,
this.contract.methods.toggleExchangeState,
exchangeId
)
const trxReceipt = await this.contract.methods.toggleExchangeState(exchangeId).send({
from: address,
gas: estGas + 1,
@ -474,16 +460,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.toggleExchangeState(exchangeId)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.toggleExchangeState, exchangeId)
}
/**
@ -500,7 +478,11 @@ export class FixedRateExchange {
if (!exchange) return null
if (exchange.active === false) return null
const estGas = await this.estDeactivate(address, exchangeId)
const estGas = await estimateGas(
address,
this.contract.methods.toggleExchangeState,
exchangeId
)
const trxReceipt = await this.contract.methods.toggleExchangeState(exchangeId).send({
from: address,
@ -711,16 +693,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.toggleMintState(exchangeId, true)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.toggleMintState, exchangeId, true)
}
/**
@ -737,7 +711,12 @@ export class FixedRateExchange {
if (!exchange) return null
if (exchange.withMint === true) return null
const estGas = await this.estActivateMint(address, exchangeId)
const estGas = await estimateGas(
address,
this.contract.methods.toggleMintState,
exchangeId,
true
)
const trxReceipt = await this.contract.methods
.toggleMintState(exchangeId, true)
.send({
@ -761,16 +740,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.toggleMintState(exchangeId)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.toggleMintState, exchangeId)
}
/**
@ -787,7 +758,12 @@ export class FixedRateExchange {
if (!exchange) return null
if (exchange.withMint === false) return null
const estGas = await this.estDeactivate(address, exchangeId)
const estGas = await estimateGas(
address,
this.contract.methods.toggleMintState,
exchangeId,
false
)
const trxReceipt = await this.contract.methods
.toggleMintState(exchangeId, false)
@ -815,20 +791,11 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
const fixedrate: FixedPriceExchange = await this.contract.methods
.getExchange(exchangeId)
.call()
const amountWei = await this.amountToUnits(fixedrate.baseToken, amount)
try {
estGas = await fixedRate.methods
.collectBT(exchangeId, amountWei)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.collectBT, exchangeId, amountWei)
}
/**
@ -846,11 +813,18 @@ export class FixedRateExchange {
const exchange = await this.getExchange(exchangeId)
if (!exchange) return null
const estGas = await this.estCollectBT(address, exchangeId, amount)
const fixedrate: FixedPriceExchange = await this.contract.methods
.getExchange(exchangeId)
.call()
const amountWei = await this.amountToUnits(fixedrate.baseToken, amount)
const estGas = await estimateGas(
address,
this.contract.methods.collectBT,
exchangeId,
amountWei
)
const trxReceipt = await this.contract.methods.collectBT(exchangeId, amountWei).send({
from: address,
gas: estGas + 1,
@ -874,20 +848,12 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
const fixedrate: FixedPriceExchange = await this.contract.methods
.getExchange(exchangeId)
.call()
const amountWei = await this.amountToUnits(fixedrate.datatoken, amount)
try {
estGas = await fixedRate.methods
.collectDT(exchangeId, amountWei)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.collectDT, exchangeId, amountWei)
}
/**
@ -905,11 +871,18 @@ export class FixedRateExchange {
const exchange = await this.getExchange(exchangeId)
if (!exchange) return null
const estGas = await this.estCollectDT(address, exchangeId, amount)
const fixedrate: FixedPriceExchange = await this.contract.methods
.getExchange(exchangeId)
.call()
const amountWei = await this.amountToUnits(fixedrate.datatoken, amount)
const estGas = await estimateGas(
address,
this.contract.methods.collectDT,
exchangeId,
amountWei
)
const trxReceipt = await this.contract.methods.collectDT(exchangeId, amountWei).send({
from: address,
gas: estGas + 1,
@ -931,16 +904,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.collectMarketFee(exchangeId)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.collectMarketFee, exchangeId)
}
/**
@ -956,7 +921,11 @@ export class FixedRateExchange {
const exchange = await this.getExchange(exchangeId)
if (!exchange) return null
const estGas = await this.estCollectMarketFee(address, exchangeId)
const estGas = await estimateGas(
address,
this.contract.methods.collectMarketFee,
exchangeId
)
const trxReceipt = await this.contract.methods.collectMarketFee(exchangeId).send({
from: address,
gas: estGas + 1,
@ -978,16 +947,8 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.collectMarketFee(exchangeId)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(account, fixedRate.methods.collectMarketFee, exchangeId)
}
/**
@ -1003,7 +964,11 @@ export class FixedRateExchange {
const exchange = await this.getExchange(exchangeId)
if (!exchange) return null
const estGas = await this.estCollectOceanFee(address, exchangeId)
const estGas = await estimateGas(
address,
this.contract.methods.collectOceanFee,
exchangeId
)
const trxReceipt = await this.contract.methods.collectOceanFee(exchangeId).send({
from: address,
gas: estGas + 1,
@ -1070,16 +1035,13 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.updateMarketFee(exchangeId, newMarketFee)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(
account,
fixedRate.methods.updateMarketFee,
exchangeId,
newMarketFee
)
}
/**
@ -1094,8 +1056,9 @@ export class FixedRateExchange {
exchangeId: string,
newMarketFee: string
): Promise<TransactionReceipt> {
const estGas = await this.estSetRate(
const estGas = await estimateGas(
address,
this.contract.methods.updateMarketFee,
exchangeId,
this.web3.utils.toWei(newMarketFee)
)
@ -1124,16 +1087,13 @@ export class FixedRateExchange {
contractInstance?: Contract
): Promise<number> {
const fixedRate = contractInstance || this.fixedRateContract
const gasLimitDefault = this.GASLIMIT_DEFAULT
let estGas
try {
estGas = await fixedRate.methods
.updateMarketFeeCollector(exchangeId, newMarketFeeCollector)
.estimateGas({ from: account }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
}
return estGas
return estimateGas(
account,
fixedRate.methods.updateMarketFeeCollector,
exchangeId,
newMarketFeeCollector
)
}
/**
@ -1148,8 +1108,9 @@ export class FixedRateExchange {
exchangeId: string,
newMarketFeeCollector: string
): Promise<TransactionReceipt> {
const estGas = await this.estUpdateMarketFeeCollector(
const estGas = await estimateGas(
address,
this.contract.methods.updateMarketFeeCollector,
exchangeId,
newMarketFeeCollector
)