diff --git a/audit/vDODO-final-report.pdf b/audit/vDODO-final-report.pdf new file mode 100755 index 0000000..be8162f Binary files /dev/null and b/audit/vDODO-final-report.pdf differ diff --git a/contracts/DODOToken/DODOCirculationHelper.sol b/contracts/DODOToken/DODOCirculationHelper.sol index b4dda97..5085b4c 100644 --- a/contracts/DODOToken/DODOCirculationHelper.sol +++ b/contracts/DODOToken/DODOCirculationHelper.sol @@ -49,7 +49,7 @@ contract DODOCirculationHelper is InitializableOwnable { } function getCirculation() public view returns (uint256 circulation) { - circulation = 10**10 * 10**18; + circulation = 10**9 * 10**18; for (uint256 i = 0; i < _LOCKED_CONTRACT_ADDRESS_.length; i++) { circulation -= IERC20(_DODO_TOKEN_).balanceOf(_LOCKED_CONTRACT_ADDRESS_[i]); } diff --git a/deploy-detail-periphery.txt b/deploy-detail-periphery.txt index 8f14c84..2222058 100644 --- a/deploy-detail-periphery.txt +++ b/deploy-detail-periphery.txt @@ -87,3 +87,52 @@ Deploy time: 2021/2/13 下午10:24:52 Deploy type: DODORecharge DODORechargeAddress: 0xF7c5311B618E6dFBBc34210c92D2C9675D7EdDCA Init DODORechargeAddress Tx: 0xc22cdde8436f28ae2343ebcd628091104545a60c6550a2cedf47344c5b337b09 +==================================================== +network type: kovan +Deploy time: 2021/2/14 上午10:48:21 +Deploy type: vDODOToken +vDODOTokenAddress: 0xf7119Bf8bE41Dd9080Bd0A9AB04788B5EcA140d5 +Init vDODOTokenAddress Tx: 0xc12344a7e49744698ae1be542583105e63330131f6392e53b0e9e183068bd573 +DODOCirculationHelperAddress: 0x41D3841c63C6D7d8Db2A06Dca895084DaB8F176a +Init DODOCirculationHelperAddress Tx: 0x0e6e7126a1b28d11eb4a42e2786e7a8ce64b8fb47059766f592efb4fc4b13a5d +vDODOToken setDODOCirculationHelper tx: 0x63149745bd5043ae8f6540bd7c99d870258f8640bb6237200bcbc767aaf1ae73 +DODOApproveProxy Unlock tx: 0x9131d3d3ad49a464b228ba617b2673fcad28d7f5598cd28de35e384d3ec226bc +DODOApproveProxy add tx: 0xbfe3caf75502ac8d0ed7f02c42c14607734dd19bcc077b0859bcd26c56936b3e +vDODOToken first mint tx: 0x4c9ad5eab14d664c1bb5c570856694c0d3612846debbd4731b5085232c3bf0de +vDODOToken injected dodo tx: 0x39cea7a3064b40d19575d5f8908bdb99a360d6a7098b8e197d7226ee562d9b03 +vDODOToken changeReward tx: 0x6a0cb6f9cd115d9f14627ec8bbaad513e1ef03ca5dfc2bacf81ff9a87013490c +==================================================== +network type: kovan +Deploy time: 2021/2/15 下午4:54:48 +Deploy type: DODOMigrationBSC +DODOMigrationBSCAddress: 0xA1191eED438A9C10D478698848E460F0c7528351 +Init DODOMigrationBSCAddress Tx: 0x7ddbbb24711e7577adf93982ad84d6b356ceee7bc53842991898226ee18021df +DODOApproveProxy Unlock tx: 0x1a45a960f65acb7f63351e16a880ca0242e4d4994105755c74e6dd009e7c1740 +DODOApproveProxy add tx: 0x9315b57c5aca05b3e56fcb5a8b892c787639785fbb1b8e0a5892f063a41be740 +==================================================== +network type: kovan +Deploy time: 2021/2/15 下午5:10:17 +Deploy type: vDODOToken +DODOCirculationHelperAddress: 0x77e43757e0a43dAd8a909e1839930430e8B0Ffc9 +Init DODOCirculationHelperAddress Tx: 0xe78086b4c3bd34e44e9a6615d3c8af0db88ca77cc0533aac6022bc74c642664b +vDODOToken setDODOCirculationHelper tx: 0xfe99a4ef2d15ab37645e7c50d62d36c4d17b20f955ba7aed007cae1a6ed9456a +==================================================== +network type: live +Deploy time: 2021/2/15 下午5:15:38 +Deploy type: vDODOToken +DODOCirculationHelperAddress: 0x357c5E9cfA8B834EDcef7C7aAbD8F9Db09119d11 +Init DODOCirculationHelperAddress Tx: 0x011ff39955bbc878e0bb4c70fe349801fcd79de4fa8f8cb3b642a9db64c1f3bb +==================================================== +network type: kovan +Deploy time: 2021/2/16 下午10:23:21 +Deploy type: DODOMine +DODOMineAddress: 0xc4023f2A71c03cc64d985691b019bEE68f48c108 +Add DODO Tx: 0x0cbcaff85dcd3ce32ebea5b596bbb1b74affa6112a845403cc0c73a808cf2ebd +Set blockReward Tx: 0xd8d2bc6a4c0efb94294836b6ed35546d853ef1480c16b9ef1c18902d194cc679 +==================================================== +network type: bsclive +Deploy time: 2021/2/19 下午12:38:10 +Deploy type: DODOMine +DODOMineAddress: 0x01f9BfAC04E6184e90bD7eaFD51999CE430Cc750 +Add DODO Tx: 0x8d3491ce942c125d2c0541f5eb1d784e7ab6960a0218b9bd94dcbe23c7457f65 +Set blockReward Tx: 0x2ad01291228653755cd000acd27b5283e5cefe7f7741a4f5934474ab2b0e69db diff --git a/deploy-detail-v2.0.txt b/deploy-detail-v2.0.txt index a0dbb9f..fdea061 100644 --- a/deploy-detail-v2.0.txt +++ b/deploy-detail-v2.0.txt @@ -652,3 +652,28 @@ Deploy time: 2021/2/13 下午10:20:14 ==================================================== network type: bsclive Deploy time: 2021/2/13 下午10:24:45 +==================================================== +network type: kovan +Deploy time: 2021/2/14 上午10:48:12 +==================================================== +network type: kovan +Deploy time: 2021/2/15 下午4:54:39 +==================================================== +network type: kovan +Deploy time: 2021/2/15 下午5:10:10 +==================================================== +network type: live +Deploy time: 2021/2/15 下午5:15:29 +==================================================== +network type: bsclive +Deploy time: 2021/2/16 下午4:51:26 +Deploy type: V2 +DvmFactoryAddress: 0x790B4A80Fb1094589A3c0eFC8740aA9b0C1733fB +Init DvmFactory Tx: 0x9592fd57792036a06da1c028e2d42f267699eb2b9bd3ab652ee277b9b6de13c4 +DppFactoryAddress: 0xAfe0A75DFFb395eaaBd0a7E1BBbd0b11f8609eeF +Init DppFactory Tx: 0x7eb6892dbdec51c098df7d327cdabc2d3b0aa3d2b10cd97bc89bad15c06a3e1a +CpFactoryAddress: 0x778DF5B12170e8af8dF94356BfC864E57CE185DC +Init CpFactory Tx: 0x2b5cb91e706a48090fe066582b41a6bb2e3d789423e6b61c6244e1fb67288f50 +DODOV2RouteHelper Address: 0x1dc8D1f1600B7C1D39e6b60FBC7b021Bc4F9C993 +DODOV2Proxy02 Address: 0x8F8Dd7DB1bDA5eD3da8C9daf3bfa471c12d58486 +Init DODOProxyV2 Tx: 0x1985f2e208d58ab2353eae96231ee3a11e1213a5e31f654274a40bbb2b4e9c8a diff --git a/kovan-mock-v2.0.txt b/kovan-mock-v2.0.txt index 5b22552..9e9d305 100644 --- a/kovan-mock-v2.0.txt +++ b/kovan-mock-v2.0.txt @@ -514,18 +514,3 @@ Mock POOL Tx: V2 Approve:0xd7f02D1b4F9495B549787808503Ecfd231C3fbDA Tx: 0x29017dc8173e6e65768ef17baeffdb006e88d36088be0cc97a53c365ac929e60 Create DPP: 0xd8C30a4E866B188F16aD266dC3333BD47F34ebaE-0x5eca15b12d959dfcf9c71c59f8b467eb8c6efd0b Pool:0x210912095691C9b0e318c22e49d94170ACAaCd0a Tx: 0x5bf334d720433b4fbfb71a4f75f5755ccd39f0977e59b74e78df083b03d9d9f5 Create DPP: 0xd7f02D1b4F9495B549787808503Ecfd231C3fbDA-0x5eca15b12d959dfcf9c71c59f8b467eb8c6efd0b Pool:0x25F03Cc8d661D04513D17497dDE752BDF96A8459 Tx: 0xb15244e5e51f2e593adee05c337c00b265636869c59af6589ca49b82f56a86a7 -==================================================== -network type: kovan -Deploy time: 2021/2/9 下午10:19:34 -==================================================== -network type: kovan -Deploy time: 2021/2/9 下午10:43:19 -==================================================== -network type: kovan -Deploy time: 2021/2/9 下午10:48:41 -==================================================== -network type: kovan -Deploy time: 2021/2/9 下午10:51:19 -==================================================== -network type: kovan -Deploy time: 2021/2/13 下午12:25:48 diff --git a/migrations/2_deploy_v1.5.js b/migrations/2_deploy_v1.5.js index 14a024e..de98e36 100644 --- a/migrations/2_deploy_v1.5.js +++ b/migrations/2_deploy_v1.5.js @@ -35,7 +35,7 @@ module.exports = async (deployer, network, accounts) => { DODOApproveProxyAddress = "0xB76de21f04F677f07D9881174a1D8E624276314C"; chiAddress = "0x0000000000000000000000000000000000000000"; DODOSwapCalcHelperAddress = "0xb0199C2c8ADF1E6c1e41De60A62E993406Cb8C02"; - ownerAddress = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; + ownerAddress = "0xcaa42F09AF66A8BAE3A7445a7f63DAD97c11638b"; } else return; if (deploySwitch.DEPLOY_V1) { diff --git a/migrations/3_deploy_v2.js b/migrations/3_deploy_v2.js index d259bbc..8f97fc0 100644 --- a/migrations/3_deploy_v2.js +++ b/migrations/3_deploy_v2.js @@ -135,7 +135,7 @@ module.exports = async (deployer, network, accounts) => { WETHAddress = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"; chiAddress = "0x0000000000000000000000000000000000000000"; DODOCalleeHelperAddress = "0xaaffAd1017D6a13E026A00121BF258C616B25f7C"; - DODORouteV2HelperAddress = "0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619"; + DODORouteV2HelperAddress = "0x1dc8D1f1600B7C1D39e6b60FBC7b021Bc4F9C993"; DODOV1PmmHelperAddress = "0x2BBD66fC4898242BDBD2583BBe1d76E8b8f71445"; //Template CloneFactoryAddress = "0x03E2427859119E497EB856a166F616a2Ce5f8c88"; @@ -147,17 +147,17 @@ module.exports = async (deployer, network, accounts) => { DppAdminTemplateAddress = "0x44D5dF24d5Ef52A791D6436Fa45A8D426f6de34e"; CpTemplateAddress = "0x041ABa00c57Dd47abC37A2931dF569a2A2cc57Be"; //Factory - DvmFactoryAddress = "0xf50BDc9E90B7a1c138cb7935071b85c417C4cb8e"; - DppFactoryAddress = "0x9B64c81ba54eA51e1f6B7fefb3cfF8AA6F1e2A09"; - CpFactoryAddress = "0x9aE501385Bc7996A2A4a1FBb00c8d3820611BCB5"; + DvmFactoryAddress = "0x790B4A80Fb1094589A3c0eFC8740aA9b0C1733fB"; + DppFactoryAddress = "0xAfe0A75DFFb395eaaBd0a7E1BBbd0b11f8609eeF"; + CpFactoryAddress = "0x778DF5B12170e8af8dF94356BfC864E57CE185DC"; //Proxy DODOApproveAddress = "0xa128Ba44B2738A558A1fdC06d6303d52D3Cef8c1"; DODOApproveProxyAddress = "0xB76de21f04F677f07D9881174a1D8E624276314C"; - DODOIncentiveAddress = ""; + DODOIncentiveAddress = "0x4EE6398898F7FC3e648b3f6bA458310ac29cD352"; DODOTokenAddress = "0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2"; //Account - multiSigAddress = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; - defaultMaintainer = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; + multiSigAddress = "0xcaa42F09AF66A8BAE3A7445a7f63DAD97c11638b"; + defaultMaintainer = "0xcaa42F09AF66A8BAE3A7445a7f63DAD97c11638b"; } else return; logger.log("===================================================="); diff --git a/migrations/5_deploy_periphery.js b/migrations/5_deploy_periphery.js index 7e1a90f..e8ce9f8 100644 --- a/migrations/5_deploy_periphery.js +++ b/migrations/5_deploy_periphery.js @@ -9,6 +9,7 @@ const DODOMigrationBSC = artifacts.require("DODOMigrationBSC"); const vDODOToken = artifacts.require("vDODOToken"); const DODOCirculationHelper = artifacts.require("DODOCirculationHelper"); const DODOApproveProxy = artifacts.require("DODOApproveProxy"); +const DODOMine = artifacts.require("DODOMine"); module.exports = async (deployer, network, accounts) => { @@ -24,7 +25,7 @@ module.exports = async (deployer, network, accounts) => { DODOTokenAddress = "0x854b0f89BAa9101e49Bfb357A38071C9db5d0DFa"; DODOApproveProxyAddress = "0xE2bf3e72E126f0AD4Aec07AdfA6cc345EEF43bDe"; DODOCirculationHelperAddress = ""; - vDODOTokenAddress = ""; + vDODOTokenAddress = "0xf7119Bf8bE41Dd9080Bd0A9AB04788B5EcA140d5"; GovernanceAddress = "0x0000000000000000000000000000000000000000"; //Account multiSigAddress = accounts[0]; @@ -33,7 +34,7 @@ module.exports = async (deployer, network, accounts) => { DODOTokenAddress = "0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd"; DODOApproveProxyAddress = "0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619"; DODOCirculationHelperAddress = ""; - vDODOTokenAddress = ""; + vDODOTokenAddress = "0xc4436fBAE6eBa5d95bf7d53Ae515F8A707Bd402A"; GovernanceAddress = "0x0000000000000000000000000000000000000000"; //Account multiSigAddress = "0x95C4F5b83aA70810D4f142d58e5F7242Bd891CB0"; @@ -42,13 +43,34 @@ module.exports = async (deployer, network, accounts) => { DODOTokenAddress = "0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2"; DODOApproveProxyAddress = "0xB76de21f04F677f07D9881174a1D8E624276314C"; //Account - multiSigAddress = "0x4073f2b9bB95774531b9e23d206a308c614A943a"; + multiSigAddress = "0xcaa42F09AF66A8BAE3A7445a7f63DAD97c11638b"; } else return; logger.log("===================================================="); logger.log("network type: " + network); logger.log("Deploy time: " + new Date().toLocaleString()); + + + if (deploySwitch.MINE) { + logger.log("Deploy type: DODOMine"); + await deployer.deploy(DODOMine, DODOTokenAddress, 5008500); + DODOMineAddress = DODOMine.address; + logger.log("DODOMineAddress: ", DODOMineAddress); + const dodoMineInstance = await DODOMine.at(DODOMineAddress); + //Add dodo + var tx = await dodoMineInstance.addLpToken(DODOTokenAddress,"3000000000000000000000",true); + logger.log("Add DODO Tx:", tx.tx); + //set BLockReward + tx = await dodoMineInstance.setReward("1000000000000000", true); + logger.log("Set blockReward Tx:", tx.tx); + + //transfer DODO to Vault + + //transfer owner + } + + if (deploySwitch.DODORecharge) { logger.log("Deploy type: DODORecharge"); await deployer.deploy(DODORecharge, DODOTokenAddress, DODOApproveProxyAddress); @@ -77,6 +99,15 @@ module.exports = async (deployer, network, accounts) => { const dodoMigrationBscInstance = await DODOMigrationBSC.at(DODOMigrationBSCAddress); var tx = await dodoMigrationBscInstance.initOwner(multiSigAddress); logger.log("Init DODOMigrationBSCAddress Tx:", tx.tx); + + if (network == 'kovan') { + //ApproveProxy add + const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress); + tx = await DODOApproveProxyInstance.unlockAddProxy(DODOMigrationBSCAddress); + logger.log("DODOApproveProxy Unlock tx: ", tx.tx); + tx = await DODOApproveProxyInstance.addDODOProxy(); + logger.log("DODOApproveProxy add tx: ", tx.tx); + } } if (deploySwitch.vDODOToken) { @@ -113,23 +144,23 @@ module.exports = async (deployer, network, accounts) => { logger.log("vDODOToken setDODOCirculationHelper tx: ", tx.tx); //ApproveProxy add - const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress); - tx = await DODOApproveProxyInstance.unlockAddProxy(vDODOTokenAddress); - logger.log("DODOApproveProxy Unlock tx: ", tx.tx); - tx = await DODOApproveProxyInstance.addDODOProxy(); - logger.log("DODOApproveProxy add tx: ", tx.tx); + // const DODOApproveProxyInstance = await DODOApproveProxy.at(DODOApproveProxyAddress); + // tx = await DODOApproveProxyInstance.unlockAddProxy(vDODOTokenAddress); + // logger.log("DODOApproveProxy Unlock tx: ", tx.tx); + // tx = await DODOApproveProxyInstance.addDODOProxy(); + // logger.log("DODOApproveProxy add tx: ", tx.tx); - //Mint DODO first - tx = await vDODOTokenInstance.mint("100000000000000000000000",dodoTeam); - logger.log("vDODOToken first mint tx: ", tx.tx); + // //Mint DODO first + // tx = await vDODOTokenInstance.mint("100000000000000000000000",dodoTeam); + // logger.log("vDODOToken first mint tx: ", tx.tx); - //preDepositedBlockReward - tx = await vDODOTokenInstance.preDepositedBlockReward("1000000000000000000000"); - logger.log("vDODOToken injected dodo tx: ", tx.tx); + // //preDepositedBlockReward + // tx = await vDODOTokenInstance.preDepositedBlockReward("100000000000000000000000"); + // logger.log("vDODOToken injected dodo tx: ", tx.tx); - //changePerReward - tx = await vDODOTokenInstance.changePerReward("100000000000000000"); - logger.log("vDODOToken changeReward tx: ", tx.tx); + // //changePerReward + // tx = await vDODOTokenInstance.changePerReward("100000000000000000"); + // logger.log("vDODOToken changeReward tx: ", tx.tx); } } diff --git a/truffle-config.js b/truffle-config.js index 8e996bf..b37b015 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -50,7 +50,8 @@ module.exports = { DODOBscToken: false, vDODOToken: false, CALLEE: false, - DODORecharge: true + DODORecharge: false, + MINE: false }, networks: { @@ -83,7 +84,7 @@ module.exports = { return new HDWalletProvider(privKey, "https://mainnet.infura.io/v3/" + infuraId); }, gas: 6000000, - gasPrice: 120000000000, + gasPrice: 115000000000, network_id: 1, skipDryRun: true },