Solidity
視圖函式呼叫*不是由合約產生的氣體限制是多少?
所以這個問題似乎微不足道,但我找不到任何全面的答案,儘管通讀:
- 查看請求是否有氣體限制?
- 為什麼視圖/純函式需要gas?
- 呼叫視圖函式時超過塊氣體限制錯誤
- Solidity 常數函式可以任意複雜嗎?
- 在使用 Ganache-cli 進行 Mocha 測試期間,Solidity 超過塊氣體限制
- 阻止氣體限制懷疑
- 一個視圖公共函式的gas消耗
- 如何解釋 etherscan 內部 txns 視圖上的“Gas Limit”列?
- 在非視圖/純函式上使用“靜態呼叫”時耗氣量大
我的問題如下:
- 我可以打電話
estimateGas
來估計呼叫我的一個函式所需的氣體ethers.js
- 我的功能的限制氣體是多少?
背景:我正在做一個鏈上 NFT 項目,
tokenURI
方法有點複雜。我不明白這是否有問題。它應該有多少氣體最大值?
我的功能的限制氣體是多少?
estimateGas
將為您的tokenURI
方法返回一個相當準確的值。(如果您的
tokenURI
方法非常人為/多變,請注意estimateGas 的限制是什麼以及它的估計什麼時候會出現相當大的錯誤?)
tokenURI
方法有點複雜。我不明白這是否有問題。使用者通常不會呼叫該
tokenURI
方法,因此您通常可以。任何昂貴的智能合約功能(
tokenURI
包括web2 的類比可能是呼叫一個緩慢、不可靠或付費的 API:開發人員會避免呼叫這些 API,而優先選擇更快和可靠的東西。
它應該有多少氣體最大值?
我們可以說,一種非常昂貴的
tokenURI
方法是消耗一半的區塊氣體限制。即使是 10% 的區塊氣體限制似乎也很高,所以我的目標是低於 10%。儘管
tokenURI
通常只被稱為鏈下,因此它的gas使用量並不重要,但我不會低估tokenURI
未來鏈上可能有創造性用途的機會,所以我仍然會盡量保持合理它的氣體消耗。