Commit ed200a02 by Francisco Giordano

convert IndividuallyCappedCrowdsale to initializers

parent c4487ba8
pragma solidity ^0.4.24; pragma solidity ^0.4.24;
import "../../Initializable.sol";
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "../Crowdsale.sol"; import "../Crowdsale.sol";
import "../../access/roles/CapperRole.sol"; import "../../access/roles/CapperRole.sol";
...@@ -9,12 +10,16 @@ import "../../access/roles/CapperRole.sol"; ...@@ -9,12 +10,16 @@ import "../../access/roles/CapperRole.sol";
* @title IndividuallyCappedCrowdsale * @title IndividuallyCappedCrowdsale
* @dev Crowdsale with per-beneficiary caps. * @dev Crowdsale with per-beneficiary caps.
*/ */
contract IndividuallyCappedCrowdsale is Crowdsale, CapperRole { contract IndividuallyCappedCrowdsale is Initializable, Crowdsale, CapperRole {
using SafeMath for uint256; using SafeMath for uint256;
mapping(address => uint256) private _contributions; mapping(address => uint256) private _contributions;
mapping(address => uint256) private _caps; mapping(address => uint256) private _caps;
function initialize() public initializer {
CapperRole.initialize();
}
/** /**
* @dev Sets a specific beneficiary's maximum contribution. * @dev Sets a specific beneficiary's maximum contribution.
* @param beneficiary Address to be capped * @param beneficiary Address to be capped
......
pragma solidity ^0.4.24; pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol"; import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol";
import "./CapperRoleMock.sol"; import "./CapperRoleMock.sol";
contract IndividuallyCappedCrowdsaleImpl contract IndividuallyCappedCrowdsaleImpl
is IndividuallyCappedCrowdsale, CapperRoleMock { is Initializable, Crowdsale, IndividuallyCappedCrowdsale, CapperRoleMock {
constructor( constructor(
uint256 rate, uint256 rate,
...@@ -16,5 +17,7 @@ contract IndividuallyCappedCrowdsaleImpl ...@@ -16,5 +17,7 @@ contract IndividuallyCappedCrowdsaleImpl
public public
Crowdsale(rate, wallet, token) Crowdsale(rate, wallet, token)
{ {
Crowdsale.initialize(rate, wallet, token);
IndividuallyCappedCrowdsale.initialize();
} }
} }
...@@ -9,7 +9,7 @@ require('chai') ...@@ -9,7 +9,7 @@ require('chai')
.should(); .should();
const IndividuallyCappedCrowdsaleImpl = artifacts.require('IndividuallyCappedCrowdsaleImpl'); const IndividuallyCappedCrowdsaleImpl = artifacts.require('IndividuallyCappedCrowdsaleImpl');
const SimpleToken = artifacts.require('SimpleToken'); const SimpleToken = artifacts.require('SimpleTokenMock');
const { shouldBehaveLikePublicRole } = require('../access/roles/PublicRole.behavior'); const { shouldBehaveLikePublicRole } = require('../access/roles/PublicRole.behavior');
contract('IndividuallyCappedCrowdsale', function ( contract('IndividuallyCappedCrowdsale', function (
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment