add swap calc helper

This commit is contained in:
owen05
2020-12-10 00:51:28 +08:00
parent d55238d493
commit c237438dec
9 changed files with 108 additions and 27 deletions

View File

@@ -105,10 +105,19 @@ async function calcRoute(ctx: DODOContext, fromTokenAmount: string, slippage: nu
}
}
var [returmAmount, midPrices] = await ctx.DODOSwapCalcHelper.methods.calcReturnAmountV1(
fromTokenAmount,
dodoPairs,
directions,
).call();
console.log("returnAmount:", returmAmount)
console.log("localAmount:", swapAmount)
console.log("midPrices:", midPrices)
let toAmount = new BigNumber(swapAmount).multipliedBy(1 - slippage).toFixed(0, BigNumber.ROUND_DOWN)
// console.log("minAmount:",toAmount);
let deadline = Math.floor(new Date().getTime()/1000 + 60 * 10);
let deadline = Math.floor(new Date().getTime() / 1000 + 60 * 10);
return ctx.DODOProxyV1.methods.dodoSwapV1(
routes[0].address,
@@ -144,7 +153,7 @@ describe("Trader", () => {
});
describe("route calc test", () => {
it.only("DODO to USDT directly swap", async () => {
it("DODO to USDT directly swap", async () => {
var b_DODO = await ctx.DODO.methods.balanceOf(trader).call()
var b_USDT = await ctx.USDT.methods.balanceOf(trader).call()
var c_b_CHI = await ctx.CHI.methods.balanceOf(ctx.DODOProxyV1.options.address).call()

View File

@@ -32,6 +32,7 @@ const SmartApprove = require(`${jsonPath2}DODOApprove.json`)
const DODOSellHelper = require(`${jsonPath2}DODOSellHelper.json`)
const WETH = require(`${jsonPath2}WETH9.json`)
const CHI = require(`${jsonPath2}ChiToken.json`)
const DODOSwapCalcHelper = require(`${jsonPath2}DODOSwapCalcHelper.json`)
/******/
import { getDefaultWeb3 } from './EVM';
@@ -57,6 +58,7 @@ export const SMART_SWAP = "DODOV1Proxy01"
export const SMART_APPROVE = "DODOApprove"
export const DODO_SELL_HELPER = "DODOSellHelper"
export const CHI_TOKEN = "ChiToken"
export const DODO_SWAP_CALC_HELPER = "DODOSwapCalcHelper"
/******/
var contractMap: { [name: string]: any } = {}
@@ -79,6 +81,7 @@ contractMap[SMART_SWAP] = SmartSwap
contractMap[SMART_APPROVE] = SmartApprove
contractMap[DODO_SELL_HELPER] = DODOSellHelper
contractMap[CHI_TOKEN] = CHI
contractMap[DODO_SWAP_CALC_HELPER] = DODOSwapCalcHelper
/******/
interface ContractJson {

View File

@@ -74,6 +74,8 @@ export class DODOContext {
DODOProxyV1: Contract;
DODOApprove: Contract;
DODOSellHelper: Contract;
//Helper
DODOSwapCalcHelper: Contract;
constructor() { }
@@ -238,6 +240,10 @@ export class DODOContext {
await this.DODOApprove.methods.setDODOProxy(this.DODOProxyV1.options.address).send(this.sendParam(this.Deployer));
// await this.CHI.methods.transfer(this.DODOProxyV1.options.address,140).send(this.sendParam(this.Deployer));
this.DODOSwapCalcHelper = await contracts.newContract(
contracts.DODO_SWAP_CALC_HELPER,[this.DODOSellHelper.options.address]
);
console.log(log.blueText("[Init dodo context]"));
}