cpfactory fix and test

This commit is contained in:
owen05
2020-12-22 16:42:53 +08:00
parent 2b3ffc31e8
commit 4e5a95cf6f
2 changed files with 15 additions and 16 deletions

View File

@@ -8,14 +8,14 @@
pragma solidity 0.6.9; pragma solidity 0.6.9;
pragma experimental ABIEncoderV2; pragma experimental ABIEncoderV2;
import {Ownable} from "../lib/Ownable.sol"; import {InitializableOwnable} from "../lib/InitializableOwnable.sol";
import {ICloneFactory} from "../lib/CloneFactory.sol"; import {ICloneFactory} from "../lib/CloneFactory.sol";
import {ICP} from "../CrowdPooling/intf/ICP.sol"; import {ICP} from "../CrowdPooling/intf/ICP.sol";
import {SafeMath} from "../lib/SafeMath.sol"; import {SafeMath} from "../lib/SafeMath.sol";
import {IERC20} from "../intf/IERC20.sol"; import {IERC20} from "../intf/IERC20.sol";
import {DecimalMath} from "../lib/DecimalMath.sol"; import {DecimalMath} from "../lib/DecimalMath.sol";
contract CrowdPoolingFactory is Ownable { contract CrowdPoolingFactory is InitializableOwnable {
using SafeMath for uint256; using SafeMath for uint256;
// ============ Templates ============ // ============ Templates ============
@@ -29,8 +29,8 @@ contract CrowdPoolingFactory is Ownable {
address public immutable _DEFAULT_PERMISSION_MANAGER_; address public immutable _DEFAULT_PERMISSION_MANAGER_;
address public immutable _DEFAULT_GAS_PRICE_SOURCE_; address public immutable _DEFAULT_GAS_PRICE_SOURCE_;
uint256 public _X_; uint256 public _X_ = 50; //default
uint256 public _Y_; uint256 public _Y_ = 0; //default
// ============ Registry ============ // ============ Registry ============
// base -> quote -> CP address list // base -> quote -> CP address list
@@ -51,8 +51,7 @@ contract CrowdPoolingFactory is Ownable {
require(valueList[3] == DecimalMath.ONE,"CP_FACTORY : CLIFF_RATE_DECIMAL_MATH_ONE_ONLY"); require(valueList[3] == DecimalMath.ONE,"CP_FACTORY : CLIFF_RATE_DECIMAL_MATH_ONE_ONLY");
uint256 baseTokenBalance = IERC20(baseToken).balanceOf(cpAddress); uint256 baseTokenBalance = IERC20(baseToken).balanceOf(cpAddress);
uint256 decimals = IERC20(baseToken).decimals(); require(valueList[0].mul(100) <= baseTokenBalance.mul(valueList[2]).div(10**18).mul(_X_),"CP_FACTORY : QUOTE_CAPE_INVALID");
require(valueList[0].mul(100) <= baseTokenBalance.div(10**decimals).mul(valueList[2]).mul(_X_),"CP_FACTORY : QUOTE_CAPE_INVALID");
require(timeLine[3]>= _Y_,"CP_FACTORY : FREEZE_DURATION_INVALID"); require(timeLine[3]>= _Y_,"CP_FACTORY : FREEZE_DURATION_INVALID");
_; _;
} }

View File

@@ -68,14 +68,14 @@ describe("DODOProxyV2.0", () => {
var timeLine = [ var timeLine = [
Math.floor(new Date().getTime() / 1000) + 10, Math.floor(new Date().getTime() / 1000) + 10,
60 * 60 * 24, 60 * 60 * 24,
60 * 60 * 24, 0,
60 * 60 * 24 * 30, 60 * 60 * 24 * 30,
60 * 60 * 24 * 7 0
] ]
var valueList = [ var valueList = [
mweiStr("10000"), mweiStr("10000"),
decimalStr("0.5"), decimalStr("0"),
decimalStr("10"), mweiStr("10"),
decimalStr("1") decimalStr("1")
] ]
cp_DODO_USDT = await initCreateCP(ctx, ctx.DODO.options.address, ctx.USDT.options.address, decimalStr("100000"), timeLine, valueList); cp_DODO_USDT = await initCreateCP(ctx, ctx.DODO.options.address, ctx.USDT.options.address, decimalStr("100000"), timeLine, valueList);
@@ -100,18 +100,18 @@ describe("DODOProxyV2.0", () => {
it("createCP", async () => { it("createCP", async () => {
var baseToken = ctx.DODO.options.address; var baseToken = ctx.DODO.options.address;
var quoteToken = ctx.USDT.options.address; var quoteToken = ctx.USDT.options.address;
var baseAmount = decimalStr("100000"); var baseAmount = decimalStr("1");
var timeLine = [ var timeLine = [
Math.floor(new Date().getTime() / 1000) + 10, Math.floor(new Date().getTime() / 1000) + 10,
60 * 60 * 24, 60 * 60 * 24,
60 * 60 * 24, 0,
60 * 60 * 24 * 30, 60 * 60 * 24 * 30,
60 * 60 * 24 * 7 0
] ]
var valueList = [ var valueList = [
mweiStr("10000"), mweiStr("5"),
decimalStr("0.5"), decimalStr("0"),
decimalStr("10"), mweiStr("10"),
decimalStr("1") decimalStr("1")
] ]
await logGas(await ctx.DODOProxyV2.methods.createCrowdPooling( await logGas(await ctx.DODOProxyV2.methods.createCrowdPooling(