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