Commit f3606e3e by Francisco Giordano

transform Ownable to initializers

parent 9c16ffca
pragma solidity ^0.4.24;
import { Ownable } from '../ownership/Ownable.sol';
contract OwnableMock is Ownable {
constructor() {
initialize();
}
}
pragma solidity ^0.4.24;
import "../Initializable.sol";
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
contract Ownable is Initializable {
address private _owner;
......@@ -21,7 +22,7 @@ contract Ownable {
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor() public {
function initialize() public initializer {
_owner = msg.sender;
}
......
const { EVMRevert } = require('../helpers/EVMRevert');
const { expectThrow } = require('../helpers/expectThrow');
const { shouldBehaveLikeOwnable } = require('./Ownable.behavior');
const Ownable = artifacts.require('Ownable');
const Ownable = artifacts.require('OwnableMock');
contract('Ownable', function ([_, owner, ...otherAccounts]) {
beforeEach(async function () {
this.ownable = await Ownable.new({ from: owner });
});
it('cannot be reinitialized', async function () {
await expectThrow(this.ownable.initialize(), EVMRevert);
});
shouldBehaveLikeOwnable(owner, otherAccounts);
});
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