fix dpp test

This commit is contained in:
牛涛涛
2021-01-06 18:20:39 +08:00
parent 517d4ae977
commit b6843ab25f
4 changed files with 18 additions and 51 deletions

View File

@@ -32,32 +32,13 @@ describe("Admin Set", () => {
describe("setting", () => {
it("set addresses", async () => {
it("get addresses", async () => {
var tempAddress = ctx.SpareAccounts[0]
await ctx.DPP.methods.setLpFeeRateModel(tempAddress).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.setMtFeeRateModel(tempAddress).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.setTradePermissionManager(tempAddress).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.setMaintainer(tempAddress).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.setGasPriceSource(tempAddress).send(ctx.sendParam(ctx.Deployer))
assert.equal(await ctx.DPP.methods._LP_FEE_RATE_MODEL_().call(), tempAddress)
assert.equal(await ctx.DPP.methods._MT_FEE_RATE_MODEL_().call(), tempAddress)
assert.equal(await ctx.DPP.methods._TRADE_PERMISSION_().call(), tempAddress)
assert.equal(await ctx.DPP.methods._MAINTAINER_().call(), tempAddress)
assert.equal(await ctx.DPP.methods._GAS_PRICE_LIMIT_().call(), tempAddress)
});
it("set buy sell", async () => {
await ctx.DPP.methods.setBuy(false).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.setSell(false).send(ctx.sendParam(ctx.Deployer))
await truffleAssert.reverts(ctx.DPP.methods.sellQuote(ctx.Deployer).send(ctx.sendParam(ctx.Deployer)), "TRADER_BUY_NOT_ALLOWED")
await truffleAssert.reverts(ctx.DPP.methods.sellBase(ctx.Deployer).send(ctx.sendParam(ctx.Deployer)), "TRADER_SELL_NOT_ALLOWED")
})
});
});
});

View File

