Solidity
如何只允許合約所有者鑄造代幣?
我想我以前在某個地方看到過,但再也找不到了。我只需要允許合約所有者在合約中鑄造 ERC721 代幣。糾正我,我認為這與使用
require
. 我可以嘗試對其進行編碼,但我想遵循最佳實踐,因此我正在尋找意見。
您可以使用
Ownable
https://docs.openzeppelin.com/contracts/2.x/access-control#ownership-and-ownable並onlyOwner
在您的函式上使用修飾符;function mint() onlyOwner { }
或者您可以使用:
require(msg.sender == owner, "Must be owner");
變數
address owner
應事先初始化。
msg.sender
是交易的發送者Ownable 有很多特性,比如
transferOwnership
,renounceOwnership
, getter 和 events