flash loan test

This commit is contained in:
mingda
2020-11-27 01:42:46 +08:00
parent 68c377807b
commit d4569fe099
6 changed files with 98 additions and 34 deletions

View File

@@ -178,7 +178,35 @@ describe("DPP Trader", () => {
it("flash loan", async () => {
// buy
await ctx.transferQuoteToDPP(trader, decimalStr("200"))
// buy failed
await truffleAssert.reverts(ctx.DPP.methods.flashLoan("1946763594380080788", "0", trader, "0x").send(ctx.sendParam(trader)), "FLASH_LOAN_FAILED")
// buy succeed
await ctx.DPP.methods.flashLoan("1946763594380080787", "0", trader, "0x").send(ctx.sendParam(trader))
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
"11946763594380080787"
);
// sell
await ctx.transferBaseToDPP(trader, decimalStr("1"))
// sell failed
await truffleAssert.reverts(ctx.DPP.methods.flashLoan("0", "103421810640399874604", trader, "0x").send(ctx.sendParam(trader)), "FLASH_LOAN_FAILED")
// sell succeed
await ctx.DPP.methods.flashLoan("0", "103421810640399874603", trader, "0x").send(ctx.sendParam(trader))
// trader balances
assert.equal(
await ctx.QUOTE.methods.balanceOf(trader).call(),
"903421810640399874603"
);
})
it("revert cases", async () => {

View File

@@ -168,6 +168,35 @@ describe("Trader", () => {
});
it("flash loan", async () => {
// buy
await ctx.transferQuoteToDVM(trader, decimalStr("200"))
// buy failed
await truffleAssert.reverts(ctx.DVM.methods.flashLoan("1946763594380080788", "0", trader, "0x").send(ctx.sendParam(trader)), "FLASH_LOAN_FAILED")
// buy succeed
await ctx.DVM.methods.flashLoan("1946763594380080787", "0", trader, "0x").send(ctx.sendParam(trader))
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
"11946763594380080787"
);
// sell
await ctx.transferBaseToDVM(trader, decimalStr("1"))
// sell failed
await truffleAssert.reverts(ctx.DVM.methods.flashLoan("0", "103421810640399874604", trader, "0x").send(ctx.sendParam(trader)), "FLASH_LOAN_FAILED")
// sell succeed
await ctx.DVM.methods.flashLoan("0", "103421810640399874603", trader, "0x").send(ctx.sendParam(trader))
// trader balances
assert.equal(
await ctx.QUOTE.methods.balanceOf(trader).call(),
"903421810640399874603"
);
})