合约拥有者
msg.sender就是当前调用方法时的发起人,一个合约部署后,通过钱包地址操作合约的人很多,但是如何正确判断谁是合约的拥有者,判断方式很简单,就是第一次部署合约时,谁出的gas,谁就对合约具有拥有权。
合约地址
一个合约部署后,会有一个合约地址,这个合约地址就代表合约自己。
this代表的是合约地址。同时也可以看出msg.sender即是调用合约的账户地址
modifier
modifier name(<args>){
...
_;
};
()里面为参数,…为solidity程式码;_;表示执行完这个modifier后,会去往下执行原本function该做的事
modifier onlyOwner(){
require(msg.sender == owner," permission denied");
_;
}
function setName(string _name) public onlyOwner returns (string){
name = _name;
return name;
}
执行 setName 时,当遇到 onlyOwner 会跳到上面的modifier,require验证通过,执行来到 function 的具体内容,即对name赋值。