This commit is contained in:
mingda
2020-09-26 10:35:14 +08:00
parent fa0ceaf2e0
commit 4dd24368cf
5 changed files with 964 additions and 121 deletions

View File

@@ -52,15 +52,7 @@ describe("Trader", () => {
describe("R goes above ONE", () => {
it("buy when R equals ONE", async () => {
<<<<<<< Updated upstream
await logGas(
ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x"),
ctx.sendParam(trader),
"buy base token when balanced"
);
=======
await logGas(ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x"), ctx.sendParam(trader), "buy base token when balanced")
>>>>>>> Stashed changes
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
@@ -96,19 +88,8 @@ describe("Trader", () => {
});
it("buy when R is ABOVE ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("130"), "0x"),
ctx.sendParam(trader),
"buy when R is ABOVE ONE"
);
=======
await ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("130"), "0x"), ctx.sendParam(trader), "buy when R is ABOVE ONE")
>>>>>>> Stashed changes
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
@@ -139,23 +120,8 @@ describe("Trader", () => {
});
it("sell when R is ABOVE ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.sellBaseToken(
decimalStr("0.5"),
decimalStr("40"),
"0x"
),
ctx.sendParam(trader),
"sell when R is ABOVE ONE"
);
=======
await ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.sellBaseToken(decimalStr("0.5"), decimalStr("40"), "0x"), ctx.sendParam(trader), "sell when R is ABOVE ONE")
>>>>>>> Stashed changes
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
@@ -186,23 +152,8 @@ describe("Trader", () => {
});
it("sell when R is ABOVE ONE and RStatus back to ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.sellBaseToken(
"1003002430889317763",
decimalStr("90"),
"0x"
),
ctx.sendParam(trader),
"sell when R is ABOVE ONE and RStatus back to ONE"
);
=======
await ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.sellBaseToken("1003002430889317763", decimalStr("90"), "0x"), ctx.sendParam(trader), "sell when R is ABOVE ONE and RStatus back to ONE")
>>>>>>> Stashed changes
// R status
assert.equal(await ctx.DODO.methods._R_STATUS_().call(), "0");
// trader balances
@@ -244,19 +195,8 @@ describe("Trader", () => {
});
it("sell when R is ABOVE ONE and RStatus becomes BELOW ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.sellBaseToken(decimalStr("2"), decimalStr("90"), "0x"),
ctx.sendParam(trader),
"sell when R is ABOVE ONE and RStatus becomes BELOW ONE [gas cost worst case]"
);
=======
await ctx.DODO.methods.buyBaseToken(decimalStr("1"), decimalStr("110"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.sellBaseToken(decimalStr("2"), decimalStr("90"), "0x"), ctx.sendParam(trader), "sell when R is ABOVE ONE and RStatus becomes BELOW ONE [gas cost worst case]")
>>>>>>> Stashed changes
// R status
assert.equal(await ctx.DODO.methods._R_STATUS_().call(), "2");
// trader balances
@@ -300,15 +240,7 @@ describe("Trader", () => {
describe("R goes below ONE", () => {
it("sell when R equals ONE", async () => {
<<<<<<< Updated upstream
await logGas(
ctx.DODO.methods.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x"),
ctx.sendParam(trader),
"sell base token when balanced"
);
=======
await logGas(ctx.DODO.methods.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x"), ctx.sendParam(trader), "sell base token when balanced")
>>>>>>> Stashed changes
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
@@ -344,19 +276,8 @@ describe("Trader", () => {
});
it("sell when R is BELOW ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.sellBaseToken(decimalStr("3"), decimalStr("90"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.sellBaseToken(decimalStr("3"), decimalStr("90"), "0x"),
ctx.sendParam(trader),
"sell when R is BELOW ONE"
);
=======
await ctx.DODO.methods.sellBaseToken(decimalStr("3"), decimalStr("90"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.sellBaseToken(decimalStr("3"), decimalStr("90"), "0x"), ctx.sendParam(trader), "sell when R is BELOW ONE")
>>>>>>> Stashed changes
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
@@ -387,23 +308,8 @@ describe("Trader", () => {
});
it("buy when R is BELOW ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.buyBaseToken(
decimalStr("0.5"),
decimalStr("60"),
"0x"
),
ctx.sendParam(trader),
"buy when R is BELOW ONE"
);
=======
await ctx.DODO.methods.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.buyBaseToken(decimalStr("0.5"), decimalStr("60"), "0x"), ctx.sendParam(trader), "buy when R is BELOW ONE")
>>>>>>> Stashed changes
// trader balances
assert.equal(
await ctx.BASE.methods.balanceOf(trader).call(),
@@ -434,23 +340,8 @@ describe("Trader", () => {
});
it("buy when R is BELOW ONE and RStatus back to ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.buyBaseToken(
"997008973080757728",
decimalStr("110"),
"0x"
),
ctx.sendParam(trader),
"buy when R is BELOW ONE and RStatus back to ONE"
);
=======
await ctx.DODO.methods.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.buyBaseToken("997008973080757728", decimalStr("110"), "0x"), ctx.sendParam(trader), "buy when R is BELOW ONE and RStatus back to ONE")
>>>>>>> Stashed changes
// R status
assert.equal(await ctx.DODO.methods._R_STATUS_().call(), "0");
// trader balances
@@ -492,19 +383,8 @@ describe("Trader", () => {
});
it("buy when R is BELOW ONE and RStatus becomes ABOVE ONE", async () => {
<<<<<<< Updated upstream
await ctx.DODO.methods
.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x")
.send(ctx.sendParam(trader));
await logGas(
ctx.DODO.methods.buyBaseToken(decimalStr("2"), decimalStr("220"), "0x"),
ctx.sendParam(trader),
"buy when R is BELOW ONE and RStatus becomes ABOVE ONE [gas cost worst case]"
);
=======
await ctx.DODO.methods.sellBaseToken(decimalStr("1"), decimalStr("90"), "0x").send(ctx.sendParam(trader))
await logGas(ctx.DODO.methods.buyBaseToken(decimalStr("2"), decimalStr("220"), "0x"), ctx.sendParam(trader), "buy when R is BELOW ONE and RStatus becomes ABOVE ONE [gas cost worst case]")
>>>>>>> Stashed changes
// R status
assert.equal(await ctx.DODO.methods._R_STATUS_().call(), "1");
// trader balances

View File

@@ -13,7 +13,6 @@ if (process.env["COVERAGE"]) {
const CloneFactory = require(`${jsonPath}CloneFactory.json`)
const DODO = require(`${jsonPath}DODO.json`)
const DODOZoo = require(`${jsonPath}DODOZoo.json`)
// const DODOWild = require(`${jsonPath}DODOWild.json`)
const DODOEthProxy = require(`${jsonPath}DODOEthProxy.json`)
const WETH = require(`${jsonPath}WETH9.json`)
const TestERC20 = require(`${jsonPath}TestERC20.json`)
@@ -22,6 +21,7 @@ const DODOLpToken = require(`${jsonPath}DODOLpToken.json`)
const Uniswap = require(`${jsonPath}UniswapV2Pair.json`)
const UniswapArbitrageur = require(`${jsonPath}UniswapArbitrageur.json`)
const DODOToken = require(`${jsonPath}DODOToken.json`)
const DODOMine = require(`${jsonPath}DODOMine.json`)
const LockedTokenVault = require(`${jsonPath}LockedTokenVault.json`)
import { getDefaultWeb3 } from './EVM';
@@ -40,6 +40,7 @@ export const UNISWAP_CONTRACT_NAME = "Uniswap"
export const UNISWAP_ARBITRAGEUR_CONTRACT_NAME = "UniswapArbitrageur"
export const DODO_TOKEN_CONTRACT_NAME = "DODOToken"
export const LOCKED_TOKEN_VAULT_CONTRACT_NAME = "LockedTokenVault"
export const DODO_MINE_NAME = "DODOMine"
var contractMap: { [name: string]: any } = {}
contractMap[CLONE_FACTORY_CONTRACT_NAME] = CloneFactory
@@ -54,6 +55,7 @@ contractMap[UNISWAP_CONTRACT_NAME] = Uniswap
contractMap[UNISWAP_ARBITRAGEUR_CONTRACT_NAME] = UniswapArbitrageur
contractMap[DODO_TOKEN_CONTRACT_NAME] = DODOToken
contractMap[LOCKED_TOKEN_VAULT_CONTRACT_NAME] = LockedTokenVault
contractMap[DODO_MINE_NAME] = DODOMine
interface ContractJson {
abi: any;