factory add template update && proxy fix

This commit is contained in:
owen05
2021-01-07 12:52:24 +08:00
parent bedc37c08a
commit 6e8c5d6f91
10 changed files with 74 additions and 47 deletions

View File

@@ -20,12 +20,11 @@ contract CrowdPoolingFactory is InitializableOwnable {
// ============ Templates ============ // ============ Templates ============
address public immutable _CLONE_FACTORY_; address public immutable _CLONE_FACTORY_;
address public immutable _CP_TEMPLATE_;
address public immutable _DVM_FACTORY_; address public immutable _DVM_FACTORY_;
address public immutable _DEFAULT_MAINTAINER_; address public immutable _DEFAULT_MAINTAINER_;
address public immutable _DEFAULT_MT_FEE_RATE_MODEL_; address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
address public immutable _DEFAULT_PERMISSION_MANAGER_; address public immutable _DEFAULT_PERMISSION_MANAGER_;
address public _CP_TEMPLATE_;
uint256 public _X_ = 50; //default uint256 public _X_ = 50; //default
uint256 public _Y_ = 0; //default uint256 public _Y_ = 0; //default
@@ -145,6 +144,10 @@ contract CrowdPoolingFactory is InitializableOwnable {
} }
// ============ Owner Functions ============ // ============ Owner Functions ============
function updateCPTemplate(address _newCPTemplate) external onlyOwner {
_CP_TEMPLATE_ = _newCPTemplate;
}
function setXY(uint256 x,uint256 y) public onlyOwner { function setXY(uint256 x,uint256 y) public onlyOwner {
require(x>0&&x<=100,"CP_FACTORY : INVALID_X"); require(x>0&&x<=100,"CP_FACTORY : INVALID_X");
_X_=x; _X_=x;

View File

@@ -18,10 +18,10 @@ contract DPPFactory is InitializableOwnable {
// ============ Templates ============ // ============ Templates ============
address public immutable _CLONE_FACTORY_; address public immutable _CLONE_FACTORY_;
address public immutable _DPP_TEMPLATE_;
address public immutable _DEFAULT_MAINTAINER_; address public immutable _DEFAULT_MAINTAINER_;
address public immutable _DEFAULT_MT_FEE_RATE_MODEL_; address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
address public immutable _DODO_APPROVE_; address public immutable _DODO_APPROVE_;
address public _DPP_TEMPLATE_;
address public _DPP_ADMIN_TEMPLATE_; address public _DPP_ADMIN_TEMPLATE_;
// ============ Registry ============ // ============ Registry ============
@@ -115,6 +115,10 @@ contract DPPFactory is InitializableOwnable {
_DPP_ADMIN_TEMPLATE_ = _newDPPAdminTemplate; _DPP_ADMIN_TEMPLATE_ = _newDPPAdminTemplate;
} }
function updateDppTemplate(address _newDPPTemplate) external onlyOwner {
_DPP_TEMPLATE_ = _newDPPTemplate;
}
function addPoolByAdmin( function addPoolByAdmin(
address creator, address creator,
address baseToken, address baseToken,

View File

@@ -26,9 +26,9 @@ contract DVMFactory is InitializableOwnable {
// ============ Templates ============ // ============ Templates ============
address public immutable _CLONE_FACTORY_; address public immutable _CLONE_FACTORY_;
address public immutable _DVM_TEMPLATE_;
address public immutable _DEFAULT_MAINTAINER_; address public immutable _DEFAULT_MAINTAINER_;
address public immutable _DEFAULT_MT_FEE_RATE_MODEL_; address public immutable _DEFAULT_MT_FEE_RATE_MODEL_;
address public _DVM_TEMPLATE_;
// ============ Registry ============ // ============ Registry ============
@@ -88,6 +88,10 @@ contract DVMFactory is InitializableOwnable {
// ============ Admin Operation Functions ============ // ============ Admin Operation Functions ============
function updateDvmTemplate(address _newDVMTemplate) external onlyOwner {
_DVM_TEMPLATE_ = _newDVMTemplate;
}
function addPoolByAdmin( function addPoolByAdmin(
address creator, address creator,
address baseToken, address baseToken,

View File

@@ -16,6 +16,13 @@ interface IDODOIncentive {
function triggerIncentive(address fromToken,address toToken, address assetTo) external; function triggerIncentive(address fromToken,address toToken, address assetTo) external;
} }
/**
* @title DODOIncentive
* @author DODO Breeder
*
* @notice Trade Incentive in DODO platform
*/
contract DODOIncentive is InitializableOwnable { contract DODOIncentive is InitializableOwnable {
using SafeMath for uint256; using SafeMath for uint256;
using SafeERC20 for IERC20; using SafeERC20 for IERC20;

View File

@@ -22,6 +22,7 @@ import {DecimalMath} from "../lib/DecimalMath.sol";
import {ReentrancyGuard} from "../lib/ReentrancyGuard.sol"; import {ReentrancyGuard} from "../lib/ReentrancyGuard.sol";
import {InitializableOwnable} from "../lib/InitializableOwnable.sol"; import {InitializableOwnable} from "../lib/InitializableOwnable.sol";
//TODO: add gas return && trade incentive && replace DODOV1Proxy02
contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable { contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable {
using SafeMath for uint256; using SafeMath for uint256;
using UniversalERC20 for IERC20; using UniversalERC20 for IERC20;
@@ -44,8 +45,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
address toToken, address toToken,
address sender, address sender,
uint256 fromAmount, uint256 fromAmount,
uint256 returnAmount, uint256 returnAmount
uint256 sourceFlag
); );
// ============ Modifiers ============ // ============ Modifiers ============
@@ -139,7 +139,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
function addDVMLiquidity( function addDVMLiquidity(
address dvmAddress, address dvmAddress,
address to, address assetTo,
uint256 baseInAmount, uint256 baseInAmount,
uint256 quoteInAmount, uint256 quoteInAmount,
uint256 baseMinAmount, uint256 baseMinAmount,
@@ -158,8 +158,9 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
uint256 quoteAdjustedInAmount uint256 quoteAdjustedInAmount
) )
{ {
address _dvm = dvmAddress;
(baseAdjustedInAmount, quoteAdjustedInAmount) = _addDVMLiquidity( (baseAdjustedInAmount, quoteAdjustedInAmount) = _addDVMLiquidity(
dvmAddress, _dvm,
baseInAmount, baseInAmount,
quoteInAmount quoteInAmount
); );
@@ -167,12 +168,11 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
baseAdjustedInAmount >= baseMinAmount && quoteAdjustedInAmount >= quoteMinAmount, baseAdjustedInAmount >= baseMinAmount && quoteAdjustedInAmount >= quoteMinAmount,
"DODOV2Proxy01: deposit amount is not enough" "DODOV2Proxy01: deposit amount is not enough"
); );
address _dvm = dvmAddress;
_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(to); (shares, , ) = IDODOV2(_dvm).buyShares(assetTo);
// 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);
@@ -306,8 +306,10 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
judgeExpired(deadLine) judgeExpired(deadLine)
returns (uint256 returnAmount) returns (uint256 returnAmount)
{ {
uint256 originToTokenBalance = IERC20(toToken).balanceOf(msg.sender); require(dodoPairs.length > 0, "DODOV2Proxy01: PAIRS_EMPTY");
require(minReturnAmount > 0, "DODOV2Proxy01: RETURN_AMOUNT_ZERO");
uint256 originToTokenBalance = IERC20(toToken).balanceOf(msg.sender);
IWETH(_WETH_).deposit{value: msg.value}(); IWETH(_WETH_).deposit{value: msg.value}();
IWETH(_WETH_).transfer(dodoPairs[0], msg.value); IWETH(_WETH_).transfer(dodoPairs[0], msg.value);
@@ -335,8 +337,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
toToken, toToken,
assetTo, assetTo,
msg.value, msg.value,
returnAmount, returnAmount
0
); );
} }
@@ -354,6 +355,9 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
judgeExpired(deadLine) judgeExpired(deadLine)
returns (uint256 returnAmount) returns (uint256 returnAmount)
{ {
require(dodoPairs.length > 0, "DODOV2Proxy01: PAIRS_EMPTY");
require(minReturnAmount > 0, "DODOV2Proxy01: RETURN_AMOUNT_ZERO");
IDODOApprove(_DODO_APPROVE_).claimTokens(fromToken, msg.sender, dodoPairs[0], fromTokenAmount); IDODOApprove(_DODO_APPROVE_).claimTokens(fromToken, msg.sender, dodoPairs[0], fromTokenAmount);
for (uint256 i = 0; i < dodoPairs.length; i++) { for (uint256 i = 0; i < dodoPairs.length; i++) {
@@ -381,8 +385,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
_ETH_ADDRESS_, _ETH_ADDRESS_,
assetTo, assetTo,
fromTokenAmount, fromTokenAmount,
returnAmount, returnAmount
0
); );
} }
@@ -401,6 +404,9 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
judgeExpired(deadLine) judgeExpired(deadLine)
returns (uint256 returnAmount) returns (uint256 returnAmount)
{ {
require(dodoPairs.length > 0, "DODOV2Proxy01: PAIRS_EMPTY");
require(minReturnAmount > 0, "DODOV2Proxy01: RETURN_AMOUNT_ZERO");
uint256 originToTokenBalance = IERC20(toToken).balanceOf(msg.sender); uint256 originToTokenBalance = IERC20(toToken).balanceOf(msg.sender);
IDODOApprove(_DODO_APPROVE_).claimTokens(fromToken, msg.sender, dodoPairs[0], fromTokenAmount); IDODOApprove(_DODO_APPROVE_).claimTokens(fromToken, msg.sender, dodoPairs[0], fromTokenAmount);
@@ -427,8 +433,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
toToken, toToken,
assetTo, assetTo,
fromTokenAmount, fromTokenAmount,
returnAmount, returnAmount
0
); );
} }
@@ -436,7 +441,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
address fromToken, address fromToken,
address toToken, address toToken,
address approveTarget, address approveTarget,
address to, address swapTarget,
uint256 fromTokenAmount, uint256 fromTokenAmount,
uint256 minReturnAmount, uint256 minReturnAmount,
bytes memory callDataConcat, bytes memory callDataConcat,
@@ -448,8 +453,9 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
judgeExpired(deadLine) judgeExpired(deadLine)
returns (uint256 returnAmount) returns (uint256 returnAmount)
{ {
uint256 toTokenOriginBalance = IERC20(toToken).universalBalanceOf(msg.sender); require(minReturnAmount > 0, "DODOV2Proxy01: RETURN_AMOUNT_ZERO");
uint256 toTokenOriginBalance = IERC20(toToken).universalBalanceOf(msg.sender);
if (fromToken != _ETH_ADDRESS_) { if (fromToken != _ETH_ADDRESS_) {
IDODOApprove(_DODO_APPROVE_).claimTokens( IDODOApprove(_DODO_APPROVE_).claimTokens(
fromToken, fromToken,
@@ -460,15 +466,10 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
IERC20(fromToken).universalApproveMax(approveTarget, fromTokenAmount); IERC20(fromToken).universalApproveMax(approveTarget, fromTokenAmount);
} }
require(isWhiteListed[to], "DODOV2Proxy01: Not Whitelist Contract"); require(isWhiteListed[swapTarget], "DODOV2Proxy01: Not Whitelist Contract");
(bool success, ) = to.call{value: fromToken == _ETH_ADDRESS_ ? msg.value : 0}(callDataConcat); (bool success, ) = swapTarget.call{value: fromToken == _ETH_ADDRESS_ ? msg.value : 0}(callDataConcat);
require(success, "DODOV2Proxy01: Contract Swap execution Failed"); require(success, "DODOV2Proxy01: External Swap execution Failed");
IERC20(fromToken).universalTransfer(
msg.sender,
IERC20(fromToken).universalBalanceOf(address(this))
);
IERC20(toToken).universalTransfer( IERC20(toToken).universalTransfer(
msg.sender, msg.sender,
@@ -483,8 +484,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
toToken, toToken,
msg.sender, msg.sender,
fromTokenAmount, fromTokenAmount,
returnAmount, returnAmount
3
); );
} }
@@ -535,7 +535,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough"); require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough");
IERC20(toToken).universalTransfer(msg.sender, returnAmount); IERC20(toToken).universalTransfer(msg.sender, returnAmount);
emit OrderHistory(fromToken, toToken, msg.sender, fromTokenAmount, returnAmount, 1); emit OrderHistory(fromToken, toToken, msg.sender, fromTokenAmount, returnAmount);
} }
function mixSwapV1( function mixSwapV1(
@@ -591,7 +591,7 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable
returnAmount = IERC20(_toToken).universalBalanceOf(msg.sender).sub(toTokenOriginBalance); returnAmount = IERC20(_toToken).universalBalanceOf(msg.sender).sub(toTokenOriginBalance);
require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough"); require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough");
emit OrderHistory(_fromToken, _toToken, msg.sender, fromTokenAmount, returnAmount, 2); emit OrderHistory(_fromToken, _toToken, msg.sender, fromTokenAmount, returnAmount);
} }
//============ CrowdPooling Functions (create & bid) ============ //============ CrowdPooling Functions (create & bid) ============

View File

@@ -1,6 +1,7 @@
/* /*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0 Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/ */

View File

@@ -55,7 +55,7 @@ interface IDODOV2Proxy01 is IDODOV1Proxy01 {
function addDVMLiquidity( function addDVMLiquidity(
address dvmAddress, address dvmAddress,
address to, address assetTo,
uint256 baseInAmount, uint256 baseInAmount,
uint256 quoteInAmount, uint256 quoteInAmount,
uint256 baseMinAmount, uint256 baseMinAmount,

View File

@@ -74,3 +74,11 @@ DODOApprove Address: 0xa128Ba44B2738A558A1fdC06d6303d52D3Cef8c1
DODOProxyV1 Address: 0x0cA2d4BC266B1ad7a0787409AD7a0331D78Eea90 DODOProxyV1 Address: 0x0cA2d4BC266B1ad7a0787409AD7a0331D78Eea90
Set DODOProxyV1 Owner tx: 0x35c8405b4b4dfbac83971c622f4e086dc0f850ade69da408792eb9a835a683f4 Set DODOProxyV1 Owner tx: 0x35c8405b4b4dfbac83971c622f4e086dc0f850ade69da408792eb9a835a683f4
Set DODOApprove Owner And Init Set Proxy tx: 0xb381ac8a87a834a6ab8cc63064153dd2c65261e7c43e5d1a504bcae11fb42a10 Set DODOApprove Owner And Init Set Proxy tx: 0xb381ac8a87a834a6ab8cc63064153dd2c65261e7c43e5d1a504bcae11fb42a10
====================================================
network type: kovan
Deploy time: 2021/1/6 下午6:53:44
Deploy type: Proxy
DODOApprove Address: 0xE0eE1f72c0Ce4097F204beBD3B7fF508fb26292D
DODOProxyV1 Address: 0xf63baBc984ff05374dBCF0367Eaa2333663f2262
Set DODOProxyV1 Owner tx: 0x2d00a39ad1904a34b8baa7d6a69bc634ea2bc2cff0038bec79e922b7d0687e76
Set DODOApprove Owner And Init Set Proxy tx: 0xf368e47b184b3f0db035fa7a0838eabc46e6f24d98bc44cb0b1b1b8c73e31561

View File

@@ -70,7 +70,7 @@ describe("DPP Trader", () => {
it("first buy and then sell", async () => { it("first buy and then sell", async () => {
// buy at R=1 // buy at R=1
await ctx.transferQuoteToDPP(trader, decimalStr("100")) await ctx.transferQuoteToDPP(trader, decimalStr("100"))
await ctx.DPP.methods.sellQuote(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellQuote(trader), ctx.sendParam(trader), "sellQuote - buy at R=1")
var balances = await ctx.getBalances(trader) var balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, "10986174542266106307") assert.equal(balances.traderBase, "10986174542266106307")
@@ -82,7 +82,7 @@ describe("DPP Trader", () => {
// buy at R>1 // buy at R>1
await ctx.transferQuoteToDPP(trader, decimalStr("100")) await ctx.transferQuoteToDPP(trader, decimalStr("100"))
await ctx.DPP.methods.sellQuote(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellQuote(trader), ctx.sendParam(trader), "sellQuote - buy at R>1")
balances = await ctx.getBalances(trader) balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, "11946772292527553373") assert.equal(balances.traderBase, "11946772292527553373")
@@ -94,7 +94,7 @@ describe("DPP Trader", () => {
// sell at R>1 and R not change state // sell at R>1 and R not change state
await ctx.transferBaseToDPP(trader, decimalStr("1")) await ctx.transferBaseToDPP(trader, decimalStr("1"))
await ctx.DPP.methods.sellBase(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellBase(trader), ctx.sendParam(trader), "sellBase - sell at R>1 and R not change state")
balances = await ctx.getBalances(trader) balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, "10946772292527553373") assert.equal(balances.traderBase, "10946772292527553373")
@@ -106,7 +106,7 @@ describe("DPP Trader", () => {
// sell at R>1 and R change state // sell at R>1 and R change state
await ctx.transferBaseToDPP(trader, decimalStr("2")) await ctx.transferBaseToDPP(trader, decimalStr("2"))
await ctx.DPP.methods.sellBase(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellBase(trader), ctx.sendParam(trader), "sellBase - sell at R>1 and R change state")
balances = await ctx.getBalances(trader) balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, "8946772292527553373") assert.equal(balances.traderBase, "8946772292527553373")
@@ -124,7 +124,7 @@ describe("DPP Trader", () => {
it("first sell and then buy", async () => { it("first sell and then buy", async () => {
// sell at R=1 // sell at R=1
await ctx.transferBaseToDPP(trader, decimalStr("1")) await ctx.transferBaseToDPP(trader, decimalStr("1"))
await ctx.DPP.methods.sellBase(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellBase(trader), ctx.sendParam(trader), "sellBase - sell at R=1")
var balances = await ctx.getBalances(trader) var balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, decimalStr("9")) assert.equal(balances.traderBase, decimalStr("9"))
@@ -136,7 +136,7 @@ describe("DPP Trader", () => {
// buy at R>1 // buy at R>1
await ctx.transferBaseToDPP(trader, decimalStr("1")) await ctx.transferBaseToDPP(trader, decimalStr("1"))
await ctx.DPP.methods.sellBase(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellBase(trader), ctx.sendParam(trader), "sellBase - buy at R>1")
balances = await ctx.getBalances(trader) balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, decimalStr("8")) assert.equal(balances.traderBase, decimalStr("8"))
@@ -148,7 +148,7 @@ describe("DPP Trader", () => {
// sell at R>1 and R not change state // sell at R>1 and R not change state
await ctx.transferQuoteToDPP(trader, decimalStr("100")) await ctx.transferQuoteToDPP(trader, decimalStr("100"))
await ctx.DPP.methods.sellQuote(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellQuote(trader), ctx.sendParam(trader), "sell at R>1 and R not change state")
balances = await ctx.getBalances(trader) balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, "9034218146510053391") assert.equal(balances.traderBase, "9034218146510053391")
@@ -160,7 +160,7 @@ describe("DPP Trader", () => {
// sell at R>1 and R change state // sell at R>1 and R change state
await ctx.transferQuoteToDPP(trader, decimalStr("200")) await ctx.transferQuoteToDPP(trader, decimalStr("200"))
await ctx.DPP.methods.sellQuote(trader).send(ctx.sendParam(trader)) await logGas(ctx.DPP.methods.sellQuote(trader), ctx.sendParam(trader), "sell at R>1 and R change state")
balances = await ctx.getBalances(trader) balances = await ctx.getBalances(trader)
assert.equal(balances.traderBase, "11026382738483432812") assert.equal(balances.traderBase, "11026382738483432812")

View File

@@ -155,11 +155,11 @@ describe("DODOProxyV2.0", () => {
// ); // );
// }); // });
it("resetDPP", async () => { it.only("resetDPP", async () => {
var beforeState = await DPP_DODO_USDT.methods.getPMMState().call(); var beforeState = await DPP_DODO_USDT.methods.getPMMState().call();
assert.equal(beforeState.K, config.k); assert.equal(beforeState.K, config.k);
assert.equal(beforeState.B0, decimalStr("100000")); assert.equal(beforeState.B, decimalStr("100000"));
assert.equal(beforeState.Q0, mweiStr("20000")); assert.equal(beforeState.Q, mweiStr("20000"));
await logGas(await ctx.DODOProxyV2.methods.resetDODOPrivatePool( await logGas(await ctx.DODOProxyV2.methods.resetDODOPrivatePool(
dpp_DODO_USDT, dpp_DODO_USDT,
[config.lpFeeRate, mweiStr("0.2"), decimalStr("0.2")], [config.lpFeeRate, mweiStr("0.2"), decimalStr("0.2")],
@@ -171,8 +171,8 @@ describe("DODOProxyV2.0", () => {
), ctx.sendParam(project), "resetDPP"); ), ctx.sendParam(project), "resetDPP");
var afterState = await DPP_DODO_USDT.methods.getPMMState().call(); var afterState = await DPP_DODO_USDT.methods.getPMMState().call();
assert.equal(afterState.K, decimalStr("0.2")); assert.equal(afterState.K, decimalStr("0.2"));
assert.equal(afterState.B0, decimalStr("101000")); assert.equal(afterState.B, decimalStr("101000"));
assert.equal(afterState.Q0, mweiStr("21000")); assert.equal(afterState.Q, mweiStr("21000"));
}); });