diff --git a/contracts/examples/StandardToken.sol b/contracts/examples/StandardToken.sol index 4399e9513..c0414c1ca 100644 --- a/contracts/examples/StandardToken.sol +++ b/contracts/examples/StandardToken.sol @@ -13,7 +13,7 @@ import "../token/ERC20/ERC20Pausable.sol"; contract StandardToken is Initializable, ERC20Detailed, ERC20Mintable, ERC20Pausable { function initialize( string memory name, string memory symbol, uint8 decimals, uint256 initialSupply, address initialHolder, - address[] memory minters, address[] memory pausers + address[] memory minters, address[] memory pausers, address sender ) public initializer { ERC20Detailed.initialize(name, symbol, decimals); @@ -23,11 +23,11 @@ contract StandardToken is Initializable, ERC20Detailed, ERC20Mintable, ERC20Paus } // Initialize the minter and pauser roles, and renounce them - ERC20Mintable.initialize(msg.sender); - renounceMinter(); + ERC20Mintable.initialize(sender); + _removeMinter(sender); - ERC20Pausable.initialize(msg.sender); - renouncePauser(); + ERC20Pausable.initialize(sender); + _removePauser(sender); // Add the requested minters and pausers (this can be done after renouncing since // these are the internal calls) diff --git a/contracts/token/ERC20/StandaloneERC20.sol b/contracts/token/ERC20/StandaloneERC20.sol index abf0b768f..9d5e6cedc 100644 --- a/contracts/token/ERC20/StandaloneERC20.sol +++ b/contracts/token/ERC20/StandaloneERC20.sol @@ -13,7 +13,7 @@ import "./ERC20Pausable.sol"; contract StandaloneERC20 is Initializable, ERC20Detailed, ERC20Mintable, ERC20Pausable { function initialize( string memory name, string memory symbol, uint8 decimals, uint256 initialSupply, address initialHolder, - address[] memory minters, address[] memory pausers + address[] memory minters, address[] memory pausers, address sender ) public initializer { ERC20Detailed.initialize(name, symbol, decimals); @@ -21,11 +21,11 @@ contract StandaloneERC20 is Initializable, ERC20Detailed, ERC20Mintable, ERC20Pa _mint(initialHolder, initialSupply); // Initialize the minter and pauser roles, and renounce them - ERC20Mintable.initialize(msg.sender); - renounceMinter(); + ERC20Mintable.initialize(sender); + _removeMinter(sender); - ERC20Pausable.initialize(msg.sender); - renouncePauser(); + ERC20Pausable.initialize(sender); + _removePauser(sender); // Add the requested minters and pausers (this can be done after renouncing since // these are the internal calls) @@ -39,16 +39,16 @@ contract StandaloneERC20 is Initializable, ERC20Detailed, ERC20Mintable, ERC20Pa } function initialize( - string memory name, string memory symbol, uint8 decimals, address[] memory minters, address[] memory pausers + string memory name, string memory symbol, uint8 decimals, address[] memory minters, address[] memory pausers, address sender ) public initializer { ERC20Detailed.initialize(name, symbol, decimals); // Initialize the minter and pauser roles, and renounce them - ERC20Mintable.initialize(msg.sender); - renounceMinter(); + ERC20Mintable.initialize(sender); + _removeMinter(sender); - ERC20Pausable.initialize(msg.sender); - renouncePauser(); + ERC20Pausable.initialize(sender); + _removePauser(sender); // Add the requested minters and pausers (this can be done after renouncing since // these are the internal calls) diff --git a/contracts/token/ERC721/StandaloneERC721.sol b/contracts/token/ERC721/StandaloneERC721.sol index 38b83647b..52c32276e 100644 --- a/contracts/token/ERC721/StandaloneERC721.sol +++ b/contracts/token/ERC721/StandaloneERC721.sol @@ -15,17 +15,17 @@ import "./ERC721Pausable.sol"; contract StandaloneERC721 is Initializable, ERC721, ERC721Enumerable, ERC721Metadata, ERC721MetadataMintable, ERC721Pausable { - function initialize(string memory name, string memory symbol, address[] memory minters, address[] memory pausers) public initializer { + function initialize(string memory name, string memory symbol, address[] memory minters, address[] memory pausers, address sender) public initializer { ERC721.initialize(); ERC721Enumerable.initialize(); ERC721Metadata.initialize(name, symbol); // Initialize the minter and pauser roles, and renounce them - ERC721MetadataMintable.initialize(msg.sender); - renounceMinter(); + ERC721MetadataMintable.initialize(sender); + _removeMinter(sender); - ERC721Pausable.initialize(msg.sender); - renouncePauser(); + ERC721Pausable.initialize(sender); + _removePauser(sender); // Add the requested minters and pausers (this can be done after renouncing since // these are the internal calls) diff --git a/test/examples/SimpleToken.test.js b/test/examples/SimpleToken.test.js index 1ec65ee07..4e89f783b 100644 --- a/test/examples/SimpleToken.test.js +++ b/test/examples/SimpleToken.test.js @@ -1,7 +1,7 @@ const { constants, expectEvent } = require('openzeppelin-test-helpers'); const { ZERO_ADDRESS } = constants; -const SimpleToken = artifacts.require('SimpleToken'); +const SimpleToken = artifacts.require('SimpleTokenMock'); contract('SimpleToken', function ([_, creator]) { beforeEach(async function () { diff --git a/test/examples/StandardToken.test.js b/test/examples/StandardToken.test.js index 108821ea5..c4a00bc06 100644 --- a/test/examples/StandardToken.test.js +++ b/test/examples/StandardToken.test.js @@ -1,11 +1,7 @@ const encodeCall = require('zos-lib/lib/helpers/encodeCall').default; const { shouldBehaveLikeERC20Mintable } = require('../token/ERC20/behaviors/ERC20Mintable.behavior'); -const BigNumber = web3.BigNumber; - -require('chai') - .use(require('chai-bignumber')(BigNumber)) - .should(); +const { BN } = require('openzeppelin-test-helpers'); const StandardToken = artifacts.require('StandardToken'); @@ -14,9 +10,9 @@ contract('StandardToken', function ([ ]) { const name = 'StdToken'; const symbol = 'STDT'; - const decimals = 18; + const decimals = new BN('18'); - const initialSupply = 300; + const initialSupply = new BN('300'); const minters = [minterA, minterB]; const pausers = [pauserA, pauserB]; @@ -28,10 +24,9 @@ contract('StandardToken', function ([ }); async function initialize (token, name, symbol, decimals, initialSupply, initialHolder, minters, pausers, from) { - const callData = encodeCall('initialize', - ['string', 'string', 'uint8', 'uint256', 'address', 'address[]', 'address[]'], - [name, symbol, decimals, initialSupply, initialHolder, minters, pausers]); - await token.sendTransaction({ data: callData, from }); + const signature = 'initialize(string,string,uint8,uint256,address,address[],address[],address)'; + const arguments = [name, symbol, decimals, initialSupply, initialHolder, minters, pausers, from]; + await token.methods[signature](...arguments, { from }); } context('with all arguments', function () { @@ -77,8 +72,8 @@ contract('StandardToken', function ([ }); it('can be created with zero initial balance', async function () { - await initialize(this.token, name, symbol, decimals, 0, ZERO_ADDRESS, minters, pausers, deployer); - (await this.token.balanceOf(initialHolder)).should.be.bignumber.equal(0); + await initialize(this.token, name, symbol, decimals, new BN(0), ZERO_ADDRESS, minters, pausers, deployer); + (await this.token.balanceOf(initialHolder)).should.be.bignumber.equal('0'); }); it('can be created with no minters', async function () { diff --git a/test/token/ERC20/StandaloneERC20.test.js b/test/token/ERC20/StandaloneERC20.test.js index aedd61c25..0e29ec52e 100644 --- a/test/token/ERC20/StandaloneERC20.test.js +++ b/test/token/ERC20/StandaloneERC20.test.js @@ -1,12 +1,7 @@ const encodeCall = require('zos-lib/lib/helpers/encodeCall').default; const { shouldBehaveLikeERC20Mintable } = require('./behaviors/ERC20Mintable.behavior'); -const shouldFail = require('../../helpers/shouldFail'); -const BigNumber = web3.BigNumber; - -require('chai') - .use(require('chai-bignumber')(BigNumber)) - .should(); +const { shouldFail, BN } = require('openzeppelin-test-helpers'); const StandaloneERC20 = artifacts.require('StandaloneERC20'); @@ -15,9 +10,9 @@ contract('StandaloneERC20', function ([ ]) { const name = 'StandaloneERC20'; const symbol = 'SAERC20'; - const decimals = 18; + const decimals = new BN(18); - const initialSupply = 300; + const initialSupply = new BN(300); const minters = [minterA, minterB]; const pausers = [pauserA, pauserB]; @@ -29,17 +24,15 @@ contract('StandaloneERC20', function ([ }); async function initializeFull (token, name, symbol, decimals, initialSupply, initialHolder, minters, pausers, from) { - const callData = encodeCall('initialize', - ['string', 'string', 'uint8', 'uint256', 'address', 'address[]', 'address[]'], - [name, symbol, decimals, initialSupply, initialHolder, minters, pausers]); - await token.sendTransaction({ data: callData, from }); + const signature = 'initialize(string,string,uint8,uint256,address,address[],address[],address)'; + const arguments = [name, symbol, decimals, initialSupply, initialHolder, minters, pausers, from]; + await token.methods[signature](...arguments, { from }); } async function initializePartial (token, name, symbol, decimals, minters, pausers, from) { - const callData = encodeCall('initialize', - ['string', 'string', 'uint8', 'address[]', 'address[]'], - [name, symbol, decimals, minters, pausers]); - await token.sendTransaction({ data: callData, from }); + const signature = 'initialize(string,string,uint8,address[],address[],address)'; + const arguments = [name, symbol, decimals, minters, pausers, from]; + await token.methods[signature](...arguments, { from }); } describe('with all arguments', function () { diff --git a/test/token/ERC721/StandaloneERC721.test.js b/test/token/ERC721/StandaloneERC721.test.js index ce301046d..7fb022212 100644 --- a/test/token/ERC721/StandaloneERC721.test.js +++ b/test/token/ERC721/StandaloneERC721.test.js @@ -1,10 +1,6 @@ const encodeCall = require('zos-lib/lib/helpers/encodeCall').default; -const BigNumber = web3.BigNumber; - -require('chai') - .use(require('chai-bignumber')(BigNumber)) - .should(); +require('openzeppelin-test-helpers'); const StandaloneERC721 = artifacts.require('StandaloneERC721'); @@ -20,10 +16,9 @@ contract('StandaloneERC721', function ([_, deployer, minterA, minterB, pauserA, }); async function initialize (token, name, symbol, minters, pausers, from) { - const callData = encodeCall('initialize', - ['string', 'string', 'address[]', 'address[]'], - [name, symbol, minters, pausers]); - await token.sendTransaction({ data: callData, from }); + const signature = 'initialize(string,string,address[],address[],address)'; + const arguments = [name, symbol, minters, pausers, from]; + await token.methods[signature](...arguments, { from }); } it('can be created with no minters', async function () {