diff --git a/contracts/mocks/ERC20CappedMock.sol b/contracts/mocks/ERC20CappedMock.sol new file mode 100644 index 000000000..6dc267f72 --- /dev/null +++ b/contracts/mocks/ERC20CappedMock.sol @@ -0,0 +1,14 @@ +pragma solidity ^0.4.24; + +import "../Initializable.sol"; +import "../token/ERC20/ERC20Capped.sol"; +import "./MinterRoleMock.sol"; + + +contract ERC20CappedMock is Initializable, ERC20Capped, MinterRoleMock { + + constructor(uint256 cap) public { + ERC20Capped.initialize(cap); + } + +} diff --git a/contracts/token/ERC20/ERC20Capped.sol b/contracts/token/ERC20/ERC20Capped.sol index 1222034cd..151b9774e 100644 --- a/contracts/token/ERC20/ERC20Capped.sol +++ b/contracts/token/ERC20/ERC20Capped.sol @@ -1,5 +1,6 @@ pragma solidity ^0.4.24; +import "../../Initializable.sol"; import "./ERC20Mintable.sol"; @@ -7,13 +8,16 @@ import "./ERC20Mintable.sol"; * @title Capped token * @dev Mintable token with a token cap. */ -contract ERC20Capped is ERC20Mintable { +contract ERC20Capped is Initializable, ERC20Mintable { uint256 private _cap; - constructor(uint256 cap) + function initialize(uint256 cap) public + initializer { + ERC20Mintable.initialize(); + require(cap > 0); _cap = cap; } diff --git a/test/token/ERC20/ERC20Capped.test.js b/test/token/ERC20/ERC20Capped.test.js index 45558a162..475f4a65e 100644 --- a/test/token/ERC20/ERC20Capped.test.js +++ b/test/token/ERC20/ERC20Capped.test.js @@ -3,7 +3,7 @@ const { ether } = require('../../helpers/ether'); const { shouldBehaveLikeERC20Mintable } = require('./behaviors/ERC20Mintable.behavior'); const { shouldBehaveLikeERC20Capped } = require('./behaviors/ERC20Capped.behavior'); -const ERC20Capped = artifacts.require('ERC20Capped'); +const ERC20Capped = artifacts.require('ERC20CappedMock'); contract('ERC20Capped', function ([_, minter, ...otherAccounts]) { const cap = ether(1000);