diff --git a/contracts/SmartRoute/DODOV1Proxy02.sol b/contracts/SmartRoute/DODOV1Proxy02.sol index 4d52100..daadc81 100644 --- a/contracts/SmartRoute/DODOV1Proxy02.sol +++ b/contracts/SmartRoute/DODOV1Proxy02.sol @@ -18,7 +18,6 @@ import {IUni} from "./intf/IUni.sol"; import {IDODOApprove} from "../intf/IDODOApprove.sol"; import {IDODOV1Proxy02} from "./intf/IDODOV1Proxy02.sol"; import {InitializableOwnable} from "../lib/InitializableOwnable.sol"; -import {IDODOIncentive} from "./DODOIncentive.sol"; /** * @title DODOV1Proxy02 @@ -33,7 +32,6 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { // ============ Storage ============ address constant _ETH_ADDRESS_ = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; - address public immutable _DODO_INCENTIVE_; address public immutable _DODO_APPROVE_; address public immutable _DODO_SELL_HELPER_; address public immutable _WETH_; @@ -63,14 +61,12 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { address dodoApporve, address dodoSellHelper, address weth, - address chiToken, - address dodoIncentive + address chiToken ) public { _DODO_APPROVE_ = dodoApporve; _DODO_SELL_HELPER_ = dodoSellHelper; _WETH_ = weth; _CHI_TOKEN_ = chiToken; - _DODO_INCENTIVE_ = dodoIncentive; } fallback() external payable {} @@ -97,7 +93,6 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { uint256 minReturnAmount, address[] memory dodoPairs, uint256 directions, - bool isIncentive, uint256 deadLine ) external override payable judgeExpired(deadLine) returns (uint256 returnAmount) { require(dodoPairs.length > 0, "DODOV1Proxy02: PAIRS_EMPTY"); @@ -155,10 +150,6 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { if(gasleft() > 27710 + gasTokenBurn * 6080) IChi(_CHI_TOKEN_).freeUpTo(gasTokenBurn); } - - if(isIncentive) { - IDODOIncentive(_DODO_INCENTIVE_).triggerIncentive(fromToken,toToken,msg.sender); - } } function externalSwap( @@ -169,11 +160,11 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { uint256 fromTokenAmount, uint256 minReturnAmount, bytes memory callDataConcat, - bool isIncentive, uint256 deadLine ) external override payable judgeExpired(deadLine) returns (uint256 returnAmount) { require(minReturnAmount > 0, "DODOV1Proxy02: RETURN_AMOUNT_ZERO"); - + require(fromToken != _CHI_TOKEN_, "DODOV1Proxy02: NOT_SUPPORT_SELL_CHI"); + address _fromToken = fromToken; address _toToken = toToken; @@ -208,10 +199,6 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { if(gasleft() > 27710 + _gasExternalReturn * 6080) IChi(_CHI_TOKEN_).freeUpTo(_gasExternalReturn); } - - if(isIncentive) { - IDODOIncentive(_DODO_INCENTIVE_).triggerIncentive(_fromToken,_toToken,msg.sender); - } } @@ -223,12 +210,12 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { address[] memory mixPairs, uint256[] memory directions, address[] memory portionPath, - bool isIncentive, uint256 deadLine ) external override payable judgeExpired(deadLine) returns (uint256 returnAmount) { require(mixPairs.length == directions.length, "DODOV1Proxy02: PARAMS_LENGTH_NOT_MATCH"); require(mixPairs.length > 0, "DODOV1Proxy02: PAIRS_EMPTY"); require(minReturnAmount > 0, "DODOV1Proxy02: RETURN_AMOUNT_ZERO"); + require(fromToken != _CHI_TOKEN_, "DODOV1Proxy02: NOT_SUPPORT_SELL_CHI"); uint256 toTokenOriginBalance = IERC20(toToken).universalBalanceOf(msg.sender); @@ -282,9 +269,5 @@ contract DODOV1Proxy02 is IDODOV1Proxy02, InitializableOwnable { if(gasleft() > 27710 + _gasExternalReturn * 6080) IChi(_CHI_TOKEN_).freeUpTo(_gasExternalReturn); } - - if(isIncentive) { - IDODOIncentive(_DODO_INCENTIVE_).triggerIncentive(fromToken,toToken,msg.sender); - } } } diff --git a/contracts/SmartRoute/intf/IDODOV1Proxy02.sol b/contracts/SmartRoute/intf/IDODOV1Proxy02.sol index 8e829a2..9052f64 100644 --- a/contracts/SmartRoute/intf/IDODOV1Proxy02.sol +++ b/contracts/SmartRoute/intf/IDODOV1Proxy02.sol @@ -16,7 +16,6 @@ interface IDODOV1Proxy02 { uint256 minReturnAmount, address[] memory dodoPairs, uint256 directions, - bool isIncentive, uint256 deadLine ) external payable returns (uint256 returnAmount); @@ -28,7 +27,6 @@ interface IDODOV1Proxy02 { uint256 fromTokenAmount, uint256 minReturnAmount, bytes memory callDataConcat, - bool isIncentive, uint256 deadLine ) external payable returns (uint256 returnAmount); @@ -40,7 +38,6 @@ interface IDODOV1Proxy02 { address[] memory mixPairs, uint256[] memory directions, address[] memory portionPath, - bool isIncentive, uint256 deadLine ) external payable returns (uint256 returnAmount); } diff --git a/contracts/SmartRoute/intf/IDODOV2Proxy01.sol b/contracts/SmartRoute/intf/IDODOV2Proxy01.sol index d59d37c..d37c9dc 100644 --- a/contracts/SmartRoute/intf/IDODOV2Proxy01.sol +++ b/contracts/SmartRoute/intf/IDODOV2Proxy01.sol @@ -8,9 +8,8 @@ pragma solidity 0.6.9; pragma experimental ABIEncoderV2; -import {IDODOV1Proxy02} from "./IDODOV1Proxy02.sol"; -interface IDODOV2Proxy01 is IDODOV1Proxy02 { +interface IDODOV2Proxy01 { function dodoSwapV2ETHToToken( address toToken, uint256 minReturnAmount, @@ -116,4 +115,39 @@ interface IDODOV2Proxy01 is IDODOV1Proxy02 { uint256 deadLine ) external payable returns(uint256, uint256); + function dodoSwapV1( + address fromToken, + address toToken, + uint256 fromTokenAmount, + uint256 minReturnAmount, + address[] memory dodoPairs, + uint256 directions, + bool isIncentive, + uint256 deadLine + ) external payable returns (uint256 returnAmount); + + function externalSwap( + address fromToken, + address toToken, + address approveTarget, + address to, + uint256 fromTokenAmount, + uint256 minReturnAmount, + bytes memory callDataConcat, + bool isIncentive, + uint256 deadLine + ) external payable returns (uint256 returnAmount); + + function mixSwapV1( + address fromToken, + address toToken, + uint256 fromTokenAmount, + uint256 minReturnAmount, + address[] memory mixPairs, + uint256[] memory directions, + address[] memory portionPath, + bool isIncentive, + uint256 deadLine + ) external payable returns (uint256 returnAmount); + }