Ico
關於 OpenZeppelin 的最終可定型眾售的警告
我正在嘗試創建一個基於 OpenZeppeline 的眾籌合約。完整的程式碼可以在這裡找到。但是,在混音中,它會發出以下警告:
browser/crowdsale.sol:262:3:警告:函式狀態可變性可以限制為純 函式 finalization() 內部 { ^ 跨越多行。
這裡產生問題的程式碼是:
函式 finalization() 內部 {}
誰能建議這裡有什麼問題以及我如何重寫這個最終程式碼以便沒有警告?
程式碼實際上沒有任何問題。Remix 只是意識到該函式
finalization
不修改也不訪問合約儲存。對於此類功能,建議使用pure
修飾符,因此如果將行更改為function finalization() pure internal {}
警告將消失。
但是請注意,來自 OpenZeppelin 的人為了完整起見放入了這個函式,讓他們的程式碼使用者來覆蓋它。如果這樣做,很可能會在函式中訪問合約儲存,這會使函式不再
pure
.有關函式的更多資訊,
pure
請view
參見此處和solidity 文件,函式部分。