Solidity

如果視圖函式被另一個訪問相同儲存變數的函式呼叫,是否會使用氣體?

  • May 4, 2022

假設我有一個像這樣view訪問storage映射的函式:

function performCalculation(uint256 _id) public view returns(uint256) {
     uint256 memory someValue = someMapping[_id];
     return someValue - 10;
}

我還有另一個函式也可以訪問相同的值:

function someFunction(uint256 _id) external {
     uint256 storage someValue = someMapping[_id];
     // do something
}

如果在內部someFunction我需要執行相同的計算,performCalculation呼叫performCalculationfrom會someFunction在再次訪問儲存時使用更多的氣體嗎?someValue更好的解決方案是使用from內聯進行相同的計算someFunction嗎?

someFunction交易中,它會花費更多或相同的氣體。

它是一個函式這一事實view只允許使用節點 RPC 呼叫它而不是送出交易,但它並沒有降低探勘交易的成本。

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