From a5b29dd35c25c7ec95319547c59388d09e5064a2 Mon Sep 17 00:00:00 2001 From: owen05 Date: Fri, 22 Jan 2021 14:00:45 +0800 Subject: [PATCH] callee fix --- .../DODOIncentive.sol | 0 contracts/SmartRoute/DODOV2Proxy01.sol | 2 +- .../SmartRoute/helper/DODOCalleeHelper.sol | 4 +- deploy-detail-v2.0.txt | 25 ++++ kovan-mock-v2.0.txt | 26 ++++ migrations/3_deploy_v2.js | 126 +++++------------- migrations/4_deploy_v2_mock.js | 29 ++-- truffle-config.js | 6 +- 8 files changed, 111 insertions(+), 107 deletions(-) rename contracts/{SmartRoute => DODOToken}/DODOIncentive.sol (100%) diff --git a/contracts/SmartRoute/DODOIncentive.sol b/contracts/DODOToken/DODOIncentive.sol similarity index 100% rename from contracts/SmartRoute/DODOIncentive.sol rename to contracts/DODOToken/DODOIncentive.sol diff --git a/contracts/SmartRoute/DODOV2Proxy01.sol b/contracts/SmartRoute/DODOV2Proxy01.sol index ab8be4d..0e5c678 100644 --- a/contracts/SmartRoute/DODOV2Proxy01.sol +++ b/contracts/SmartRoute/DODOV2Proxy01.sol @@ -22,7 +22,7 @@ import {SafeERC20} from "../lib/SafeERC20.sol"; import {DecimalMath} from "../lib/DecimalMath.sol"; import {ReentrancyGuard} from "../lib/ReentrancyGuard.sol"; import {InitializableOwnable} from "../lib/InitializableOwnable.sol"; -import {IDODOIncentive} from "./DODOIncentive.sol"; +import {IDODOIncentive} from "../DODOToken/DODOIncentive.sol"; import {IDODOAdapter} from "./intf/IDODOAdapter.sol"; /** diff --git a/contracts/SmartRoute/helper/DODOCalleeHelper.sol b/contracts/SmartRoute/helper/DODOCalleeHelper.sol index aa4827b..a77f606 100644 --- a/contracts/SmartRoute/helper/DODOCalleeHelper.sol +++ b/contracts/SmartRoute/helper/DODOCalleeHelper.sol @@ -16,7 +16,7 @@ import {ReentrancyGuard} from "../../lib/ReentrancyGuard.sol"; contract DODOCalleeHelper is ReentrancyGuard { using SafeERC20 for IERC20; - address public immutable _WETH_; + address payable public immutable _WETH_; fallback() external payable { require(msg.sender == _WETH_, "WE_SAVED_YOUR_ETH"); @@ -26,7 +26,7 @@ contract DODOCalleeHelper is ReentrancyGuard { require(msg.sender == _WETH_, "WE_SAVED_YOUR_ETH"); } - constructor(address weth) public { + constructor(address payable weth) public { _WETH_ = weth; } diff --git a/deploy-detail-v2.0.txt b/deploy-detail-v2.0.txt index a25025b..497e249 100644 --- a/deploy-detail-v2.0.txt +++ b/deploy-detail-v2.0.txt @@ -376,3 +376,28 @@ Init DODOProxyV2 Tx: 0x9628655c7debebb90bb7ee85ffb9242f90527b1cc4e01d5314d91b9ea DODOApprove Init tx: 0x637222ffb3b5a2554430c4c260edb4264cf77643868324f7ff4a1fa383036ab6 DODOIncentive ChangeProxy tx: 0xc998dfbe92fecd5c884310b172aa512517f14c3b7f7ea9f5bafcb5a7044f3569 DODOIncentive OpenSwitch tx: 0xda77ec50379c7e18b7646bdf2efcdd461789484f3045ba3e548f86402a04c8b5 +==================================================== +network type: bsclive +Deploy time: 2021/1/22 上午10:56:25 +==================================================== +network type: kovan +Deploy time: 2021/1/22 下午12:09:47 +Deploy type: V2 - Callee +==================================================== +network type: kovan +Deploy time: 2021/1/22 下午12:10:43 +Deploy type: V2 - Callee +==================================================== +network type: kovan +Deploy time: 2021/1/22 下午12:12:05 +Deploy type: V2 - Callee +DODOCalleeHelperAddress: 0x8085e9a80edb737a08c158bd018683c7Ad3c082B +==================================================== +network type: bsclive +Deploy time: 2021/1/22 下午1:51:45 +==================================================== +network type: bsclive +Deploy time: 2021/1/22 下午1:54:22 +==================================================== +network type: bsclive +Deploy time: 2021/1/22 下午1:57:54 diff --git a/kovan-mock-v2.0.txt b/kovan-mock-v2.0.txt index b03824f..510bc2c 100644 --- a/kovan-mock-v2.0.txt +++ b/kovan-mock-v2.0.txt @@ -375,3 +375,29 @@ Manual add target Pool: V2 Approve:0xCcf0733cA7B6299D59b1Bddf87f3a8AAaD87461F Tx: 0xed6ada30f414d696eee682871e51dac89206dd077055635570d4c5d305c9e437 Approve:0x43688f367eb83697c3ca5d03c5055b6bd6f6ac4b Tx: 0x7b42c175e29053ead5cef8f922296411d2db63ea753640742672b25969abc598 Create DPP: 0xCcf0733cA7B6299D59b1Bddf87f3a8AAaD87461F-0x43688f367eb83697c3ca5d03c5055b6bd6f6ac4b Pool:0xE6943d8494378cF463c9bd7cA1Af3eda9ac12649 Tx: 0xab31c5356f2f608d6f0ef369379af507d23f7cb20bc6f59b82541e90b0eb7c95 +==================================================== +network type: bsclive +Deploy time: 2021/1/22 上午10:56:29 +Mock TOKEN Tx: V2 +ERC20TemplateAddress: 0xef49a6DBa1C8DF859E49c17E9A485B439c7689d3 +MintableERC20TemplateAddress: 0x6373ceB657C83C91088d328622573FB766064Ac4 +ERC20FactoryAddress: 0x5e84190a270333aCe5B9202a3F4ceBf11b81bB01 +ERC20 address: 0x1ceF9A5A4825b46A6Cff6275a382bBA03e60c98A; Symbol:DODO +==================================================== +network type: bsclive +Deploy time: 2021/1/22 下午1:51:48 +Mock TOKEN Tx: V2 +ERC20TemplateAddress: 0x9890d0719ebFeeCB5984dc4aA1221C8d70Ec0cFb +MintableERC20TemplateAddress: 0x6bdBe4Cf19615562aAf743BC8b5Cd2b987Df605F +ERC20FactoryAddress: 0x0C8A860C61c30Aa963f1dd6dDddCa87bB13741e5 +ERC20 address: 0x0874baAF4a5BA4B1b1FE9DBBc3EbfB4080c5Cf22; Symbol:DODO +==================================================== +network type: bsclive +Deploy time: 2021/1/22 下午1:54:25 +Mock TOKEN Tx: V2 +ERC20 address: 0x571c68a358F7376071c21910436895468214DF2a; Symbol:DODO +==================================================== +network type: bsclive +Deploy time: 2021/1/22 下午1:57:57 +Mock TOKEN Tx: V2 +ERC20 address: 0x497A44c951fCCF92ADfdeD0a5b0162256F147647; Symbol:DODO diff --git a/migrations/3_deploy_v2.js b/migrations/3_deploy_v2.js index ffcf4e7..0ea0e78 100644 --- a/migrations/3_deploy_v2.js +++ b/migrations/3_deploy_v2.js @@ -1,16 +1,12 @@ const fs = require("fs"); -const Web3 = require('web3'); const { deploySwitch } = require('../truffle-config.js') const file = fs.createWriteStream("../deploy-detail-v2.0.txt", { 'flags': 'a' }); let logger = new console.Console(file, file); const CloneFactory = artifacts.require("CloneFactory"); const FeeRateModelTemplate = artifacts.require("FeeRateModel"); -const ConstFeeRateModelTemplate = artifacts.require("ConstFeeRateModel"); const PermissionManagerTemplate = artifacts.require("PermissionManager"); -const ExternalValueTemplate = artifacts.require("ExternalValue"); -const ERC20Template = artifacts.require("InitializableERC20"); const DvmTemplate = artifacts.require("DVM"); const DppTemplate = artifacts.require("DPP"); const DppAdminTemplate = artifacts.require("DPPAdmin"); @@ -40,14 +36,9 @@ module.exports = async (deployer, network, accounts) => { let chiAddress = ""; let DODOCalleeHelperAddress = ""; let DODORouteV2HelperAddress = ""; + let DODOV1PmmHelperAddress = ""; //Template let CloneFactoryAddress = ""; - // let FeeRateModelTemplateAddress = ""; - // let ConstFeeRateModelTemplateAddress = ""; - // let PermissionManagerTemplateAddress = ""; - // let ExternalValueTemplateAddress = ""; - //Default Template - // let DefaultGasSourceAddress = ""; let DefaultMtFeeRateAddress = ""; let DefaultPermissionAddress = ""; @@ -74,16 +65,12 @@ module.exports = async (deployer, network, accounts) => { WETHAddress = "0x5eca15b12d959dfcf9c71c59f8b467eb8c6efd0b"; chiAddress = "0x0000000000004946c0e9f43f4dee607b0ef1fa1c"; DODOCalleeHelperAddress = "0x507EBbb195CF54E0aF147A2b269C08a38EA36989"; + DODOV1PmmHelperAddress = "0xC972069473a686b1c11Bd9347D719c87e6745d39"; DODORouteV2HelperAddress = ""; + //Template CloneFactoryAddress = "0xf7959fe661124C49F96CF30Da33729201aEE1b27"; - // FeeRateModelTemplateAddress = "0xEF3137780B387313c5889B999D03BdCf9aeEa892"; - // ConstFeeRateModelTemplateAddress = "0x2ec9579Cf7ae77B4e538F56274501f518ABFeA2e"; - // PermissionManagerTemplateAddress = "0x5D2Da09501d97a7bf0A8F192D2eb2F9Aa80d3241"; - // ExternalValueTemplateAddress = "0xe0f813951dE2BB012f7Feb981669F9a7b5250A57"; - //Default Template - // DefaultGasSourceAddress = "0xE0c0df0e0be7ec4f579503304a6C186cA4365407"; - DefaultMtFeeRateAddress = "0xEfdE4225AC747136289979e29f1236527b2E4DB1"; + DefaultMtFeeRateAddress = ""; DefaultPermissionAddress = "0xACc7E23368261e1E02103c4e5ae672E7D01f5797"; DvmTemplateAddress = ""; @@ -108,14 +95,9 @@ module.exports = async (deployer, network, accounts) => { chiAddress = "0x0000000000004946c0e9F43F4Dee607b0eF1fA1c"; DODOCalleeHelperAddress = ""; DODORouteV2HelperAddress = ""; + DODOV1PmmHelperAddress = ""; //Template CloneFactoryAddress = ""; - // FeeRateModelTemplateAddress = ""; - // ConstFeeRateModelTemplateAddress = ""; - // PermissionManagerTemplateAddress = ""; - // ExternalValueTemplateAddress = ""; - //Default Template - // DefaultGasSourceAddress = ""; DefaultMtFeeRateAddress = ""; DefaultPermissionAddress = ""; @@ -139,51 +121,35 @@ module.exports = async (deployer, network, accounts) => { DODOSellHelperAddress = "0x0F859706AeE7FcF61D5A8939E8CB9dBB6c1EDA33"; WETHAddress = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"; chiAddress = "0x0000000000000000000000000000000000000000"; - DODOCalleeHelperAddress = "0x0000000000000000000000000000000000000000"; - DODORouteV2HelperAddress = "0x0000000000000000000000000000000000000000"; + DODOCalleeHelperAddress = ""; + DODORouteV2HelperAddress = ""; + DODOV1PmmHelperAddress = ""; //Template CloneFactoryAddress = "0x03E2427859119E497EB856a166F616a2Ce5f8c88"; - // FeeRateModelTemplateAddress = ""; - // ConstFeeRateModelTemplateAddress = ""; - // PermissionManagerTemplateAddress = ""; - // ExternalValueTemplateAddress = ""; - //Default Template - // DefaultGasSourceAddress = ""; - DefaultMtFeeRateAddress = "0x1Cc229Ac0ef9ba932e4dEbB898C77901C9AFB694"; + DefaultMtFeeRateAddress = ""; DefaultPermissionAddress = "0x50C86A07457E99389d7b49761a4237B70f0824E9"; - DvmTemplateAddress = "0x0000000000000000000000000000000000000000"; - DppTemplateAddress = "0x0000000000000000000000000000000000000000"; - DppAdminTemplateAddress = "0x0000000000000000000000000000000000000000"; - CpTemplateAddress = "0x0000000000000000000000000000000000000000"; + DvmTemplateAddress = ""; + DppTemplateAddress = ""; + DppAdminTemplateAddress = ""; + CpTemplateAddress = ""; //Factory - DvmFactoryAddress = "0x0000000000000000000000000000000000000000"; - DppFactoryAddress = "0x0000000000000000000000000000000000000000"; - CpFactoryAddress = "0x0000000000000000000000000000000000000000"; + DvmFactoryAddress = ""; + DppFactoryAddress = ""; + CpFactoryAddress = ""; //Proxy DODOApproveAddress = ""; - DODOIncentiveAddress = "0x0000000000000000000000000000000000000000"; - DODOTokenAddress = "0x0000000000000000000000000000000000000000"; + DODOIncentiveAddress = ""; + DODOTokenAddress = "0x497A44c951fCCF92ADfdeD0a5b0162256F147647"; //Account - // multiSigAddress = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; - // defaultMaintainer = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; - //For Test - multiSigAddress = accounts[0]; - defaultMaintainer = accounts[0]; + multiSigAddress = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; + defaultMaintainer = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; } else return; - + logger.log("===================================================="); logger.log("network type: " + network); logger.log("Deploy time: " + new Date().toLocaleString()); - if (deploySwitch.ROUTER_HELPER) { - await deployer.deploy(DODOV1PmmHelper); - logger.log("DODOV1RouterHelper Address: ", DODOV1PmmHelper.address); - // await deployer.deploy(DODOV2RouteHelper, "0x01B7fCc1890Ab90Da33dE2F0dC54aDF3C7501F04", "0x67c4765D04C3848FFa7967231fc7B7E58f67A887"); - // DODOV2RouteHelperAddress = DODOV2RouteHelper.address; - // logger.log("DODOV2RouteHelper Address: ", DODOV2RouteHelperAddress); - } - if (deploySwitch.ADAPTER) { logger.log("Deploy type: V2 - Adapter"); @@ -195,6 +161,13 @@ module.exports = async (deployer, network, accounts) => { logger.log("UniAdapter Address: ", UniAdapter.address); } + if (deploySwitch.CALLEE) { + logger.log("Deploy type: V2 - Callee"); + await deployer.deploy(DODOCalleeHelper, WETHAddress); + DODOCalleeHelperAddress = DODOCalleeHelper.address; + logger.log("DODOCalleeHelperAddress: ", DODOCalleeHelperAddress); + } + if (deploySwitch.DEPLOY_V2) { logger.log("Deploy type: V2"); if (DODOTokenAddress == "") return; @@ -210,50 +183,23 @@ module.exports = async (deployer, network, accounts) => { logger.log("DODOCalleeHelperAddress: ", DODOCalleeHelperAddress); } + if (DODOV1PmmHelperAddress == "") { + await deployer.deploy(DODOV1PmmHelper); + DODOV1PmmHelperAddress = DODOV1PmmHelper.address; + logger.log("DODOV1RouterHelper Address: ", DODOV1PmmHelperAddress); + } + //Template if (CloneFactoryAddress == "") { await deployer.deploy(CloneFactory); CloneFactoryAddress = CloneFactory.address; logger.log("CloneFactoryAddress: ", CloneFactoryAddress); - } - // if (FeeRateModelTemplateAddress == "") { - // await deployer.deploy(FeeRateModelTemplate); - // FeeRateModelTemplateAddress = FeeRateModelTemplate.address; - // logger.log("FeeRateModelTemplateAddress: ", FeeRateModelTemplateAddress); - // } - // if (ConstFeeRateModelTemplateAddress == "") { - // await deployer.deploy(ConstFeeRateModelTemplate); - // ConstFeeRateModelTemplateAddress = ConstFeeRateModelTemplate.address; - // logger.log("ConstFeeRateModelTemplateAddress: ", ConstFeeRateModelTemplateAddress); - // } - // if (PermissionManagerTemplateAddress == "") { - // await deployer.deploy(PermissionManagerTemplate); - // PermissionManagerTemplateAddress = PermissionManagerTemplate.address; - // logger.log("PermissionManagerTemplateAddress: ", PermissionManagerTemplateAddress); - // } - // if (ExternalValueTemplateAddress == "") { - // await deployer.deploy(ExternalValueTemplate); - // ExternalValueTemplateAddress = ExternalValueTemplate.address; - // logger.log("ExternalValueTemplateAddress: ", ExternalValueTemplateAddress); - // } - // if (DefaultGasSourceAddress == "") { - // await deployer.deploy(ExternalValueTemplate); - // DefaultGasSourceAddress = ExternalValueTemplate.address; - // logger.log("DefaultGasSourceAddress: ", DefaultGasSourceAddress); - // const defaultGasSourceInstance = await ExternalValueTemplate.at(DefaultGasSourceAddress); - // var tx = await defaultGasSourceInstance.init(multiSigAddress, "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - // logger.log("Init DefaultGasSource Tx:", tx.tx); - // } - if (DefaultMtFeeRateAddress == "") { - await deployer.deploy(ConstFeeRateModelTemplate); - DefaultMtFeeRateAddress = ConstFeeRateModelTemplate.address; + await deployer.deploy(FeeRateModelTemplate); + DefaultMtFeeRateAddress = FeeRateModelTemplate.address; logger.log("DefaultMtFeeRateAddress: ", DefaultMtFeeRateAddress); - const defaultMtFeeRateInstance = await ConstFeeRateModelTemplate.at(DefaultMtFeeRateAddress); - var tx = await defaultMtFeeRateInstance.init(multiSigAddress, 0); - logger.log("Init DefaultMtFeeRate Tx:", tx.tx); } if (DefaultPermissionAddress == "") { diff --git a/migrations/4_deploy_v2_mock.js b/migrations/4_deploy_v2_mock.js index ec3e5f6..9245506 100644 --- a/migrations/4_deploy_v2_mock.js +++ b/migrations/4_deploy_v2_mock.js @@ -58,16 +58,22 @@ const POOL_PARAM = [ ]; module.exports = async (deployer, network, accounts) => { - if (network != "kovan") return; - let CloneFactoryAddress = "0xf7959fe661124C49F96CF30Da33729201aEE1b27"; - let ERC20TemplateAddress = "0x77d2e257241e6971688b08bdA9F658F065d7bb41"; - let MintableERC20TemplateAddress = "0xA45a64DAba80757432fA4d654Df12f65f020C13C"; - let ERC20FactoryAddress = "0xCb1A2f64EfB02803276BFB5a8D511C4D950282a0"; + // if (network != "kovan") return; + // let CloneFactoryAddress = "0xf7959fe661124C49F96CF30Da33729201aEE1b27"; + // let ERC20TemplateAddress = "0x77d2e257241e6971688b08bdA9F658F065d7bb41"; + // let MintableERC20TemplateAddress = "0xA45a64DAba80757432fA4d654Df12f65f020C13C"; + // let ERC20FactoryAddress = "0xCb1A2f64EfB02803276BFB5a8D511C4D950282a0"; + + // let DPPFactoryAddress = "0x2D7F071415480eE7721eBB48c3147e347b980fEe"; + // let DVMFactoryAddress = "0x1C0435b87B3772E994adA2D0194be91EaC85FDb0"; + // let DODOApproveAddress = "0x5319f1CF056496e7E13D5653C3C7f338DE127a11"; + // let DODOProxyV2Address = "0xe8836EB6EaE9Bc4Db880D4b9C0912E5db817e41D"; + + let CloneFactoryAddress = "0x03E2427859119E497EB856a166F616a2Ce5f8c88"; + let ERC20TemplateAddress = "0xef49a6DBa1C8DF859E49c17E9A485B439c7689d3"; + let MintableERC20TemplateAddress = "0x6373ceB657C83C91088d328622573FB766064Ac4"; + let ERC20FactoryAddress = "0x5e84190a270333aCe5B9202a3F4ceBf11b81bB01"; - let DPPFactoryAddress = "0x2D7F071415480eE7721eBB48c3147e347b980fEe"; - let DVMFactoryAddress = "0x1C0435b87B3772E994adA2D0194be91EaC85FDb0"; - let DODOApproveAddress = "0x5319f1CF056496e7E13D5653C3C7f338DE127a11"; - let DODOProxyV2Address = "0xe8836EB6EaE9Bc4Db880D4b9C0912E5db817e41D"; const provider = new Web3.providers.HttpProvider("https://kovan.infura.io/v3/22d4a3b2df0e47b78d458f43fe50a199"); @@ -255,9 +261,10 @@ module.exports = async (deployer, network, accounts) => { const ERC20FactoryInstance = await ERC20Factory.at(ERC20FactoryAddress); - const totalSupply = web3.utils.toWei("1000000000", 'ether'); + const totalSupply = web3.utils.toWei("0", 'ether'); for (let i = 0; i < 1; i++) { - var tx = await ERC20FactoryInstance.createStdERC20(totalSupply, 'DODO Bird', 'DODO', 18); + // var tx = await ERC20FactoryInstance.createStdERC20(totalSupply, 'DODO Bird', 'DODO', 18); + var tx = await ERC20FactoryInstance.createMintableERC20(totalSupply, 'DODO Bird', 'DODO', 18); // var tx = await ERC20FactoryInstance.createStdERC20(totalSupply, 'USDT Token', 'USDT', 6); logger.log("ERC20 address: ", tx.logs[0].args['erc20'] + "; Symbol:" + 'DODO'); // logger.log("ERC20 address: ", tx.logs[0].args['erc20'] + "; Symbol:" + 'USDT'); diff --git a/truffle-config.js b/truffle-config.js index e11ad49..68be6b1 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -41,12 +41,12 @@ module.exports = { DEPLOY_V1: false, DEPLOY_V2: false, ADAPTER: false, - MOCK_TOKEN: false, + MOCK_TOKEN: true, MOCK_V2_POOL: false, MOCK_V2_SWAP: false, MANUAL_ADD_POOL: false, - ROUTER_HELPER: false, - MOCK_TARGET_POOL: false + MOCK_TARGET_POOL: false, + CALLEE: false, }, networks: {