@@ -29,7 +29,7 @@ async function init(ctx: DPPContext): Promise<void> {
var kValue = decimalStr("0.2")
await ctx.transferBaseToDPP(lp, baseAmount)
await ctx.transferQuoteToDPP(lp, quoteAmount)
await ctx.DPP.methods.reset(lp, lpFeeRate, mtFeeRate, iValue, kValue, "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.reset(lp, lpFeeRate, iValue, kValue, "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
}
describe("DPP Reset", () => {
@@ -54,13 +54,11 @@ describe("DPP Reset", () => {
it("reset with asset input", async () => {
var lpFeeRate = decimalStr("0.01")
var mtFeeRate = decimalStr("0.02")
var iValue = decimalStr("300")
var kValue = decimalStr("0.3")
await ctx.transferBaseToDPP(lp, decimalStr("10"))
await ctx.transferQuoteToDPP(lp, decimalStr("1000"))
await ctx.DPP.methods.reset(lp, lpFeeRate, mtFeeRate, iValue, kValue, "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.reset(lp, lpFeeRate, iValue, kValue, "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
var state = await ctx.DPP.methods.getPMMState().call()
assert.equal(state.B, decimalStr("20"))
assert.equal(state.Q, decimalStr("2000"))
@@ -71,15 +69,13 @@ describe("DPP Reset", () => {
var feeRate = await ctx.DPP.methods.getUserFeeRate(lp).call()
assert.equal(feeRate[0], lpFeeRate)
assert.equal(feeRate[1], mtFeeRate)
});
it("reset with asset output", async () => {
var lpFeeRate = decimalStr("0.01")
var mtFeeRate = decimalStr("0.02")
var iValue = decimalStr("300")
var kValue = decimalStr("0.3")
await ctx.DPP.methods.reset(lp, lpFeeRate, mtFeeRate, iValue, kValue, decimalStr("1"), decimalStr("100"), "0", "0").send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.reset(lp, lpFeeRate, iValue, kValue, decimalStr("1"), decimalStr("100"), "0", "0").send(ctx.sendParam(ctx.Deployer))
var state = await ctx.DPP.methods.getPMMState().call()
assert.equal(state.B, decimalStr("9"))
@@ -91,15 +87,13 @@ describe("DPP Reset", () => {
var feeRate = await ctx.DPP.methods.getUserFeeRate(lp).call()
assert.equal(feeRate[0], lpFeeRate)
assert.equal(feeRate[1], mtFeeRate)
})
it("reset without asset input/output", async () => {
var lpFeeRate = decimalStr("0.01")
var mtFeeRate = decimalStr("0.02")
var iValue = decimalStr("300")
var kValue = decimalStr("0.3")
await ctx.DPP.methods.reset(lp, lpFeeRate, mtFeeRate, iValue, kValue, "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.reset(lp, lpFeeRate, iValue, kValue, "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
var state = await ctx.DPP.methods.getPMMState().call()
assert.equal(state.B, decimalStr("10"))
@@ -111,7 +105,6 @@ describe("DPP Reset", () => {
var feeRate = await ctx.DPP.methods.getUserFeeRate(lp).call()
assert.equal(feeRate[0], lpFeeRate)
assert.equal(feeRate[1], mtFeeRate)
})
});
@@ -144,13 +137,13 @@ describe("DPP Reset", () => {
it("i or k can not out of range", async () => {
await truffleAssert.reverts(
ctx.DPP.methods.reset(lp, "0", "0", "0", decimalStr("1"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer)), "I_OUT_OF_RANGE"
ctx.DPP.methods.reset(lp, "0", "0", decimalStr("1"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer)), "I_OUT_OF_RANGE"
)
await truffleAssert.reverts(
ctx.DPP.methods.reset(lp, "0", "0", "10000000000000000000000000000000000000", decimalStr("1"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer)), "I_OUT_OF_RANGE"
ctx.DPP.methods.reset(lp, "0", "10000000000000000000000000000000000000", decimalStr("1"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer)), "I_OUT_OF_RANGE"
)
await truffleAssert.reverts(
ctx.DPP.methods.reset(lp, "0", "0", decimalStr("1"), decimalStr("2"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer)), "K_OUT_OF_RANGE"
ctx.DPP.methods.reset(lp, "0", decimalStr("1"), decimalStr("2"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer)), "K_OUT_OF_RANGE"
)
})
@@ -161,13 +154,13 @@ describe("DPP Reset", () => {
await ctx.BASE.methods.mint(ctx.DPP.options.address, decimalStr("1")).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.sellBase(ctx.Deployer).send(ctx.sendParam(ctx.Deployer))
await truffleAssert.reverts(ctx.DPP.methods.reset(lp, "0", "0", decimalStr("1"), decimalStr("2"), "0", "0", baseReserve, quoteReserve).send(ctx.sendParam(ctx.Deployer)), "RESERVE_AMOUNT_IS_NOT_ENOUGH")
await truffleAssert.reverts(ctx.DPP.methods.reset(lp, "0", decimalStr("1"), decimalStr("2"), "0", "0", baseReserve, quoteReserve).send(ctx.sendParam(ctx.Deployer)), "RESERVE_AMOUNT_IS_NOT_ENOUGH")
await ctx.QUOTE.methods.mint(ctx.DPP.options.address, decimalStr("200")).send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.sellQuote(ctx.Deployer).send(ctx.sendParam(ctx.Deployer))
await truffleAssert.reverts(ctx.DPP.methods.reset(lp, "0", "0", decimalStr("1"), decimalStr("2"), "0", "0", baseReserve, quoteReserve).send(ctx.sendParam(ctx.Deployer)), "RESERVE_AMOUNT_IS_NOT_ENOUGH")
await truffleAssert.reverts(ctx.DPP.methods.reset(lp, "0", decimalStr("1"), decimalStr("2"), "0", "0", baseReserve, quoteReserve).send(ctx.sendParam(ctx.Deployer)), "RESERVE_AMOUNT_IS_NOT_ENOUGH")
})
})
});
});

View File

@@ -26,7 +26,7 @@ async function init(ctx: DPPContext): Promise<void> {
await ctx.transferBaseToDPP(lp, decimalStr("10"))
await ctx.transferQuoteToDPP(lp, decimalStr("1000"))
await ctx.DPP.methods.reset(lp, decimalStr("0.002"), decimalStr("0.001"), decimalStr("100"), decimalStr("0.1"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
await ctx.DPP.methods.reset(lp, decimalStr("0.002"), decimalStr("100"), decimalStr("0.1"), "0", "0", "0", "0").send(ctx.sendParam(ctx.Deployer))
console.log("deposit")
}
@@ -210,12 +210,7 @@ describe("DPP Trader", () => {
})
it("revert cases", async () => {
var gasPriceLimitContract = getContractWithAddress(EXTERNAL_VALUE_NAME, await ctx.DPP.methods._GAS_PRICE_LIMIT_().call())
await gasPriceLimitContract.methods.set(gweiStr("10")).send(ctx.sendParam(ctx.Deployer))
await truffleAssert.reverts(
ctx.DPP.methods.sellQuote(trader).send({ from: trader, gas: 300000, gasPrice: gweiStr("200") }), "GAS_PRICE_EXCEED"
)
})
});
});
});

View File

@@ -89,7 +89,7 @@ export class DPPContext {
const allAccounts = await this.Web3.eth.getAccounts();
this.Deployer = allAccounts[0];
this.Maintainer = allAccounts[1];
this.Maintainer = allAccounts[2];
this.SpareAccounts = allAccounts.slice(2, 10);
await gasPriceSource.methods.init(this.Deployer, MAX_UINT256).send(this.sendParam(this.Deployer))
@@ -104,12 +104,10 @@ export class DPPContext {
this.Maintainer,
this.BASE.options.address,
this.QUOTE.options.address,
lpFeeRateModel.options.address,
config.lpFeeRate,
mtFeeRateModel.options.address,
kSource.options.address,
iSource.options.address,
gasPriceSource.options.address,
permissionManager.options.address,
config.k,
config.i,
).send(this.sendParam(this.Deployer))
console.log(log.blueText("[Init DPP context]"));