diff --git a/contracts/token/ERC20/ERC20Mintable.sol b/contracts/token/ERC20/ERC20Mintable.sol index d6bd9b5ea..386abf64d 100644 --- a/contracts/token/ERC20/ERC20Mintable.sol +++ b/contracts/token/ERC20/ERC20Mintable.sol @@ -8,22 +8,6 @@ import "../../access/roles/MinterRole.sol"; * @dev ERC20 minting logic */ contract ERC20Mintable is ERC20, MinterRole { - event MintingFinished(); - - bool private _mintingFinished = false; - - modifier onlyBeforeMintingFinished() { - require(!_mintingFinished); - _; - } - - /** - * @return true if the minting is finished. - */ - function mintingFinished() public view returns(bool) { - return _mintingFinished; - } - /** * @dev Function to mint tokens * @param to The address that will receive the minted tokens. @@ -36,25 +20,9 @@ contract ERC20Mintable is ERC20, MinterRole { ) public onlyMinter - onlyBeforeMintingFinished returns (bool) { _mint(to, amount); return true; } - - /** - * @dev Function to stop minting new tokens. - * @return True if the operation was successful. - */ - function finishMinting() - public - onlyMinter - onlyBeforeMintingFinished - returns (bool) - { - _mintingFinished = true; - emit MintingFinished(); - return true; - } } diff --git a/contracts/token/ERC721/ERC721Mintable.sol b/contracts/token/ERC721/ERC721Mintable.sol index f7cd0e9f9..9dc0ad751 100644 --- a/contracts/token/ERC721/ERC721Mintable.sol +++ b/contracts/token/ERC721/ERC721Mintable.sol @@ -8,22 +8,6 @@ import "../../access/roles/MinterRole.sol"; * @dev ERC721 minting logic */ contract ERC721Mintable is ERC721Full, MinterRole { - event MintingFinished(); - - bool private _mintingFinished = false; - - modifier onlyBeforeMintingFinished() { - require(!_mintingFinished); - _; - } - - /** - * @return true if the minting is finished. - */ - function mintingFinished() public view returns(bool) { - return _mintingFinished; - } - /** * @dev Function to mint tokens * @param to The address that will receive the minted tokens. @@ -36,7 +20,6 @@ contract ERC721Mintable is ERC721Full, MinterRole { ) public onlyMinter - onlyBeforeMintingFinished returns (bool) { _mint(to, tokenId); @@ -50,26 +33,10 @@ contract ERC721Mintable is ERC721Full, MinterRole { ) public onlyMinter - onlyBeforeMintingFinished returns (bool) { mint(to, tokenId); _setTokenURI(tokenId, tokenURI); return true; } - - /** - * @dev Function to stop minting new tokens. - * @return True if the operation was successful. - */ - function finishMinting() - public - onlyMinter - onlyBeforeMintingFinished - returns (bool) - { - _mintingFinished = true; - emit MintingFinished(); - return true; - } } diff --git a/test/token/ERC20/behaviors/ERC20Mintable.behavior.js b/test/token/ERC20/behaviors/ERC20Mintable.behavior.js index 5046fc62e..16126d99a 100644 --- a/test/token/ERC20/behaviors/ERC20Mintable.behavior.js +++ b/test/token/ERC20/behaviors/ERC20Mintable.behavior.js @@ -11,136 +11,44 @@ function shouldBehaveLikeERC20Mintable (minter, [anyone]) { const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; describe('as a mintable token', function () { - describe('mintingFinished', function () { - context('when token minting is not finished', function () { - it('returns false', async function () { - (await this.token.mintingFinished()).should.equal(false); - }); - }); - - context('when token minting is finished', function () { - beforeEach(async function () { - await this.token.finishMinting({ from: minter }); - }); - - it('returns true', async function () { - (await this.token.mintingFinished()).should.equal(true); - }); - }); - }); - - describe('finishMinting', function () { - context('when the sender has minting permission', function () { - const from = minter; - - context('when token minting was not finished', function () { - it('finishes token minting', async function () { - await this.token.finishMinting({ from }); - - (await this.token.mintingFinished()).should.equal(true); - }); - - it('emits a mint finished event', async function () { - const { logs } = await this.token.finishMinting({ from }); - - await expectEvent.inLogs(logs, 'MintingFinished'); - }); - }); - - context('when token minting was already finished', function () { - beforeEach(async function () { - await this.token.finishMinting({ from }); - }); - - it('reverts', async function () { - await assertRevert(this.token.finishMinting({ from })); - }); - }); - }); - - context('when the sender doesn\'t have minting permission', function () { - const from = anyone; - - context('when token minting was not finished', function () { - it('reverts', async function () { - await assertRevert(this.token.finishMinting({ from })); - }); - }); - - context('when token minting was already finished', function () { - beforeEach(async function () { - await this.token.finishMinting({ from: minter }); - }); - - it('reverts', async function () { - await assertRevert(this.token.finishMinting({ from })); - }); - }); - }); - }); - describe('mint', function () { const amount = 100; context('when the sender has minting permission', function () { const from = minter; - context('when token minting is not finished', function () { - context('for a zero amount', function () { - shouldMint(0); - }); - - context('for a non-zero amount', function () { - shouldMint(amount); - }); - - function shouldMint (amount) { - beforeEach(async function () { - ({ logs: this.logs } = await this.token.mint(anyone, amount, { from })); - }); - - it('mints the requested amount', async function () { - (await this.token.balanceOf(anyone)).should.be.bignumber.equal(amount); - }); - - it('emits a mint and a transfer event', async function () { - const transferEvent = expectEvent.inLogs(this.logs, 'Transfer', { - from: ZERO_ADDRESS, - to: anyone, - }); - transferEvent.args.value.should.be.bignumber.equal(amount); - }); - } + context('for a zero amount', function () { + shouldMint(0); }); - context('when token minting is finished', function () { + context('for a non-zero amount', function () { + shouldMint(amount); + }); + + function shouldMint (amount) { beforeEach(async function () { - await this.token.finishMinting({ from: minter }); + ({ logs: this.logs } = await this.token.mint(anyone, amount, { from })); }); - it('reverts', async function () { - await assertRevert(this.token.mint(anyone, amount, { from })); + it('mints the requested amount', async function () { + (await this.token.balanceOf(anyone)).should.be.bignumber.equal(amount); }); - }); + + it('emits a mint and a transfer event', async function () { + const transferEvent = expectEvent.inLogs(this.logs, 'Transfer', { + from: ZERO_ADDRESS, + to: anyone, + }); + transferEvent.args.value.should.be.bignumber.equal(amount); + }); + } }); context('when the sender doesn\'t have minting permission', function () { const from = anyone; - context('when token minting is not finished', function () { - it('reverts', async function () { - await assertRevert(this.token.mint(anyone, amount, { from })); - }); - }); - - context('when token minting is already finished', function () { - beforeEach(async function () { - await this.token.finishMinting({ from: minter }); - }); - - it('reverts', async function () { - await assertRevert(this.token.mint(anyone, amount, { from })); - }); + it('reverts', async function () { + await assertRevert(this.token.mint(anyone, amount, { from })); }); }); }); diff --git a/test/token/ERC721/ERC721MintBurn.behavior.js b/test/token/ERC721/ERC721MintBurn.behavior.js index cadfe87cc..31db1d176 100644 --- a/test/token/ERC721/ERC721MintBurn.behavior.js +++ b/test/token/ERC721/ERC721MintBurn.behavior.js @@ -117,35 +117,6 @@ function shouldBehaveLikeMintAndBurnERC721 ( }); }); }); - - describe('finishMinting', function () { - it('allows the minter to finish minting', async function () { - const { logs } = await this.token.finishMinting({ from: minter }); - expectEvent.inLogs(logs, 'MintingFinished'); - }); - }); - - context('mintingFinished', function () { - beforeEach(async function () { - await this.token.finishMinting({ from: minter }); - }); - - describe('mint', function () { - it('reverts', async function () { - await assertRevert( - this.token.mint(owner, thirdTokenId, { from: minter }) - ); - }); - }); - - describe('mintWithTokenURI', function () { - it('reverts', async function () { - await assertRevert( - this.token.mintWithTokenURI(owner, thirdTokenId, MOCK_URI, { from: minter }) - ); - }); - }); - }); }); }