fix
This commit is contained in:
@@ -55,7 +55,7 @@ contract CrowdPoolingFactory is InitializableOwnable {
|
|||||||
require(valueList[3] == _CLIFF_RATE_, "CP_FACTORY : CLIFF_RATE_INVALID");
|
require(valueList[3] == _CLIFF_RATE_, "CP_FACTORY : CLIFF_RATE_INVALID");
|
||||||
|
|
||||||
uint256 baseTokenBalance = IERC20(baseToken).balanceOf(cpAddress);
|
uint256 baseTokenBalance = IERC20(baseToken).balanceOf(cpAddress);
|
||||||
require(valueList[0].mul(100) <= baseTokenBalance.mul(valueList[2]).div(10**18).mul(_CAP_RATIO_),"CP_FACTORY : QUOTE_CAPE_INVALID");
|
require(valueList[0].mul(100) <= baseTokenBalance.mul(valueList[2]).div(10**18).mul(_CAP_RATIO_),"CP_FACTORY : QUOTE_CAP_INVALID");
|
||||||
require(timeLine[3]>= _FREEZE_DURATION_, "CP_FACTORY : FREEZE_DURATION_INVALID");
|
require(timeLine[3]>= _FREEZE_DURATION_, "CP_FACTORY : FREEZE_DURATION_INVALID");
|
||||||
_;
|
_;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
// ============ DVM Functions (create & add liquidity) ============
|
// ============ DVM Functions (create & add liquidity) ============
|
||||||
|
|
||||||
function createDODOVendingMachine(
|
function createDODOVendingMachine(
|
||||||
address assetTo,
|
|
||||||
address baseToken,
|
address baseToken,
|
||||||
address quoteToken,
|
address quoteToken,
|
||||||
uint256 baseInAmount,
|
uint256 baseInAmount,
|
||||||
@@ -134,12 +133,11 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
(shares, , ) = IDODOV2(newVendingMachine).buyShares(assetTo);
|
(shares, , ) = IDODOV2(newVendingMachine).buyShares(msg.sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addDVMLiquidity(
|
function addDVMLiquidity(
|
||||||
address dvmAddress,
|
address dvmAddress,
|
||||||
address assetTo,
|
|
||||||
uint256 baseInAmount,
|
uint256 baseInAmount,
|
||||||
uint256 quoteInAmount,
|
uint256 quoteInAmount,
|
||||||
uint256 baseMinAmount,
|
uint256 baseMinAmount,
|
||||||
@@ -172,7 +170,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
_deposit(msg.sender, _dvm, IDODOV2(_dvm)._BASE_TOKEN_(), baseAdjustedInAmount, flag == 1);
|
_deposit(msg.sender, _dvm, IDODOV2(_dvm)._BASE_TOKEN_(), baseAdjustedInAmount, flag == 1);
|
||||||
_deposit(msg.sender, _dvm, IDODOV2(_dvm)._QUOTE_TOKEN_(), quoteAdjustedInAmount, flag == 2);
|
_deposit(msg.sender, _dvm, IDODOV2(_dvm)._QUOTE_TOKEN_(), quoteAdjustedInAmount, flag == 2);
|
||||||
|
|
||||||
(shares, , ) = IDODOV2(_dvm).buyShares(assetTo);
|
(shares, , ) = IDODOV2(_dvm).buyShares(msg.sender);
|
||||||
// refund dust eth
|
// refund dust eth
|
||||||
if (flag == 1 && msg.value > baseAdjustedInAmount) msg.sender.transfer(msg.value - baseAdjustedInAmount);
|
if (flag == 1 && msg.value > baseAdjustedInAmount) msg.sender.transfer(msg.value - baseAdjustedInAmount);
|
||||||
if (flag == 2 && msg.value > quoteAdjustedInAmount) msg.sender.transfer(msg.value - quoteAdjustedInAmount);
|
if (flag == 2 && msg.value > quoteAdjustedInAmount) msg.sender.transfer(msg.value - quoteAdjustedInAmount);
|
||||||
@@ -293,7 +291,6 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
// ============ Swap ============
|
// ============ Swap ============
|
||||||
|
|
||||||
function dodoSwapV2ETHToToken(
|
function dodoSwapV2ETHToToken(
|
||||||
address payable assetTo,
|
|
||||||
address toToken,
|
address toToken,
|
||||||
uint256 minReturnAmount,
|
uint256 minReturnAmount,
|
||||||
address[] memory dodoPairs,
|
address[] memory dodoPairs,
|
||||||
@@ -316,9 +313,9 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
for (uint256 i = 0; i < dodoPairs.length; i++) {
|
for (uint256 i = 0; i < dodoPairs.length; i++) {
|
||||||
if (i == dodoPairs.length - 1) {
|
if (i == dodoPairs.length - 1) {
|
||||||
if (directions & 1 == 0) {
|
if (directions & 1 == 0) {
|
||||||
IDODOV2(dodoPairs[i]).sellBase(assetTo);
|
IDODOV2(dodoPairs[i]).sellBase(msg.sender);
|
||||||
} else {
|
} else {
|
||||||
IDODOV2(dodoPairs[i]).sellQuote(assetTo);
|
IDODOV2(dodoPairs[i]).sellQuote(msg.sender);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (directions & 1 == 0) {
|
if (directions & 1 == 0) {
|
||||||
@@ -335,14 +332,13 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
emit OrderHistory(
|
emit OrderHistory(
|
||||||
_ETH_ADDRESS_,
|
_ETH_ADDRESS_,
|
||||||
toToken,
|
toToken,
|
||||||
assetTo,
|
msg.sender,
|
||||||
msg.value,
|
msg.value,
|
||||||
returnAmount
|
returnAmount
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function dodoSwapV2TokenToETH(
|
function dodoSwapV2TokenToETH(
|
||||||
address payable assetTo,
|
|
||||||
address fromToken,
|
address fromToken,
|
||||||
uint256 fromTokenAmount,
|
uint256 fromTokenAmount,
|
||||||
uint256 minReturnAmount,
|
uint256 minReturnAmount,
|
||||||
@@ -379,18 +375,17 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
returnAmount = IWETH(_WETH_).balanceOf(address(this));
|
returnAmount = IWETH(_WETH_).balanceOf(address(this));
|
||||||
require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough");
|
require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough");
|
||||||
IWETH(_WETH_).withdraw(returnAmount);
|
IWETH(_WETH_).withdraw(returnAmount);
|
||||||
assetTo.transfer(returnAmount);
|
msg.sender.transfer(returnAmount);
|
||||||
emit OrderHistory(
|
emit OrderHistory(
|
||||||
fromToken,
|
fromToken,
|
||||||
_ETH_ADDRESS_,
|
_ETH_ADDRESS_,
|
||||||
assetTo,
|
msg.sender,
|
||||||
fromTokenAmount,
|
fromTokenAmount,
|
||||||
returnAmount
|
returnAmount
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function dodoSwapV2TokenToToken(
|
function dodoSwapV2TokenToToken(
|
||||||
address payable assetTo,
|
|
||||||
address fromToken,
|
address fromToken,
|
||||||
address toToken,
|
address toToken,
|
||||||
uint256 fromTokenAmount,
|
uint256 fromTokenAmount,
|
||||||
@@ -413,9 +408,9 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
for (uint256 i = 0; i < dodoPairs.length; i++) {
|
for (uint256 i = 0; i < dodoPairs.length; i++) {
|
||||||
if (i == dodoPairs.length - 1) {
|
if (i == dodoPairs.length - 1) {
|
||||||
if (directions & 1 == 0) {
|
if (directions & 1 == 0) {
|
||||||
IDODOV2(dodoPairs[i]).sellBase(assetTo);
|
IDODOV2(dodoPairs[i]).sellBase(msg.sender);
|
||||||
} else {
|
} else {
|
||||||
IDODOV2(dodoPairs[i]).sellQuote(assetTo);
|
IDODOV2(dodoPairs[i]).sellQuote(msg.sender);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (directions& 1 == 0) {
|
if (directions& 1 == 0) {
|
||||||
@@ -431,7 +426,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
emit OrderHistory(
|
emit OrderHistory(
|
||||||
fromToken,
|
fromToken,
|
||||||
toToken,
|
toToken,
|
||||||
assetTo,
|
msg.sender,
|
||||||
fromTokenAmount,
|
fromTokenAmount,
|
||||||
returnAmount
|
returnAmount
|
||||||
);
|
);
|
||||||
@@ -603,7 +598,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
uint256[] memory timeLine,
|
uint256[] memory timeLine,
|
||||||
uint256[] memory valueList,
|
uint256[] memory valueList,
|
||||||
uint256 deadLine
|
uint256 deadLine
|
||||||
) external override payable judgeExpired(deadLine) returns (address payable newCrowdPooling) {
|
) external override payable preventReentrant judgeExpired(deadLine) returns (address payable newCrowdPooling) {
|
||||||
address _baseToken = baseToken;
|
address _baseToken = baseToken;
|
||||||
address _quoteToken = quoteToken == _ETH_ADDRESS_ ? _WETH_ : quoteToken;
|
address _quoteToken = quoteToken == _ETH_ADDRESS_ ? _WETH_ : quoteToken;
|
||||||
|
|
||||||
@@ -630,19 +625,17 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
}
|
}
|
||||||
|
|
||||||
function bid(
|
function bid(
|
||||||
address assetTo,
|
|
||||||
address cpAddress,
|
address cpAddress,
|
||||||
uint256 quoteAmount,
|
uint256 quoteAmount,
|
||||||
uint8 flag, // 0 - ERC20, 1 - quoteInETH
|
uint8 flag, // 0 - ERC20, 1 - quoteInETH
|
||||||
uint256 deadLine
|
uint256 deadLine
|
||||||
) external override payable judgeExpired(deadLine) {
|
) external override payable preventReentrant judgeExpired(deadLine) {
|
||||||
_deposit(msg.sender, cpAddress, IDODOV2(cpAddress)._QUOTE_TOKEN_(), quoteAmount, flag == 1);
|
_deposit(msg.sender, cpAddress, IDODOV2(cpAddress)._QUOTE_TOKEN_(), quoteAmount, flag == 1);
|
||||||
IDODOV2(cpAddress).bid(assetTo);
|
IDODOV2(cpAddress).bid(msg.sender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function addLiquidityToV1(
|
function addLiquidityToV1(
|
||||||
address assetTo,
|
|
||||||
address pair,
|
address pair,
|
||||||
uint256 baseAmount,
|
uint256 baseAmount,
|
||||||
uint256 quoteAmount,
|
uint256 quoteAmount,
|
||||||
@@ -650,7 +643,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
uint256 quoteMinShares,
|
uint256 quoteMinShares,
|
||||||
uint8 flag, // 0 erc20 In 1 baseInETH 2 quoteIn ETH
|
uint8 flag, // 0 erc20 In 1 baseInETH 2 quoteIn ETH
|
||||||
uint256 deadLine
|
uint256 deadLine
|
||||||
) external override payable judgeExpired(deadLine) returns(uint256 baseShares, uint256 quoteShares) {
|
) external override payable preventReentrant judgeExpired(deadLine) returns(uint256 baseShares, uint256 quoteShares) {
|
||||||
address _baseToken = IDODOV1(pair)._BASE_TOKEN_();
|
address _baseToken = IDODOV1(pair)._BASE_TOKEN_();
|
||||||
address _quoteToken = IDODOV1(pair)._QUOTE_TOKEN_();
|
address _quoteToken = IDODOV1(pair)._QUOTE_TOKEN_();
|
||||||
|
|
||||||
@@ -660,11 +653,11 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
|
|||||||
|
|
||||||
if(baseAmount > 0) {
|
if(baseAmount > 0) {
|
||||||
IERC20(_baseToken).universalApproveMax(pair, baseAmount);
|
IERC20(_baseToken).universalApproveMax(pair, baseAmount);
|
||||||
baseShares = IDODOV1(pair).depositBaseTo(assetTo, baseAmount);
|
baseShares = IDODOV1(pair).depositBaseTo(msg.sender, baseAmount);
|
||||||
}
|
}
|
||||||
if(quoteAmount > 0) {
|
if(quoteAmount > 0) {
|
||||||
IERC20(_quoteToken).universalApproveMax(pair, quoteAmount);
|
IERC20(_quoteToken).universalApproveMax(pair, quoteAmount);
|
||||||
quoteShares = IDODOV1(pair).depositQuoteTo(assetTo, quoteAmount);
|
quoteShares = IDODOV1(pair).depositQuoteTo(msg.sender, quoteAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
require(baseShares >= baseMinShares && quoteShares >= quoteMinShares,"DODOV2Proxy01: Return DLP is not enough");
|
require(baseShares >= baseMinShares && quoteShares >= quoteMinShares,"DODOV2Proxy01: Return DLP is not enough");
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import {IDODOV1Proxy01} from "./IDODOV1Proxy01.sol";
|
|||||||
|
|
||||||
interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
||||||
function dodoSwapV2ETHToToken(
|
function dodoSwapV2ETHToToken(
|
||||||
address payable assetTo,
|
|
||||||
address toToken,
|
address toToken,
|
||||||
uint256 minReturnAmount,
|
uint256 minReturnAmount,
|
||||||
address[] memory dodoPairs,
|
address[] memory dodoPairs,
|
||||||
@@ -21,7 +20,6 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
|||||||
) external payable returns (uint256 returnAmount);
|
) external payable returns (uint256 returnAmount);
|
||||||
|
|
||||||
function dodoSwapV2TokenToETH(
|
function dodoSwapV2TokenToETH(
|
||||||
address payable assetTo,
|
|
||||||
address fromToken,
|
address fromToken,
|
||||||
uint256 fromTokenAmount,
|
uint256 fromTokenAmount,
|
||||||
uint256 minReturnAmount,
|
uint256 minReturnAmount,
|
||||||
@@ -31,7 +29,6 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
|||||||
) external returns (uint256 returnAmount);
|
) external returns (uint256 returnAmount);
|
||||||
|
|
||||||
function dodoSwapV2TokenToToken(
|
function dodoSwapV2TokenToToken(
|
||||||
address payable assetTo,
|
|
||||||
address fromToken,
|
address fromToken,
|
||||||
address toToken,
|
address toToken,
|
||||||
uint256 fromTokenAmount,
|
uint256 fromTokenAmount,
|
||||||
@@ -42,7 +39,6 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
|||||||
) external returns (uint256 returnAmount);
|
) external returns (uint256 returnAmount);
|
||||||
|
|
||||||
function createDODOVendingMachine(
|
function createDODOVendingMachine(
|
||||||
address assetTo,
|
|
||||||
address baseToken,
|
address baseToken,
|
||||||
address quoteToken,
|
address quoteToken,
|
||||||
uint256 baseInAmount,
|
uint256 baseInAmount,
|
||||||
@@ -55,7 +51,6 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
|||||||
|
|
||||||
function addDVMLiquidity(
|
function addDVMLiquidity(
|
||||||
address dvmAddress,
|
address dvmAddress,
|
||||||
address assetTo,
|
|
||||||
uint256 baseInAmount,
|
uint256 baseInAmount,
|
||||||
uint256 quoteInAmount,
|
uint256 quoteInAmount,
|
||||||
uint256 baseMinAmount,
|
uint256 baseMinAmount,
|
||||||
@@ -102,7 +97,6 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
|||||||
) external payable returns (address payable newCrowdPooling);
|
) external payable returns (address payable newCrowdPooling);
|
||||||
|
|
||||||
function bid(
|
function bid(
|
||||||
address assetTo,
|
|
||||||
address cpAddress,
|
address cpAddress,
|
||||||
uint256 quoteAmount,
|
uint256 quoteAmount,
|
||||||
uint8 flag, // 0 - ERC20, 1 - quoteInETH
|
uint8 flag, // 0 - ERC20, 1 - quoteInETH
|
||||||
@@ -110,7 +104,6 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
|
|||||||
) external payable;
|
) external payable;
|
||||||
|
|
||||||
function addLiquidityToV1(
|
function addLiquidityToV1(
|
||||||
address to,
|
|
||||||
address pair,
|
address pair,
|
||||||
uint256 baseAmount,
|
uint256 baseAmount,
|
||||||
uint256 quoteAmount,
|
uint256 quoteAmount,
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ library DODOMath {
|
|||||||
}else if(ki * delta / ki == delta) {
|
}else if(ki * delta / ki == delta) {
|
||||||
sqrt = (ki * delta).div(V1).add(DecimalMath.ONE2).sqrt();
|
sqrt = (ki * delta).div(V1).add(DecimalMath.ONE2).sqrt();
|
||||||
}else {
|
}else {
|
||||||
sqrt = (4 * k).mul(i).div(V1).mul(delta).add(DecimalMath.ONE2).sqrt();
|
sqrt = ki.div(V1).mul(delta).add(DecimalMath.ONE2).sqrt();
|
||||||
}
|
}
|
||||||
uint256 premium = DecimalMath.divFloor(sqrt.sub(DecimalMath.ONE), k * 2).add(
|
uint256 premium = DecimalMath.divFloor(sqrt.sub(DecimalMath.ONE), k * 2).add(
|
||||||
DecimalMath.ONE
|
DecimalMath.ONE
|
||||||
|
|||||||
@@ -175,7 +175,6 @@ describe("AddLiquidity", () => {
|
|||||||
await ctxV1.DODO.methods.approve(ctxV2.DODOApprove.options.address, MAX_UINT256).send(ctxV2.sendParam(trader));
|
await ctxV1.DODO.methods.approve(ctxV2.DODOApprove.options.address, MAX_UINT256).send(ctxV2.sendParam(trader));
|
||||||
await ctxV1.USDT.methods.approve(ctxV2.DODOApprove.options.address, MAX_UINT256).send(ctxV2.sendParam(trader));
|
await ctxV1.USDT.methods.approve(ctxV2.DODOApprove.options.address, MAX_UINT256).send(ctxV2.sendParam(trader));
|
||||||
await logGas(await ctxV2.DODOProxyV2.methods.addLiquidityToV1(
|
await logGas(await ctxV2.DODOProxyV2.methods.addLiquidityToV1(
|
||||||
trader,
|
|
||||||
ctxV1.DODO_USDT.options.address,
|
ctxV1.DODO_USDT.options.address,
|
||||||
decimalStr("100"),
|
decimalStr("100"),
|
||||||
mweiStr("100"),
|
mweiStr("100"),
|
||||||
@@ -205,7 +204,6 @@ describe("AddLiquidity", () => {
|
|||||||
console.log("weth_lp:" + weth_lp + " usdc_lp:" + usdc_lp);
|
console.log("weth_lp:" + weth_lp + " usdc_lp:" + usdc_lp);
|
||||||
await ctxV1.USDC.methods.approve(ctxV2.DODOApprove.options.address, MAX_UINT256).send(ctxV2.sendParam(trader));
|
await ctxV1.USDC.methods.approve(ctxV2.DODOApprove.options.address, MAX_UINT256).send(ctxV2.sendParam(trader));
|
||||||
await logGas(await ctxV2.DODOProxyV2.methods.addLiquidityToV1(
|
await logGas(await ctxV2.DODOProxyV2.methods.addLiquidityToV1(
|
||||||
trader,
|
|
||||||
ctxV1.WETH_USDC.options.address,
|
ctxV1.WETH_USDC.options.address,
|
||||||
decimalStr("1"),
|
decimalStr("1"),
|
||||||
mweiStr("100"),
|
mweiStr("100"),
|
||||||
|
|||||||
@@ -140,7 +140,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(b_lp_2, decimalStr("0"));
|
assert.equal(b_lp_2, decimalStr("0"));
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.bid(
|
await logGas(await ctx.DODOProxyV2.methods.bid(
|
||||||
buyer1,
|
|
||||||
cp_DODO_USDT,
|
cp_DODO_USDT,
|
||||||
mweiStr("50"),
|
mweiStr("50"),
|
||||||
0,
|
0,
|
||||||
@@ -148,7 +147,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
), ctx.sendParam(buyer1), "bid");
|
), ctx.sendParam(buyer1), "bid");
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.bid(
|
await logGas(await ctx.DODOProxyV2.methods.bid(
|
||||||
buyer2,
|
|
||||||
cp_DODO_USDT,
|
cp_DODO_USDT,
|
||||||
mweiStr("80"),
|
mweiStr("80"),
|
||||||
0,
|
0,
|
||||||
@@ -156,7 +154,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
), ctx.sendParam(buyer2), "bid");
|
), ctx.sendParam(buyer2), "bid");
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.bid(
|
await logGas(await ctx.DODOProxyV2.methods.bid(
|
||||||
buyer2,
|
|
||||||
cp_DODO_USDT,
|
cp_DODO_USDT,
|
||||||
mweiStr("80"),
|
mweiStr("80"),
|
||||||
0,
|
0,
|
||||||
@@ -164,7 +161,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
), ctx.sendParam(buyer2), "bid");
|
), ctx.sendParam(buyer2), "bid");
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.bid(
|
await logGas(await ctx.DODOProxyV2.methods.bid(
|
||||||
buyer2,
|
|
||||||
cp_DODO_USDT,
|
cp_DODO_USDT,
|
||||||
mweiStr("80"),
|
mweiStr("80"),
|
||||||
0,
|
0,
|
||||||
@@ -193,7 +189,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(b_lp_2, decimalStr("0"));
|
assert.equal(b_lp_2, decimalStr("0"));
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.bid(
|
await logGas(await ctx.DODOProxyV2.methods.bid(
|
||||||
buyer1,
|
|
||||||
cp_DODO_WETH,
|
cp_DODO_WETH,
|
||||||
decimalStr("2"),
|
decimalStr("2"),
|
||||||
1,
|
1,
|
||||||
@@ -201,7 +196,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
), ctx.sendParam(buyer1, "2"), "bid");
|
), ctx.sendParam(buyer1, "2"), "bid");
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.bid(
|
await logGas(await ctx.DODOProxyV2.methods.bid(
|
||||||
buyer2,
|
|
||||||
cp_DODO_WETH,
|
cp_DODO_WETH,
|
||||||
decimalStr("1"),
|
decimalStr("1"),
|
||||||
1,
|
1,
|
||||||
|
|||||||
@@ -236,7 +236,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 0
|
var directions = 0
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.USDT.options.address,
|
ctx.USDT.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -252,7 +251,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(a_DOOD, decimalStr("500"));
|
assert.equal(a_DOOD, decimalStr("500"));
|
||||||
assert.equal(a_USDT, "99749900");
|
assert.equal(a_USDT, "99749900");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.USDT.options.address,
|
ctx.USDT.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -273,7 +271,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -289,7 +286,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(a_DOOD, decimalStr("500"));
|
assert.equal(a_DOOD, decimalStr("500"));
|
||||||
assert.equal(a_WETH, "165350643050738035");
|
assert.equal(a_WETH, "165350643050738035");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -310,7 +306,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
1,
|
1,
|
||||||
dodoPairs,
|
dodoPairs,
|
||||||
@@ -325,7 +320,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
// console.log("b_ETH:" + b_ETH + " a_ETH:" + a_ETH);
|
// console.log("b_ETH:" + b_ETH + " a_ETH:" + a_ETH);
|
||||||
assert.equal(a_DOOD, "2908497423869401229986");
|
assert.equal(a_DOOD, "2908497423869401229986");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
1,
|
1,
|
||||||
dodoPairs,
|
dodoPairs,
|
||||||
@@ -346,7 +340,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
var tx = await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
var tx = await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
1,
|
1,
|
||||||
@@ -366,7 +359,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
"165350643050738035"
|
"165350643050738035"
|
||||||
)
|
)
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
1,
|
1,
|
||||||
@@ -388,7 +380,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 4
|
var directions = 4
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -404,7 +395,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(a_DOOD, decimalStr("500"));
|
assert.equal(a_DOOD, decimalStr("500"));
|
||||||
assert.equal(a_WETH, "165004688801375425");
|
assert.equal(a_WETH, "165004688801375425");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ async function init(ctx: ProxyContext): Promise<void> {
|
|||||||
async function initCreateDVM(ctx: ProxyContext, token0: string, token1: string, token0Amount: string, token1Amount: string, ethValue: string, i: string): Promise<string> {
|
async function initCreateDVM(ctx: ProxyContext, token0: string, token1: string, token0Amount: string, token1Amount: string, ethValue: string, i: string): Promise<string> {
|
||||||
let PROXY = ctx.DODOProxyV2;
|
let PROXY = ctx.DODOProxyV2;
|
||||||
await PROXY.methods.createDODOVendingMachine(
|
await PROXY.methods.createDODOVendingMachine(
|
||||||
project,
|
|
||||||
token0,
|
token0,
|
||||||
token1,
|
token1,
|
||||||
token0Amount,
|
token0Amount,
|
||||||
@@ -109,7 +108,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
var baseAmount = decimalStr("10000");
|
var baseAmount = decimalStr("10000");
|
||||||
var quoteAmount = mweiStr("10000");
|
var quoteAmount = mweiStr("10000");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.createDODOVendingMachine(
|
await logGas(await ctx.DODOProxyV2.methods.createDODOVendingMachine(
|
||||||
project,
|
|
||||||
baseToken,
|
baseToken,
|
||||||
quoteToken,
|
quoteToken,
|
||||||
baseAmount,
|
baseAmount,
|
||||||
@@ -137,7 +135,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
// var baseAmount = decimalStr("5");
|
// var baseAmount = decimalStr("5");
|
||||||
// var quoteAmount = mweiStr("10000");
|
// var quoteAmount = mweiStr("10000");
|
||||||
// await logGas(await ctx.DODOProxyV2.methods.createDODOVendingMachine(
|
// await logGas(await ctx.DODOProxyV2.methods.createDODOVendingMachine(
|
||||||
// project,
|
|
||||||
// baseToken,
|
// baseToken,
|
||||||
// quoteToken,
|
// quoteToken,
|
||||||
// baseAmount,
|
// baseAmount,
|
||||||
@@ -168,7 +165,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(b_dlp, decimalStr("0"));
|
assert.equal(b_dlp, decimalStr("0"));
|
||||||
await logGas(await ctx.DODOProxyV2.methods.addDVMLiquidity(
|
await logGas(await ctx.DODOProxyV2.methods.addDVMLiquidity(
|
||||||
dvm_DODO_USDT,
|
dvm_DODO_USDT,
|
||||||
lp,
|
|
||||||
decimalStr("1000"),
|
decimalStr("1000"),
|
||||||
mweiStr("300"),
|
mweiStr("300"),
|
||||||
decimalStr("0"),
|
decimalStr("0"),
|
||||||
@@ -194,7 +190,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(b_dlp, decimalStr("0"));
|
assert.equal(b_dlp, decimalStr("0"));
|
||||||
await logGas(await ctx.DODOProxyV2.methods.addDVMLiquidity(
|
await logGas(await ctx.DODOProxyV2.methods.addDVMLiquidity(
|
||||||
dvm_WETH_USDT,
|
dvm_WETH_USDT,
|
||||||
lp,
|
|
||||||
decimalStr("1"),
|
decimalStr("1"),
|
||||||
mweiStr("6000"),
|
mweiStr("6000"),
|
||||||
decimalStr("0"),
|
decimalStr("0"),
|
||||||
@@ -284,7 +279,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
var directions = 0
|
var directions = 0
|
||||||
|
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.USDT.options.address,
|
ctx.USDT.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -300,7 +294,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(a_DOOD, decimalStr("500"));
|
assert.equal(a_DOOD, decimalStr("500"));
|
||||||
assert.equal(a_USDT, "126151370");
|
assert.equal(a_USDT, "126151370");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.USDT.options.address,
|
ctx.USDT.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -322,7 +315,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -338,7 +330,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(a_DOOD, decimalStr("500"));
|
assert.equal(a_DOOD, decimalStr("500"));
|
||||||
assert.equal(a_WETH, "163816613646287588");
|
assert.equal(a_WETH, "163816613646287588");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -359,7 +350,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
1,
|
1,
|
||||||
dodoPairs,
|
dodoPairs,
|
||||||
@@ -374,7 +364,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
// console.log("b_ETH:" + b_ETH + " a_ETH:" + a_ETH);
|
// console.log("b_ETH:" + b_ETH + " a_ETH:" + a_ETH);
|
||||||
assert.equal(a_DOOD, "2814340111190341070680");
|
assert.equal(a_DOOD, "2814340111190341070680");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
1,
|
1,
|
||||||
dodoPairs,
|
dodoPairs,
|
||||||
@@ -392,7 +381,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
var tx = await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
var tx = await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
decimalStr("1000"),
|
decimalStr("1000"),
|
||||||
1,
|
1,
|
||||||
@@ -407,7 +395,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
"323865907568573497"
|
"323865907568573497"
|
||||||
)
|
)
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
decimalStr("1000"),
|
decimalStr("1000"),
|
||||||
1,
|
1,
|
||||||
@@ -426,7 +413,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 4
|
var directions = 4
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -440,7 +426,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
assert.equal(a_DOOD, decimalStr("500"));
|
assert.equal(a_DOOD, decimalStr("500"));
|
||||||
assert.equal(a_WETH, "163633965833613187");
|
assert.equal(a_WETH, "163633965833613187");
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ async function initCreateDPP(ctx: ProxyContext, token0: string, token1: string,
|
|||||||
async function initCreateDVM(ctx: ProxyContext, token0: string, token1: string, token0Amount: string, token1Amount: string, ethValue: string, i: string): Promise<string> {
|
async function initCreateDVM(ctx: ProxyContext, token0: string, token1: string, token0Amount: string, token1Amount: string, ethValue: string, i: string): Promise<string> {
|
||||||
let PROXY = ctx.DODOProxyV2;
|
let PROXY = ctx.DODOProxyV2;
|
||||||
await PROXY.methods.createDODOVendingMachine(
|
await PROXY.methods.createDODOVendingMachine(
|
||||||
project,
|
|
||||||
token0,
|
token0,
|
||||||
token1,
|
token1,
|
||||||
token0Amount,
|
token0Amount,
|
||||||
@@ -114,7 +113,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
ctx.WETH.options.address,
|
ctx.WETH.options.address,
|
||||||
decimalStr("500"),
|
decimalStr("500"),
|
||||||
@@ -141,7 +139,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2ETHToToken(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
1,
|
1,
|
||||||
dodoPairs,
|
dodoPairs,
|
||||||
@@ -169,7 +166,6 @@ describe("DODOProxyV2.0", () => {
|
|||||||
]
|
]
|
||||||
var directions = 2
|
var directions = 2
|
||||||
var tx = await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
var tx = await logGas(await ctx.DODOProxyV2.methods.dodoSwapV2TokenToETH(
|
||||||
trader,
|
|
||||||
ctx.DODO.options.address,
|
ctx.DODO.options.address,
|
||||||
decimalStr("10000"),
|
decimalStr("10000"),
|
||||||
1,
|
1,
|
||||||
|
|||||||
Reference in New Issue
Block a user