From 7cee6df3f74a5bc27371258cb11ad1f659dd5082 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Tue, 25 Sep 2018 18:41:19 -0300 Subject: [PATCH] convert ERC20Capped to initializers --- contracts/mocks/ERC20CappedMock.sol | 14 ++++++++++++++ contracts/token/ERC20/ERC20Capped.sol | 8 ++++++-- test/token/ERC20/ERC20Capped.test.js | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 contracts/mocks/ERC20CappedMock.sol 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);