diff --git a/test/V2Proxy/proxy.dvm.test.ts b/test/V2Proxy/proxy.dvm.test.ts index ef5f2e6..fccffbc 100644 --- a/test/V2Proxy/proxy.dvm.test.ts +++ b/test/V2Proxy/proxy.dvm.test.ts @@ -126,8 +126,56 @@ describe("DODOProxyV2.0", () => { await ctx.USDT.methods.balanceOf(addrs[1]).call(), quoteAmount ); - }); + + }); + it("updateFeeRateModel", async () => { + var feeRate = await DVM_DODO_USDT.methods.getUserFeeRate(project).call() + assert.equal( + feeRate[1], + "10000000000000000" + ); + var mtFeeResult0 = await DVM_DODO_USDT.methods.querySellQuote(ctx.Deployer, decimalStr("10")).call() + assert.equal( + mtFeeResult0[1], + "999999999265727652176" + ); + + var feerateLogicAddress = ctx.MtFeeRateModelLogic.options.address; + await logGas(await ctx.mtFeeRateModel.methods.setFeeRate( + decimalStr("0.03"), + feerateLogicAddress + ), ctx.sendParam(ctx.Deployer), "setFeeRate"); + var feeRateSet = await DVM_DODO_USDT.methods.getUserFeeRate(project).call() + assert.equal( + feeRateSet[1], + "30000000000000000" + ); + var mtFeeResult1 = await DVM_DODO_USDT.methods.querySellQuote(ctx.Deployer, decimalStr("10")).call() + assert.equal( + mtFeeResult1[1], + "2999999997797182956530" + ); + + + var feerateLogicUpdateAddress = ctx.MtFeeRateModelLogicUpdate.options.address; + await logGas(await ctx.mtFeeRateModel.methods.setFeeRate( + decimalStr("0.01"), + feerateLogicUpdateAddress + ), ctx.sendParam(ctx.Deployer), "setFeeRateUpdate"); + var feeRateUpdate = await DVM_DODO_USDT.methods.getUserFeeRate(lp).call() + assert.equal( + feeRateUpdate[1], + "40000000000000000" + ); + var mtFeeResult2 = await DVM_DODO_USDT.methods.querySellQuote(ctx.Deployer, decimalStr("10")).call() + assert.equal( + mtFeeResult2[1], + "3999999997062910608707" + ); + + + }); // it("createDVM - ETH", async () => { // var baseToken = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'; @@ -293,7 +341,7 @@ describe("DODOProxyV2.0", () => { // console.log("b_DOOD:" + b_DOOD + " a_DODO:" + a_DOOD); // console.log("b_USDT:" + b_USDT + " a_USDT:" + a_USDT); assert.equal(a_DOOD, decimalStr("500")); - assert.equal(a_USDT, "126151370"); + assert.equal(a_USDT, "124886061"); await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken( ctx.DODO.options.address, ctx.USDT.options.address, @@ -331,7 +379,7 @@ describe("DODOProxyV2.0", () => { // console.log("b_DOOD:" + b_DOOD + " a_DODO:" + a_DOOD); // console.log("b_WETH:" + b_WETH + " a_WETH:" + a_WETH); assert.equal(a_DOOD, decimalStr("500")); - assert.equal(a_WETH, "163816613646287588"); + assert.equal(a_WETH, "160562971834401560"); await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken( ctx.DODO.options.address, ctx.WETH.options.address, @@ -367,7 +415,7 @@ describe("DODOProxyV2.0", () => { // console.log("b_DOOD:" + b_DOOD + " a_DODO:" + a_DOOD); // console.log("b_WETH:" + b_WETH + " a_WETH:" + a_WETH); // console.log("b_ETH:" + b_ETH + " a_ETH:" + a_ETH); - assert.equal(a_DOOD, "2814340111190341070680"); + assert.equal(a_DOOD, "2758402621041673925359"); await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken( ctx.DODO.options.address, 1, @@ -399,7 +447,7 @@ describe("DODOProxyV2.0", () => { assert.equal(a_DOOD, decimalStr("1000")); assert.equal( tx.events['OrderHistory'].returnValues['returnAmount'], - "323865907568573497" + "317467466094549770" ) await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH( ctx.DODO.options.address, @@ -433,7 +481,7 @@ describe("DODOProxyV2.0", () => { var a_DOOD = await ctx.DODO.methods.balanceOf(trader).call(); var a_WETH = await ctx.WETH.methods.balanceOf(trader).call(); assert.equal(a_DOOD, decimalStr("500")); - assert.equal(a_WETH, "163633965833613187"); + assert.equal(a_WETH, "158791178116238085"); await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken( ctx.DODO.options.address, ctx.WETH.options.address, diff --git a/test/utils/ProxyContextV2.ts b/test/utils/ProxyContextV2.ts index dad30b6..74a7f2f 100644 --- a/test/utils/ProxyContextV2.ts +++ b/test/utils/ProxyContextV2.ts @@ -39,6 +39,7 @@ export class ProxyContext { //Functions DODOIncentive: Contract; + mtFeeRateModel: Contract; MtFeeRateModelLogic: Contract; MtFeeRateModelLogicUpdate: Contract; @@ -80,6 +81,7 @@ export class ProxyContext { var dppAdminTemplate = await contracts.newContract(contracts.DPP_ADMIN_NAME) var permissionManagerTemplate = await contracts.newContract(contracts.PERMISSION_MANAGER_NAME) var mtFeeRateModelTemplate = await contracts.newContract(contracts.FEE_RATE_MODEL_NAME) + this.mtFeeRateModel = mtFeeRateModelTemplate; await mtFeeRateModelTemplate.methods.init(this.Deployer,decimalStr("0.01")).send(this.sendParam(this.Deployer)); // await mtFeeRateModelTemplate.methods.init(this.Deployer,decimalStr("0")).send(this.sendParam(this.Deployer));