OpenZeppelinの Ownable コントラクト
(出典 :https://openzeppelin.com/)
Access Control - OpenZeppelin Docs
* @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 {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
function Ownable()はコンストラクタ
コンストラクタ:
コンストラクタ(constructor)は、オブジェクト指向のプログラミング言語(solidity)で新たなオブジェクトを生成する際に呼び出されて内容の初期化などを行なう関数あるいはメソッドのこと。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
modifier(関数修飾子)
modifierは、functionと同じ要領で{ }内に処理を記述するだけです。
onlyOwnerには引数がありませんが引数を取ることもできます。
{ }内の最後だけ少し特殊で_;を最後に記述します。
modifier aaaaa() {
関数と同じ記述方法;
_;
}
Ownableコントラクトの流れ
2.onlyOwner修飾子を追加して、ownerだけが特定の関数にアクセスできるように設定する。
SolidityのDAppを開発するときには、このOwnableコントラクトをコピーペーストしてから、最初のコントラクトの継承を始めているのだ。
prev
-
クリプトゾンビ Lesson 3 Chapter1 コントラクトの不変性 外部依存関係
Lesson 3 Chapter1 コントラクトの不変性 外部依存関係 コントラクトの不変性 コントラクトをイーサリアム上にデプロイすると、イミュータブルになる。つまり編集も更新もできなくなる。 ※イ ...
next
-
クリプトゾンビ Lesson 3 Chapter3 onlyOwner 関数修飾子
Lesson 3 Chapter3 onlyOwner 関数修飾子 onlyOwner関数修飾子 定義 modifier onlyOwner() { require(msg.sender == own ...