add audit report

This commit is contained in:
owen05
2021-03-16 13:59:43 +08:00
parent abe9919a01
commit bb2ce2e496
7 changed files with 146 additions and 30 deletions

Binary file not shown.

View File

@@ -1,47 +1,47 @@
module.exports = {
MBTEST_CONFIG: {
//TOKEN
WETH: "0x0e1630bd2bc047fF6338F78Dc45410e1c0Fc32a0",
WETH: "0xF8cef78E923919054037a1D03662bBD884fF4edf",
CHI: "0x0000000000000000000000000000000000000000",
DODO: "0x1E7727eDad5a2ef47C5AB95a20FEd515735591B2",
DODO: "0x42e2EE7Ba8975c473157634Ac2AF4098190fc741",
//Helper
DODOSellHelper: "0xb61c30c1612504d334b39E5172D8215cb5Ad576C",
DODOCalleeHelper: "0x6211feD3b4f22e23Ac77EeB4F31562D17f5A352E",
DODOV1PmmHelper: "0x4D73053013F876e319f07B27B59158Cca01A64C5",
DODOV2RouteHelper: "0xC679Fe3200D0d3c53Ba5cd3dC8e7111eC2DF939b",
DODOSellHelper: "0xe573BCA813c741229ffB2488F7856C6cAa841041",
DODOCalleeHelper: "0xBb0CC0fb3e0c06725c67167501f850B4900D6DB5",
DODOV1PmmHelper: "0xfE5D3c52F7ee9aa32a69b96Bfbb088Ba0bCd8EfC",
DODOV2RouteHelper: "0x750C200d7c7C426da169742f705CA5268e1736b4",
//Template
CloneFactory: "0x24B7AB1C9f099f00BCE536d8E3605B53C226623E",
FeeRateModel: "0xfFC36c9F7de34d793e431F784724bC6CB8449CaE",
PermissionManager: "0xB79b78C29756D820895774BfF84A447fEfAd373e",
DVM: "0x85913c7CF9F8624A7f2b2CD34149A214768233d7",
DPP: "0xc04dF41F6382A5dB5752533E0DC93123DaACeD8E",
DPPAdmin: "0x514c9Ae51a8Bf85F4f656F7226bD208F4995247c",
CP: "0x0AE9df8B24E2F3903441F84d632f655B6B93b9dF",
ERC20: "",
MintableERC20: "",
CloneFactory: "0x92496871560a01551E1B4fD04540D7A519D5C19e",
FeeRateModel: "0x63A1519eE99d1121780FFfa1726Ed2eCc6d1611B",
PermissionManager: "0x50275d3F95E0F2FCb2cAb2Ec7A231aE188d7319d",
DVM: "0x596fB37d99bd679d1af76fBCB658f7a1a31A1205",
DPP: "0x4d6942683D051FF95804B08EF11F98A7F41C1b44",
DPPAdmin: "0x79885EBC79783C9174faC36Ed99cD9467CB8cDbE",
CP: "0xe9CC152481642D7a3Ea207E3930067B19663770F",
ERC20: "0x0484C33Bad127FA77CC64d6475aDD6483c70BbB9",
MintableERC20: "0x4FBb399fB0E360e11DFF274090650C7e588F1af1",
//Factory
DVMFactory: "0x3d1AF1F66Ee4800a1db87321C9B23ed971eEc2e2",
DPPFactory: "0xBAA57Ff6A08E183917746C999C3FF1dE95eE01fb",
CrowdPoolingFactory: "0x9557b4E0Fe6bd94544E4D43E52C5c8f8F771535b",
ERC20Factory: "",
DVMFactory: "0xFa39bFe0f589aba7315090bDaEbDF617535B130f",
DPPFactory: "0x708bE4dA5e8D8E40dC51A1Dc5987Cc2a7fB22334",
CrowdPoolingFactory: "0xE18691ddF53F52705CBD518dF4c2632adDD8a9e5",
ERC20Factory: "0xC7430D8919b54F85a723810FBceF2114482EC5D1",
//Approve
DODOApprove: "0x667A1d5947B2f81D56BFd872285F93BFBc73c632",
DODOApproveProxy: "0x7525A017EAa0feAaF8bA047d37062E03b2492312",
DODOApprove: "0xC683516e791c5E2b8e913dE0670d499927f54CEc",
DODOApproveProxy: "0x1bc238EAd60bdF5e94BB8f7205b6e75ACabACbC0",
//Periphery
DODOIncentive: "0x9f871a98413C5fa0D72d0f2AB88C1d9cD58C3383",
DODOIncentive: "0xc5A6D29ed21e63A994A766558cDb055832dbF886",
//Adpater
DODOV1Adapter: "",
DODOV2Adapter: "",
UniAdapter: "",
DODOV1Adapter: "0x1a3fa978909d86dF1244216b02733136b438D83E",
DODOV2Adapter: "0x0e1630bd2bc047fF6338F78Dc45410e1c0Fc32a0",
UniAdapter: "0x1E7727eDad5a2ef47C5AB95a20FEd515735591B2",
//Proxy
DODOV2Proxy: "0x50d634E43F5aD7748cf2860760b887655524B593",
DODOV2Proxy: "0x58eD6D2faa3C8Ff63e327463823d741E84721B6D",
//vDODO
DODOCirculationHelper: "",

49
contracts/external/Multicall.sol vendored Normal file
View File

@@ -0,0 +1,49 @@
/**
*Submitted for verification at Etherscan.io on 2019-06-10
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
/// @title Multicall - Aggregate results from multiple read-only function calls
/// @author Michael Elliot <mike@makerdao.com>
/// @author Joshua Levine <joshua@makerdao.com>
/// @author Nick Johnson <arachnid@notdot.net>
contract Multicall {
struct Call {
address target;
bytes callData;
}
function aggregate(Call[] memory calls) public returns (uint256 blockNumber, bytes[] memory returnData) {
blockNumber = block.number;
returnData = new bytes[](calls.length);
for(uint256 i = 0; i < calls.length; i++) {
(bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
require(success);
returnData[i] = ret;
}
}
// Helper functions
function getEthBalance(address addr) public view returns (uint256 balance) {
balance = addr.balance;
}
function getBlockHash(uint256 blockNumber) public view returns (bytes32 blockHash) {
blockHash = blockhash(blockNumber);
}
function getLastBlockHash() public view returns (bytes32 blockHash) {
blockHash = blockhash(block.number - 1);
}
function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {
timestamp = block.timestamp;
}
function getCurrentBlockDifficulty() public view returns (uint256 difficulty) {
difficulty = block.difficulty;
}
function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) {
gaslimit = block.gaslimit;
}
function getCurrentBlockCoinbase() public view returns (address coinbase) {
coinbase = block.coinbase;
}
}

View File

@@ -276,3 +276,19 @@ Deploy time: 2021/3/15 下午8:00:28
Deploy type: UpCrowdPoolingFactory
UpCrowdPoolingFactory address: 0x25AE560522165eacCFbF2287493AF12B8ad718e7
Init UpCpFactory Tx: 0x9692b9458c3f3f4c1682f58cc46c14c662e5b7b7f72c7b8afabc494d2eb75d16
====================================================
network type: mbtestnet
Deploy time: 2021/3/15 下午9:01:02
Deploy type: DODOToken
DODOTokenAddress: 0x5c4242beB94dE30b922f57241f1D02f36e906915
====================================================
network type: mbtestnet
Deploy time: 2021/3/15 下午9:02:37
Deploy type: DODOToken
DODOTokenAddress: 0x42e2EE7Ba8975c473157634Ac2AF4098190fc741
====================================================
network type: mbtestnet
Deploy time: 2021/3/15 下午9:02:47
Deploy type: WETH9
WETH9Address: 0xF8cef78E923919054037a1D03662bBD884fF4edf
MultiCallAddress: 0xb61c30c1612504d334b39E5172D8215cb5Ad576C

View File

@@ -612,3 +612,46 @@ Deploy type: V2
multiSigAddress: 0x95C4F5b83aA70810D4f142d58e5F7242Bd891CB0
DODOV2Proxy02 Address: 0x9F8B87ee9D1b596e7479502de5B4f295E437C8d9
Init DODOProxyV2 Tx: 0x4b6086c0b79edac7a55fedd00fd6104fae133569afa05484d0608d0b96844979
====================================================
network type: mbtestnet
Deploy time: 2021/3/15 下午9:03:45
Deploy type: V2
multiSigAddress: 0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
DODOSellHelper Address: 0xe573BCA813c741229ffB2488F7856C6cAa841041
DODOCalleeHelperAddress: 0xBb0CC0fb3e0c06725c67167501f850B4900D6DB5
DODOV1RouterHelper Address: 0xfE5D3c52F7ee9aa32a69b96Bfbb088Ba0bCd8EfC
CloneFactoryAddress: 0x92496871560a01551E1B4fD04540D7A519D5C19e
DefaultMtFeeRateAddress: 0x63A1519eE99d1121780FFfa1726Ed2eCc6d1611B
Init DefaultMtFeeRateAddress Tx: 0x1c1d4a1190b30fe3070ef936bcbc6029d7db7e85d47b3f01bd913da38adbdf8d
DefaultPermissionAddress: 0x50275d3F95E0F2FCb2cAb2Ec7A231aE188d7319d
Init DefaultPermissionAddress Tx: 0x3472a0da5656f0f18260517a4e8d022aec31ac072502419b438ad61f3e4704f4
DvmTemplateAddress: 0x596fB37d99bd679d1af76fBCB658f7a1a31A1205
DppTemplateAddress: 0x4d6942683D051FF95804B08EF11F98A7F41C1b44
DppAdminTemplateAddress: 0x79885EBC79783C9174faC36Ed99cD9467CB8cDbE
CpTemplateAddress: 0xe9CC152481642D7a3Ea207E3930067B19663770F
ERC20TemplateAddress: 0x0484C33Bad127FA77CC64d6475aDD6483c70BbB9
MintableERC20TemplateAddress: 0x4FBb399fB0E360e11DFF274090650C7e588F1af1
ERC20FactoryAddress: 0xC7430D8919b54F85a723810FBceF2114482EC5D1
DODOApprove Address: 0xC683516e791c5E2b8e913dE0670d499927f54CEc
DODOApproveProxy Address: 0x1bc238EAd60bdF5e94BB8f7205b6e75ACabACbC0
DODOIncentiveAddress: 0xc5A6D29ed21e63A994A766558cDb055832dbF886
DODOIncentive Init tx: 0x93267e8c636859eef852e88b48611e2fdd0739d7f4b51468b7a2b852ff473401
DvmFactoryAddress: 0xFa39bFe0f589aba7315090bDaEbDF617535B130f
Init DvmFactory Tx: 0x453b758492556a2a7ab7d3db10c5e3787b64a5e544d2ba526d322ab0ac664d24
DppFactoryAddress: 0x708bE4dA5e8D8E40dC51A1Dc5987Cc2a7fB22334
Init DppFactory Tx: 0xd343a9163a57abfa704287a40141b95fdf7442ab789901ff496fc09503a3927e
CpFactoryAddress: 0xE18691ddF53F52705CBD518dF4c2632adDD8a9e5
Init CpFactory Tx: 0xe7b5ba791a9ac41c24c22f27bb1791ca68e72a03d7ffe43403b63f6035042d81
DODOV2RouteHelper Address: 0x750C200d7c7C426da169742f705CA5268e1736b4
DODOV2Proxy02 Address: 0x58eD6D2faa3C8Ff63e327463823d741E84721B6D
Init DODOProxyV2 Tx: 0x02f3d607219bb702e20d394a66a1b62f747423c355ad20fb2f27fd3279647d8e
DODOApproveProxy Init tx: 0x9b688063eff15620a1e008e65462d6bb3304d64c5bb35c16cea8583665541c0e
DODOApprove Init tx: 0x9a47d0fb5cddad371fd8b46d32073872d533716fff8375c15faf5c04dc8bb58c
DODOIncentive ChangeProxy tx: 0xe7054541b46dc3a6d7f81c5d699221bf866c60a2ce92bd6f5ee3f5651bf222cf
====================================================
network type: mbtestnet
Deploy time: 2021/3/15 下午9:21:03
Deploy type: V2 - Adapter
DODOV1Adapter Address: 0x1a3fa978909d86dF1244216b02733136b438D83E
DODOV2Adapter Address: 0x0e1630bd2bc047fF6338F78Dc45410e1c0Fc32a0
UniAdapter Address: 0x1E7727eDad5a2ef47C5AB95a20FEd515735591B2

View File

@@ -15,6 +15,7 @@ const WETH9 = artifacts.require("WETH9");
const DODOToken = artifacts.require("DODOToken");
const UpCrowdPoolingFactory = artifacts.require("UpCrowdPoolingFactory");
const CpFactory = artifacts.require("CrowdPoolingFactory");
const MultiCall = artifacts.require("Multicall");
module.exports = async (deployer, network, accounts) => {
let CONFIG = GetConfig(network, accounts)
@@ -58,6 +59,12 @@ module.exports = async (deployer, network, accounts) => {
logger.log("Init UpCpFactory Tx:", tx.tx);
}
if (deploySwitch.MultiCall) {
await deployer.deploy(MultiCall);
MultiCallAddress = MultiCall.address;
logger.log("MultiCallAddress: ", MultiCallAddress);
}
if (deploySwitch.CPFactory) {
logger.log("====================================================");
logger.log("network type: " + network);
@@ -78,7 +85,7 @@ module.exports = async (deployer, network, accounts) => {
logger.log("Init CpFactory Tx:", tx.tx);
}
if(deploySwitch.DVM) {
if (deploySwitch.DVM) {
await deployer.deploy(DvmTemplate);
DvmTemplateAddress = DvmTemplate.address;
logger.log("DvmTemplateAddress: ", DvmTemplateAddress);

View File

@@ -52,7 +52,8 @@ module.exports = {
UpCP: false,
DVM: false,
CP: false,
CPFactory: false
CPFactory: false,
MultiCall: true
},
networks: {
@@ -112,9 +113,9 @@ module.exports = {
mbtestnet: {
provider: () => {
return new HDWalletProvider(privKey, 'https://rpc.testnet.moonbeam.network');
return new HDWalletProvider(privKey, 'https://moonbeam-rpc.dodoex.io');
},
network_id: 1287,
network_id: 1281,
},
mbdev: {