智能合约 - Claimable
优质
小牛编辑
128浏览
2023-12-01
Ownable
合约的增强扩展合约,需要下一个所有者主动声明自己,才能获得所有者权限的扩展。
原文地址: http://zeppelin-solidity.readthedocs.io/en/latest/claimable.html
源码地址: http://zeppelin-solidity.readthedocs.io/en/latest/claimable.html
transfer(address newOwner) onlyOwner
设置传递的地址为待处理的下一个所有者(但这个所有者没有声明接受之前,所有者仍是原所有者)。
function transferOwnership(address newOwner) onlyOwner {
pendingOwner = newOwner;
}
modifier onlyPendingOwner
限制只能是待处理的下一个所有者才能操作的修改器。
modifier onlyPendingOwner() {
require(msg.sender == pendingOwner);
_;
}
claimOwnership( ) onlyPendingOwner
因为设置了onlyPendingOwner
修改器,所有只有被指定的下一个待处理的所有者,才有权限调用这个方法,并把自己设置为整个合约的所有者。
function claimOwnership() onlyPendingOwner {
owner = pendingOwner;
pendingOwner = 0x0;
}