@0x/contracts-zero-ex: Use immutable owner in Puppet instead of Ownable.
This commit is contained in:
committed by
Lawrence Forman
parent
af45409959
commit
030cb285da
@@ -23,9 +23,8 @@ import "@0x/contracts-utils/contracts/src/v06/interfaces/IOwnableV06.sol";
|
||||
|
||||
|
||||
/// @dev A contract that can execute arbitrary calls from its owner.
|
||||
interface IPuppet is
|
||||
IOwnableV06
|
||||
{
|
||||
interface IPuppet {
|
||||
|
||||
/// @dev Execute an arbitrary call. Only an authority can call this.
|
||||
/// @param target The call target.
|
||||
/// @param callData The call data.
|
||||
@@ -55,4 +54,8 @@ interface IPuppet is
|
||||
|
||||
/// @dev Allows the puppet to receive ETH.
|
||||
receive() external payable;
|
||||
|
||||
/// @dev Fetch the immutable owner/deployer of this contract.
|
||||
/// @return owner_ The immutable owner/deployer/
|
||||
function owner() external view returns (address owner_);
|
||||
}
|
||||
|
||||
@@ -20,19 +20,39 @@ pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "@0x/contracts-utils/contracts/src/v06/errors/LibRichErrorsV06.sol";
|
||||
import "@0x/contracts-utils/contracts/src/v06/OwnableV06.sol";
|
||||
import "@0x/contracts-utils/contracts/src/v06/errors/LibOwnableRichErrorsV06.sol";
|
||||
import "../errors/LibPuppetRichErrors.sol";
|
||||
import "./IPuppet.sol";
|
||||
|
||||
|
||||
/// @dev A contract that can execute arbitrary calls from its owner.
|
||||
contract Puppet is
|
||||
IPuppet,
|
||||
OwnableV06
|
||||
IPuppet
|
||||
{
|
||||
// solhint-disable no-unused-vars,indent,no-empty-blocks
|
||||
using LibRichErrorsV06 for bytes;
|
||||
|
||||
// solhint-disable
|
||||
/// @dev Store the owner/deployer as an immutable to make this contract stateless.
|
||||
address public override immutable owner;
|
||||
// solhint-enable
|
||||
|
||||
constructor() public {
|
||||
// The deployer is the owner.
|
||||
owner = msg.sender;
|
||||
}
|
||||
|
||||
/// @dev Allows only the (immutable) owner to call a function.
|
||||
modifier onlyOwner() virtual {
|
||||
if (msg.sender != owner) {
|
||||
LibOwnableRichErrorsV06.OnlyOwnerError(
|
||||
msg.sender,
|
||||
owner
|
||||
).rrevert();
|
||||
}
|
||||
_;
|
||||
}
|
||||
|
||||
/// @dev Execute an arbitrary call. Only an authority can call this.
|
||||
/// @param target The call target.
|
||||
/// @param callData The call data.
|
||||
|
||||
Reference in New Issue
Block a user