fix dvm trader test
This commit is contained in:
@@ -12,8 +12,10 @@ import {InitializableOwnable} from "../lib/InitializableOwnable.sol";
|
||||
|
||||
interface IConstFeeRateModel {
|
||||
function init(address owner, uint256 feeRate) external;
|
||||
|
||||
function setFeeRate(uint256 newFeeRate) external;
|
||||
function getFeeRate() external view returns (uint256);
|
||||
|
||||
function getFeeRate(address trader) external view returns (uint256);
|
||||
}
|
||||
|
||||
contract ConstFeeRateModel is InitializableOwnable {
|
||||
@@ -28,7 +30,7 @@ contract ConstFeeRateModel is InitializableOwnable {
|
||||
_FEE_RATE_ = newFeeRate;
|
||||
}
|
||||
|
||||
function getFeeRate() external view returns (uint256) {
|
||||
function getFeeRate(address trader) external view returns (uint256) {
|
||||
return _FEE_RATE_;
|
||||
}
|
||||
}
|
||||
|
||||
16
package-lock.json
generated
16
package-lock.json
generated
@@ -6121,6 +6121,12 @@
|
||||
"integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isequal": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.toarray": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
|
||||
@@ -8910,6 +8916,16 @@
|
||||
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
|
||||
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
|
||||
},
|
||||
"truffle-assertions": {
|
||||
"version": "0.9.2",
|
||||
"resolved": "https://registry.npmjs.org/truffle-assertions/-/truffle-assertions-0.9.2.tgz",
|
||||
"integrity": "sha512-9g2RhaxU2F8DeWhqoGQvL/bV8QVoSnQ6PY+ZPvYRP5eF7+/8LExb4mjLx/FeliLTjc3Tv1SABG05Gu5qQ/ErmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assertion-error": "^1.1.0",
|
||||
"lodash.isequal": "^4.5.0"
|
||||
}
|
||||
},
|
||||
"truffle-hdwallet-provider": {
|
||||
"version": "1.0.17",
|
||||
"resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-1.0.17.tgz",
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
"ganache-cli": "^6.9.1",
|
||||
"prettier": "^2.0.5",
|
||||
"prettier-plugin-solidity": "^1.0.0-alpha.52",
|
||||
"solidity-coverage": "^0.7.7"
|
||||
"solidity-coverage": "^0.7.7",
|
||||
"truffle-assertions": "^0.9.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ import { decimalStr, gweiStr } from '../utils/Converter';
|
||||
import { logGas } from '../utils/Log';
|
||||
import { DVMContext, getDVMContext } from '../utils/DVMContext';
|
||||
import { assert } from 'chai';
|
||||
import { EXTERNAL_VALUE_NAME, getContractWithAddress } from '../utils/Contracts';
|
||||
const truffleAssert = require('truffle-assertions');
|
||||
|
||||
let lp: string;
|
||||
let trader: string;
|
||||
@@ -49,12 +51,23 @@ describe("Trader", () => {
|
||||
});
|
||||
|
||||
describe("trade", () => {
|
||||
it.only("basic check", async () => {
|
||||
console.log(await ctx.DVM.methods.getVaultReserve().call())
|
||||
console.log(await ctx.DVM.methods.getPMMState().call())
|
||||
console.log(await ctx.DVM.methods.getMidPrice().call())
|
||||
console.log(await ctx.DVM.methods.querySellQuote(ctx.Deployer, decimalStr("200")).call())
|
||||
})
|
||||
// it.only("basic check", async () => {
|
||||
// console.log(await ctx.DVM.methods.getVaultReserve().call())
|
||||
// console.log(await ctx.DVM.methods.getPMMState().call())
|
||||
// console.log(await ctx.DVM.methods.getMidPrice().call())
|
||||
// console.log(await ctx.DVM.methods.querySellQuote(ctx.Deployer, decimalStr("200")).call())
|
||||
// console.log(ctx.BASE.options.address)
|
||||
// console.log(await ctx.DVM.methods._BASE_TOKEN_().call())
|
||||
// console.log(ctx.QUOTE.options.address)
|
||||
// console.log(await ctx.DVM.methods._QUOTE_TOKEN_().call())
|
||||
// })
|
||||
|
||||
// it.only("mannually buy", async () => {
|
||||
// await ctx.QUOTE.methods.transfer(ctx.DVM.options.address, decimalStr("100")).send(ctx.sendParam(lp))
|
||||
// console.log(await ctx.DVM.methods.getQuoteInput().call())
|
||||
// console.log(await ctx.DVM.methods.querySellQuote(lp, decimalStr("100")).call())
|
||||
// await ctx.DVM.methods.sellQuote(lp).send(ctx.sendParam(lp))
|
||||
// })
|
||||
|
||||
it("buy & sell", async () => {
|
||||
|
||||
@@ -128,7 +141,7 @@ describe("Trader", () => {
|
||||
// trader balances
|
||||
assert.equal(
|
||||
await ctx.BASE.methods.balanceOf(trader).call(),
|
||||
"12837528824326616018"
|
||||
"12837528824326616010"
|
||||
);
|
||||
assert.equal(
|
||||
await ctx.QUOTE.methods.balanceOf(trader).call(),
|
||||
@@ -137,7 +150,7 @@ describe("Trader", () => {
|
||||
// vault balances
|
||||
assert.equal(
|
||||
await ctx.BASE.methods.balanceOf(ctx.DVM.options.address).call(),
|
||||
"7158622099620899913"
|
||||
"7158622099620899921"
|
||||
);
|
||||
assert.equal(
|
||||
await ctx.QUOTE.methods.balanceOf(ctx.DVM.options.address).call(),
|
||||
@@ -158,9 +171,13 @@ describe("Trader", () => {
|
||||
|
||||
})
|
||||
|
||||
it("revert cases", async () => {
|
||||
await assert.fail(
|
||||
ctx.DVMProxy.methods.sellQuoteOnDVM(ctx.DVM.options.address, trader, decimalStr("200"), decimalStr("1")).send({ from: trader, gas: 300000, gasPrice: gweiStr("200") }), /GAS_PRICE_EXCEED/
|
||||
it.only("revert cases", async () => {
|
||||
var gasPriceLimitContract = getContractWithAddress(EXTERNAL_VALUE_NAME, await ctx.DVM.methods._GAS_PRICE_LIMIT_().call())
|
||||
await gasPriceLimitContract.methods.set(gweiStr("10")).send(ctx.sendParam(ctx.Deployer))
|
||||
|
||||
|
||||
await truffleAssert.reverts(
|
||||
ctx.DVMProxy.methods.sellQuoteOnDVM(ctx.DVM.options.address, trader, decimalStr("200"), decimalStr("1")).send({ from: trader, gas: 300000, gasPrice: gweiStr("200") }), "GAS_PRICE_EXCEED"
|
||||
)
|
||||
})
|
||||
});
|
||||
|
||||
@@ -104,8 +104,8 @@ export class DVMContext {
|
||||
config.k
|
||||
).send(this.sendParam(this.Deployer))
|
||||
|
||||
var vendorMachines = await this.DVMFactory.methods.getVendorMachine(this.BASE.options.address, this.QUOTE.options.address).call()
|
||||
this.DVM = contracts.getContractWithAddress(contracts.DVM_NAME, vendorMachines[0])
|
||||
var vendingMachines = await this.DVMFactory.methods.getVendingMachine(this.BASE.options.address, this.QUOTE.options.address).call()
|
||||
this.DVM = contracts.getContractWithAddress(contracts.DVM_NAME, vendingMachines[0])
|
||||
|
||||
await this.DVM.methods.setMaintainer(this.Maintainer).send(this.sendParam(this.Deployer))
|
||||
await gasPriceSource.methods.initOwner(this.Deployer).send(this.sendParam(this.Deployer))
|
||||
|
||||
Reference in New Issue
Block a user