Ico

關於 OpenZeppelin 的最終可定型眾售的警告

  • December 21, 2017

我正在嘗試創建一個基於 OpenZeppeline 的眾籌合約。完整的程式碼可以在這裡找到。但是,在混音中,它會發出以下警告:

browser/crowdsale.sol:262:3:警告:函式狀態可變性可以限制為純
函式 finalization() 內部 {
^
跨越多行。

這裡產生問題的程式碼是:

函式 finalization() 內部 {}

誰能建議這裡有什麼問題以及我如何重寫這個最終程式碼以便沒有警告?

程式碼實際上沒有任何問題。Remix 只是意識到該函式finalization不修改也不訪問合約儲存。對於此類功能,建議使用pure修飾符,因此如果將行更改為

function finalization() pure internal {}

警告將消失。

但是請注意,來自 OpenZeppelin 的人為了完整起見放入了這個函式,讓他們的程式碼使用者來覆蓋它。如果這樣做,很可能會在函式中訪問合約儲存,這會使函式不再pure.

有關函式的更多資訊,pureview參見此處solidity 文件,函式部分。

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