Removed mintingFinished. (#1351)

* Removed mintingFinished from ERC20Mintable.

* Removed MintingFinished from ERC721Mintable.

* Removed MintingFinished event.
This commit is contained in:
Nicolás Venturo
2018-09-26 16:05:43 -03:00
committed by GitHub
parent db2e1d2c74
commit 5fdeaa81d5
4 changed files with 21 additions and 207 deletions

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -11,81 +11,12 @@ 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);
});
@ -113,36 +44,13 @@ function shouldBehaveLikeERC20Mintable (minter, [anyone]) {
}
});
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 () {
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 }));
});
});
});
});
});
}

View File

@ -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 })
);
});
});
});
});
}