gas optimize
This commit is contained in:
@@ -68,11 +68,9 @@ contract DODOEthProxy is ReentrancyGuard {
|
||||
require(msg.value == ethAmount, "ETH_AMOUNT_NOT_MATCH");
|
||||
address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);
|
||||
require(DODO != address(0), "DODO_NOT_EXIST");
|
||||
receiveTokenAmount = IDODO(DODO).querySellBaseToken(ethAmount);
|
||||
require(receiveTokenAmount >= minReceiveTokenAmount, "RECEIVE_NOT_ENOUGH");
|
||||
IWETH(_WETH_).deposit{value: ethAmount}();
|
||||
IWETH(_WETH_).approve(DODO, ethAmount);
|
||||
IDODO(DODO).sellBaseToken(ethAmount, minReceiveTokenAmount);
|
||||
receiveTokenAmount = IDODO(DODO).sellBaseToken(ethAmount, minReceiveTokenAmount);
|
||||
_transferOut(quoteTokenAddress, msg.sender, receiveTokenAmount);
|
||||
emit ProxySellEth(msg.sender, quoteTokenAddress, ethAmount, receiveTokenAmount);
|
||||
return receiveTokenAmount;
|
||||
@@ -86,7 +84,6 @@ contract DODOEthProxy is ReentrancyGuard {
|
||||
address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);
|
||||
require(DODO != address(0), "DODO_NOT_EXIST");
|
||||
payTokenAmount = IDODO(DODO).queryBuyBaseToken(ethAmount);
|
||||
require(payTokenAmount <= maxPayTokenAmount, "PAY_TOO_MUCH");
|
||||
_transferIn(quoteTokenAddress, msg.sender, payTokenAmount);
|
||||
IERC20(quoteTokenAddress).approve(DODO, payTokenAmount);
|
||||
IDODO(DODO).buyBaseToken(ethAmount, maxPayTokenAmount);
|
||||
|
||||
@@ -70,9 +70,15 @@ contract Trader is Storage, Pricing, Settlement {
|
||||
_quoteTokenTransferOut(_MAINTAINER_, mtFeeQuote);
|
||||
|
||||
// update TARGET
|
||||
_TARGET_QUOTE_TOKEN_AMOUNT_ = newQuoteTarget;
|
||||
_TARGET_BASE_TOKEN_AMOUNT_ = newBaseTarget;
|
||||
_R_STATUS_ = newRStatus;
|
||||
if (_TARGET_QUOTE_TOKEN_AMOUNT_ != newQuoteTarget) {
|
||||
_TARGET_QUOTE_TOKEN_AMOUNT_ = newQuoteTarget;
|
||||
}
|
||||
if (_TARGET_BASE_TOKEN_AMOUNT_ != newBaseTarget) {
|
||||
_TARGET_BASE_TOKEN_AMOUNT_ = newBaseTarget;
|
||||
}
|
||||
if (_R_STATUS_ != newRStatus) {
|
||||
_R_STATUS_ = newRStatus;
|
||||
}
|
||||
|
||||
_donateQuoteToken(lpFeeQuote);
|
||||
emit SellBaseToken(msg.sender, amount, receiveQuote);
|
||||
@@ -105,9 +111,15 @@ contract Trader is Storage, Pricing, Settlement {
|
||||
_baseTokenTransferOut(_MAINTAINER_, mtFeeBase);
|
||||
|
||||
// update TARGET
|
||||
_TARGET_QUOTE_TOKEN_AMOUNT_ = newQuoteTarget;
|
||||
_TARGET_BASE_TOKEN_AMOUNT_ = newBaseTarget;
|
||||
_R_STATUS_ = newRStatus;
|
||||
if (_TARGET_QUOTE_TOKEN_AMOUNT_ != newQuoteTarget) {
|
||||
_TARGET_QUOTE_TOKEN_AMOUNT_ = newQuoteTarget;
|
||||
}
|
||||
if (_TARGET_BASE_TOKEN_AMOUNT_ != newBaseTarget) {
|
||||
_TARGET_BASE_TOKEN_AMOUNT_ = newBaseTarget;
|
||||
}
|
||||
if (_R_STATUS_ != newRStatus) {
|
||||
_R_STATUS_ = newRStatus;
|
||||
}
|
||||
|
||||
_donateBaseToken(lpFeeBase);
|
||||
emit BuyBaseToken(msg.sender, amount, payQuote);
|
||||
|
||||
Reference in New Issue
Block a user