Solidity

從另一個函式呼叫自己的函式

  • January 22, 2022

我有兩個可擁有的函式(我正在使用 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.它不會觸發內部事務,而只是“跳轉”到該函式。

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