Solidity
從另一個函式呼叫自己的函式
我有兩個可擁有的函式(我正在使用 openzeppelin),當我從第一個函式呼叫第二個函式時,我得到:
“可擁有:呼叫者不是所有者”。
function first() external view onlyOwner returns(address){ return this.second(); } function second() external view onlyOwner returns(address){ return msg.sender; }
我想問題是第一個函式正在呼叫具有不同地址的第二個函式。如何使這項工作?
當你
second
用它呼叫函式時this
,會觸發內部交易,因此msg.sender
是合約本身,與所有者不同。您可以呼叫該函式,沒有
this.
它不會觸發內部事務,而只是“跳轉”到該函式。