From 847d0bf8952f89d7378a6042886866f2be755c0d Mon Sep 17 00:00:00 2001 From: owen05 Date: Tue, 12 Jan 2021 20:33:44 +0800 Subject: [PATCH] fix mixSwap weth to eth --- contracts/Factory/DVMFactory.sol | 4 ++-- contracts/SmartRoute/DODOV2Proxy01.sol | 19 +++++++++++++------ deploy-detail-v1.5.txt | 8 +++++++- deploy-detail-v2.0.txt | 17 +++++++++++++++++ migrations/3_deploy_v2.js | 22 ++++++++++++++-------- truffle-config.js | 5 +++-- 6 files changed, 56 insertions(+), 19 deletions(-) diff --git a/contracts/Factory/DVMFactory.sol b/contracts/Factory/DVMFactory.sol index 25b4d8a..f640f90 100644 --- a/contracts/Factory/DVMFactory.sol +++ b/contracts/Factory/DVMFactory.sol @@ -89,8 +89,8 @@ contract DVMFactory is InitializableOwnable { ); } _REGISTRY_[baseToken][quoteToken].push(newVendingMachine); - _USER_REGISTRY_[msg.sender].push(newVendingMachine); - emit NewDVM(baseToken, quoteToken, msg.sender, newVendingMachine); + _USER_REGISTRY_[tx.origin].push(newVendingMachine); + emit NewDVM(baseToken, quoteToken, tx.origin, newVendingMachine); } // ============ Admin Operation Functions ============ diff --git a/contracts/SmartRoute/DODOV2Proxy01.sol b/contracts/SmartRoute/DODOV2Proxy01.sol index 1c20e6f..9bb31ee 100644 --- a/contracts/SmartRoute/DODOV2Proxy01.sol +++ b/contracts/SmartRoute/DODOV2Proxy01.sol @@ -645,20 +645,27 @@ contract DODOV2Proxy01 is IDODOV2Proxy01, ReentrancyGuard, InitializableOwnable IUni(curPair).swapExactTokensForTokens(curAmountIn,0,portionPath,address(this),deadLine); } } - - IERC20(_toToken).universalTransfer( - msg.sender, - IERC20(_toToken).universalBalanceOf(address(this)) - ); + + { + uint256 toBalance; + if (_toToken == _ETH_ADDRESS_) { + toBalance = IWETH(_WETH_).balanceOf(address(this)); + IWETH(_WETH_).withdraw(toBalance); + } else { + toBalance = IERC20(_toToken).tokenBalanceOf(address(this)); + } + IERC20(_toToken).universalTransfer(msg.sender,toBalance); + } returnAmount = IERC20(_toToken).universalBalanceOf(msg.sender).sub(toTokenOriginBalance); require(returnAmount >= minReturnAmount, "DODOV2Proxy01: Return amount is not enough"); - + _externalGasReturn(); if(isIncentive) { IDODOIncentive(_DODO_INCENTIVE_).triggerIncentive(_fromToken,_toToken,msg.sender); } + emit OrderHistory(_fromToken, _toToken, msg.sender, fromTokenAmount, returnAmount); } diff --git a/deploy-detail-v1.5.txt b/deploy-detail-v1.5.txt index 301e4cc..21fcc91 100644 --- a/deploy-detail-v1.5.txt +++ b/deploy-detail-v1.5.txt @@ -81,4 +81,10 @@ Deploy type: Proxy DODOApprove Address: 0xE0eE1f72c0Ce4097F204beBD3B7fF508fb26292D DODOProxyV1 Address: 0xf63baBc984ff05374dBCF0367Eaa2333663f2262 Set DODOProxyV1 Owner tx: 0x2d00a39ad1904a34b8baa7d6a69bc634ea2bc2cff0038bec79e922b7d0687e76 -Set DODOApprove Owner And Init Set Proxy tx: 0xf368e47b184b3f0db035fa7a0838eabc46e6f24d98bc44cb0b1b1b8c73e31561 \ No newline at end of file +Set DODOApprove Owner And Init Set Proxy tx: 0xf368e47b184b3f0db035fa7a0838eabc46e6f24d98bc44cb0b1b1b8c73e31561 +==================================================== +network type: live +Deploy time: 2021/1/11 上午10:23:58 +Deploy type: Proxy +DODOProxyV2 Address: 0x6ed3fd491F5B10384787B3fb162A72227FaFBf63 +Set DODOProxyV2 Owner tx: 0x438ba2bfcee92e641a3e48709de31bd0e2fcb9866d30f6d73be837e3b42bd551 diff --git a/deploy-detail-v2.0.txt b/deploy-detail-v2.0.txt index 3124c67..306cc6f 100644 --- a/deploy-detail-v2.0.txt +++ b/deploy-detail-v2.0.txt @@ -189,3 +189,20 @@ DODOProxyV2 Address: 0xB035847e685925647AaA8b9d74e3bFF36f81EBcB Init DODOProxyV2 Tx: 0xe98f8e73c4ae138e8d9594dff37afd6657bb34ac8b644e1c6fa9c2f8df8413da DODOApprove Init tx: 0x7b1718f215975439ff86791a0eb05cbea2081e5e1b9d9c6751280a24a1dbb17c DODOIncentive ChangeProxy tx: 0x670e992a681a8808b112a8c5531df7ab11beac55f603d495a07ff91dce42cad4 +==================================================== +network type: kovan +Deploy time: 2021/1/11 下午8:31:34 +Deploy type: V2 +DODOApprove Address: 0xe51d8085aB43AC8BC98e965b2F7B79b998c23814 +==================================================== +network type: kovan +Deploy time: 2021/1/11 下午8:33:29 +Deploy type: V2 +DODOApprove Address: 0x9d48172B0189de70F8788DE10196A1FB622B8E6b +DvmFactoryAddress: 0x369279f8e1cc936f7f9513559897B183d4B2F0Bd +Init DvmFactory Tx: 0x999a11c9c72b14d421e9daad6e9b8bf0ebc735560ca704983249156050a149a0 +DODOProxyV2 Address: 0xbD3CAF4354FeFAf20a1c7240A681A553b40CE393 +Init DODOProxyV2 Tx: 0xc3d8815852219d5a33b8377389f2f9862010c741f9041b3bfb1f972957dfa9f3 +DODOApprove Init tx: 0x0fd68e3a962d04ae71815fecff10ae65b09a74fe995ecf064022ae299a6525a1 +DODOIncentive ChangeProxy tx: 0xe9e4dc61df5a36b11459530a29f7213b05f1611f043d56d733bf9c725f001782 +DODOV2RouteHelper Address: 0x9007007b1923C264088Fa23920109F5297bAd8c7 diff --git a/migrations/3_deploy_v2.js b/migrations/3_deploy_v2.js index f115de0..7b48b0b 100644 --- a/migrations/3_deploy_v2.js +++ b/migrations/3_deploy_v2.js @@ -69,7 +69,7 @@ module.exports = async (deployer, network, accounts) => { WETHAddress = "0x5eca15b12d959dfcf9c71c59f8b467eb8c6efd0b"; chiAddress = "0x0000000000004946c0e9f43f4dee607b0ef1fa1c"; DODOCalleeHelperAddress = "0x507EBbb195CF54E0aF147A2b269C08a38EA36989"; - DODORouteV2HelperAddress = "0x3aAfE7c2643807718EFE35D6D529A74255cA4319"; + DODORouteV2HelperAddress = ""; //Template CloneFactoryAddress = "0xf7959fe661124C49F96CF30Da33729201aEE1b27"; // FeeRateModelTemplateAddress = "0xEF3137780B387313c5889B999D03BdCf9aeEa892"; @@ -81,17 +81,17 @@ module.exports = async (deployer, network, accounts) => { DefaultMtFeeRateAddress = "0xEfdE4225AC747136289979e29f1236527b2E4DB1"; DefaultPermissionAddress = "0xACc7E23368261e1E02103c4e5ae672E7D01f5797"; - DvmTemplateAddress = ""; - DppTemplateAddress = ""; - DppAdminTemplateAddress = ""; - CpTemplateAddress = ""; + DvmTemplateAddress = "0xB13662Fcb9140dD573e74D76BACF2085A853C779"; + DppTemplateAddress = "0x5121e563d6f091945244d02cfE68b1b617206d76"; + DppAdminTemplateAddress = "0x59Fd9F2065b9aA717a51111c31B3cA89291BB866"; + CpTemplateAddress = "0x7b10eE056D1FBeABd0174477418f90032807b06E"; //Factory DvmFactoryAddress = ""; - DppFactoryAddress = ""; - CpFactoryAddress = ""; + DppFactoryAddress = "0x6D4a70354cd03ae3A8461eDE9A4dAd445a169a6B"; + CpFactoryAddress = "0x3a4Cdaf1796b985826CF1Ee451CACA991c2f79E1"; //Approve DODOApproveAddress = ""; - DODOIncentiveAddress = ""; + DODOIncentiveAddress = "0xe7F4bd2a486DE815824335353973B2f4B94BaCeA"; DODOTokenAddress = "0xfF2985D13953Cb92ecc585aA2B6A4AF8cB46068f"; //Account multiSigAddress = accounts[0]; @@ -164,6 +164,12 @@ module.exports = async (deployer, network, accounts) => { defaultMaintainer = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; } else return; + if (deploySwitch.ROUTER_HELPER) { + await deployer.deploy(DODOV2RouteHelper, "0x369279f8e1cc936f7f9513559897B183d4B2F0Bd", "0x6D4a70354cd03ae3A8461eDE9A4dAd445a169a6B"); + DODOV2RouteHelperAddress = DODOV2RouteHelper.address; + logger.log("DODOV2RouteHelper Address: ", DODOV2RouteHelperAddress); + } + if (deploySwitch.DEPLOY_V2) { logger.log("===================================================="); logger.log("network type: " + network); diff --git a/truffle-config.js b/truffle-config.js index b6cab0f..01bb1a1 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -38,12 +38,13 @@ module.exports = { * $ truffle test --network */ deploySwitch: { - DEPLOY_V1: true, + DEPLOY_V1: false, DEPLOY_V2: false, MOCK_TOKEN: false, MOCK_V2_POOL: false, MOCK_V2_SWAP: false, - MANUAL_ADD_POOL: false + MANUAL_ADD_POOL: false, + ROUTER_HELPER: false }, networks: {