Solidity

如何只允許合約所有者鑄造代幣?

  • March 18, 2022

我想我以前在某個地方看到過,但再也找不到了。我只需要允許合約所有者在合約中鑄造 ERC721 代幣。糾正我,我認為這與使用require. 我可以嘗試對其進行編碼,但我想遵循最佳實踐,因此我正在尋找意見。

您可以使用Ownable https://docs.openzeppelin.com/contracts/2.x/access-control#ownership-and-ownableonlyOwner在您的函式上使用修飾符;

function mint() onlyOwner {
}

或者您可以使用:

require(msg.sender == owner, "Must be owner");

變數address owner應事先初始化。

msg.sender是交易的發送者

Ownable 有很多特性,比如transferOwnership, renounceOwnership, getter 和 events

引用自:https://ethereum.stackexchange.com/questions/124119