Solidity
如何正確地使經理無效?
在
MyContract
中,我正在為manager
. 但是一段時間後,出於某種原因,我想使manager
. 以下是我的方法:// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract MyContract{ address manager; constructor(){ manager = msg.sender; } function invalidate() public { require(msg.sender == manager); // Only manager can invalidate itself manager = address(0); } }
這樣做是正確的方法還是有一些漏洞?
這會很好用!
該
invalidate()
函式是公開的,這意味著任何人都可以呼叫它。如果你想限制誰可以呼叫那個地址,你應該添加一些 require 語句。例如,如果您只希望經理能夠使自己無效,您可以編寫:
function invalidate() public { require(msg.sender == manager); manager = address(0); }