Skip to content

Commit 24f5a6c

Browse files
authored
Add cl4rfactory (#814)
1 parent a5d4dc7 commit 24f5a6c

File tree

4 files changed

+107
-2
lines changed

4 files changed

+107
-2
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
pragma solidity 0.5.17;
2+
3+
import "../schemes/ContinuousLocking4Reputation.sol";
4+
5+
/**
6+
* @title ContinuousLocking4ReputationFactory
7+
*/
8+
contract ContinuousLocking4ReputationFactory {
9+
10+
event NewCL4R(address continuousLocking4Reputation);
11+
12+
function createCL4R(
13+
Avatar _avatar,
14+
uint256 _reputationReward,
15+
uint256 _startTime,
16+
uint256 _batchTime,
17+
uint256 _redeemEnableTime,
18+
uint256 _maxLockingBatches,
19+
uint256 _repRewardConstA,
20+
uint256 _repRewardConstB,
21+
uint256 _batchesIndexCap,
22+
IERC20 _token,
23+
bytes32 _agreementHash) public returns(address) {
24+
ContinuousLocking4Reputation continuousLocking4Reputation = new ContinuousLocking4Reputation();
25+
continuousLocking4Reputation.initialize(
26+
_avatar,
27+
_reputationReward,
28+
_startTime,
29+
_batchTime,
30+
_redeemEnableTime,
31+
_maxLockingBatches,
32+
_repRewardConstA,
33+
_repRewardConstB,
34+
_batchesIndexCap,
35+
_token,
36+
_agreementHash
37+
);
38+
emit NewCL4R(address(continuousLocking4Reputation));
39+
return address(continuousLocking4Reputation);
40+
}
41+
}

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@daostack/arc",
3-
"version": "0.0.1-rc.54",
3+
"version": "0.0.1-rc.55",
44
"description": "A platform for building DAOs",
55
"files": [
66
"contracts/",
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
const helpers = require('./helpers');
2+
3+
const ERC20Mock = artifacts.require('./test/ERC20Mock.sol');
4+
const ContinuousLocking4Reputation = artifacts.require('./ContinuousLocking4Reputation.sol');
5+
const ContinuousLocking4ReputationFactory = artifacts.require('./ContinuousLocking4ReputationFactory.sol');
6+
7+
const setup = async function () {
8+
var testSetup = new helpers.TestSetup();
9+
testSetup.continuousLocking4ReputationFactory = await ContinuousLocking4ReputationFactory.new();
10+
return testSetup;
11+
};
12+
13+
contract('competitionFactory', function(accounts) {
14+
it('initialize', async () => {
15+
let testSetup = await setup();
16+
testSetup.lockingToken = await ERC20Mock.new(accounts[0], web3.utils.toWei('100', "ether"));
17+
testSetup.startTime = (await web3.eth.getBlock("latest")).timestamp;
18+
testSetup.redeemEnableTime = (await web3.eth.getBlock("latest")).timestamp + (30*60*60);
19+
testSetup.continuousLocking4Reputation = await ContinuousLocking4Reputation.new();
20+
testSetup.periodsUnit = (30*60*60);
21+
testSetup.agreementHash = helpers.SOME_HASH;
22+
testSetup.maxLockingPeriod = 12;
23+
24+
testSetup.repRewardConstA = 85000;
25+
testSetup.repRewardConstB = 900;
26+
testSetup.reputationReward = 850000;
27+
testSetup.periodsCap = 100;
28+
let cl4rAddress = await testSetup.continuousLocking4ReputationFactory.createCL4R.call(
29+
helpers.SOME_ADDRESS,
30+
testSetup.reputationReward,
31+
testSetup.startTime,
32+
testSetup.periodsUnit,
33+
testSetup.redeemEnableTime,
34+
testSetup.maxLockingPeriod,
35+
testSetup.repRewardConstA,
36+
testSetup.repRewardConstB,
37+
testSetup.periodsCap,
38+
testSetup.lockingToken.address,
39+
testSetup.agreementHash
40+
);
41+
await testSetup.continuousLocking4ReputationFactory.createCL4R(
42+
helpers.SOME_ADDRESS,
43+
testSetup.reputationReward,
44+
testSetup.startTime,
45+
testSetup.periodsUnit,
46+
testSetup.redeemEnableTime,
47+
testSetup.maxLockingPeriod,
48+
testSetup.repRewardConstA,
49+
testSetup.repRewardConstB,
50+
testSetup.periodsCap,
51+
testSetup.lockingToken.address,
52+
testSetup.agreementHash
53+
);
54+
let continuousLocking4Reputation = await ContinuousLocking4Reputation.at(cl4rAddress);
55+
assert.equal(await continuousLocking4Reputation.reputationRewardLeft(),testSetup.reputationReward);
56+
assert.equal(await continuousLocking4Reputation.startTime(),testSetup.startTime);
57+
assert.equal(await continuousLocking4Reputation.redeemEnableTime(),testSetup.redeemEnableTime);
58+
assert.equal(await continuousLocking4Reputation.token(),testSetup.lockingToken.address);
59+
assert.equal(await continuousLocking4Reputation.batchTime(),testSetup.periodsUnit);
60+
assert.equal(await continuousLocking4Reputation.getAgreementHash(),testSetup.agreementHash);
61+
assert.equal(await continuousLocking4Reputation.batchesIndexCap(),testSetup.periodsCap);
62+
});
63+
64+
});

0 commit comments

Comments
 (0)