Unverified Commit 5fdeaa81 by Nicolás Venturo Committed by GitHub

Removed mintingFinished. (#1351)

* Removed mintingFinished from ERC20Mintable.

* Removed MintingFinished from ERC721Mintable.

* Removed MintingFinished event.
parent db2e1d2c
...@@ -8,22 +8,6 @@ import "../../access/roles/MinterRole.sol"; ...@@ -8,22 +8,6 @@ import "../../access/roles/MinterRole.sol";
* @dev ERC20 minting logic * @dev ERC20 minting logic
*/ */
contract ERC20Mintable is ERC20, MinterRole { 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 * @dev Function to mint tokens
* @param to The address that will receive the minted tokens. * @param to The address that will receive the minted tokens.
...@@ -36,25 +20,9 @@ contract ERC20Mintable is ERC20, MinterRole { ...@@ -36,25 +20,9 @@ contract ERC20Mintable is ERC20, MinterRole {
) )
public public
onlyMinter onlyMinter
onlyBeforeMintingFinished
returns (bool) returns (bool)
{ {
_mint(to, amount); _mint(to, amount);
return true; 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;
}
} }
...@@ -8,22 +8,6 @@ import "../../access/roles/MinterRole.sol"; ...@@ -8,22 +8,6 @@ import "../../access/roles/MinterRole.sol";
* @dev ERC721 minting logic * @dev ERC721 minting logic
*/ */
contract ERC721Mintable is ERC721Full, MinterRole { 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 * @dev Function to mint tokens
* @param to The address that will receive the minted tokens. * @param to The address that will receive the minted tokens.
...@@ -36,7 +20,6 @@ contract ERC721Mintable is ERC721Full, MinterRole { ...@@ -36,7 +20,6 @@ contract ERC721Mintable is ERC721Full, MinterRole {
) )
public public
onlyMinter onlyMinter
onlyBeforeMintingFinished
returns (bool) returns (bool)
{ {
_mint(to, tokenId); _mint(to, tokenId);
...@@ -50,26 +33,10 @@ contract ERC721Mintable is ERC721Full, MinterRole { ...@@ -50,26 +33,10 @@ contract ERC721Mintable is ERC721Full, MinterRole {
) )
public public
onlyMinter onlyMinter
onlyBeforeMintingFinished
returns (bool) returns (bool)
{ {
mint(to, tokenId); mint(to, tokenId);
_setTokenURI(tokenId, tokenURI); _setTokenURI(tokenId, tokenURI);
return true; 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;
}
} }
...@@ -11,136 +11,44 @@ function shouldBehaveLikeERC20Mintable (minter, [anyone]) { ...@@ -11,136 +11,44 @@ function shouldBehaveLikeERC20Mintable (minter, [anyone]) {
const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
describe('as a mintable token', function () { describe('as a mintable token', function () {
describe('mintingFinished', function () { describe('mint', function () {
context('when token minting is not finished', function () { const amount = 100;
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 () { context('when the sender has minting permission', function () {
const from = minter; const from = minter;
context('when token minting was not finished', function () { context('for a zero amount', function () {
it('finishes token minting', async function () { shouldMint(0);
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 () { context('for a non-zero amount', function () {
it('reverts', async function () { shouldMint(amount);
await assertRevert(this.token.finishMinting({ from }));
});
}); });
context('when token minting was already finished', function () { function shouldMint (amount) {
beforeEach(async function () { 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.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 () { it('mints the requested amount', async function () {
shouldMint(amount); (await this.token.balanceOf(anyone)).should.be.bignumber.equal(amount);
}); });
function shouldMint (amount) { it('emits a mint and a transfer event', async function () {
beforeEach(async function () { const transferEvent = expectEvent.inLogs(this.logs, 'Transfer', {
({ logs: this.logs } = await this.token.mint(anyone, amount, { from })); from: ZERO_ADDRESS,
}); to: anyone,
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);
}); });
} transferEvent.args.value.should.be.bignumber.equal(amount);
});
context('when token minting is finished', function () {
beforeEach(async function () {
await this.token.finishMinting({ from: minter });
}); });
}
it('reverts', async function () {
await assertRevert(this.token.mint(anyone, amount, { from }));
});
});
}); });
context('when the sender doesn\'t have minting permission', function () { context('when the sender doesn\'t have minting permission', function () {
const from = anyone; const from = anyone;
context('when token minting is not finished', function () { it('reverts', async function () {
it('reverts', async function () { await assertRevert(this.token.mint(anyone, amount, { from }));
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 }));
});
}); });
}); });
}); });
......
...@@ -117,35 +117,6 @@ function shouldBehaveLikeMintAndBurnERC721 ( ...@@ -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 })
);
});
});
});
}); });
} }
......
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