*譯文出自:登鏈翻譯計劃
*譯者:翻譯小組
*校對:Tiny熊
我們離Solidity1
}contractSolidity08{functiontest()externalpurereturns(uint256){//不使用SafeMath,返回type(uint256)
returnx;}}
2.無效的操作碼被還原取代
到目前為止,某些操作會導致INVALID操作碼的執行。這個操作碼的問題是,它消耗掉所有剩余的Gas。這顯然是不好的且沒必要。為什么要浪費Gas,把它捐給礦工?
更多細節,在這里查看revert和assert的區別。
現在Solidity使用revert操作碼。為了區分常規revert和系統內部錯誤,Solidity在返回數據前加上一個標識符:
CZ評SEC起訴Coinbase:如果你要和所有人對抗,那你可能錯了:6 月 6 日,CZ在社交平臺評針對SEC起訴Coinbase一事表示,如果你要和所有人對抗,那你可能就錯了。[2023/6/6 21:19:53]
*常規Revert錯誤**以keccak256(Error(string))的前四個字節開始,等于0x08c379a0。
*系統內部錯誤**以keccak256(Panic(uint256))的前四個字節開始,等于0x4e487b71。
Panic有一個額外的錯誤標識。目前可用的Panic有:
*0x01**:使用asset;
*0x11**:SafeMath的溢出。
*0x12**:除以0。
*0x21**:轉換為不存在的枚舉類型。
*0x22**:存儲字節數組編碼錯誤。
CZ:Binance全球用戶超1.2億:12月29日消息,根據Binance創始人CZ發布的公開信《2022,韌性為王》中內容顯示,Binance現在有7500位員工,來自100多個國家,目前正在為全球超過1.2億用戶提供服務。[2022/12/29 22:14:49]
*0x31**:在一個空數組上pop()。
*0x32**:索引超長度異常。
*0x41**:分配過多的內存或創建過大的數組。
*0x51**:調用未初始化的內部函數類型的變量。
更多細節請參見文檔中新的錯誤處理部分這里。
如何遷移到Solidity0.8
在大多數情況下,遷移應該是非常直接的。只有在一些情況下,你做奇怪的類型轉換可能會變得更加困難。
你必須為遷移做出的改變包括:
Isekai Meta系列NFT近24小時交易額增幅超1000%:金色財經報道,OpenSea數據顯示,Isekai Meta系列NFT近24小時交易額為714 ETH,24小時交易額增漲幅度為1187%,交易額排名位列OpenSea第2。[2022/8/23 12:41:58]
*ABIEncoderV2現在是默認自動激活。從0.6開始,Encoder就不再是實驗性的了,只是因為遺留的原因,保留了pragmaexperimental這個名字。現在你不需要再加這行了。
*移除任何OpenzeppelinSafeMath,你不再需要它了。
*可能需要進行一些類型轉換。
*msg.sender和tx.origin默認不屬于payable類型。將msg.sender.transfer改為payable(msg.sender).transfer。
阿根廷班菲爾德足球俱樂部球員轉會資金使用穩定幣支付形式:金色財經消息,巴西圣保羅(S?o Paulo)足球俱樂部宣布引進阿根廷班菲爾德(Banfield)足球俱樂部球員Giuliano Galoppo,轉會資金通過拉丁美洲交易所Bitso以穩定幣USDC形式支付。據悉,Bitso是巴西圣保羅隊的贊助商。Bitso巴西首席執行官Thales Araújo de Freitas稱,此次交易是“Bitso、圣保羅和更廣泛的南美足球的歷史性時刻”。(CoinDesk)[2022/7/30 2:47:59]
*只有在符合給定類型的情況下,才允許類型轉換,所以uint256(-1)將不再工作。使用type(uint256).max代替。
*當多次改變符號時,類型轉換在某些情況下會受到限制,因為類型轉換的順序可能會對結果產生影響。你現在會看到一個類似TypeError的錯誤。不允許從int256到bytes32進行顯示的類型轉換,得先手動轉換為uint256。
美國聯邦機構就 NFT 投資發布法律咨詢:7月20日消息,美國政府道德辦公室 (OGE) 發布了一份法律咨詢,該咨詢的主要目標是要求高級政府官員披露代表“財產”的 NFT 投資,例如房地產。[2022/7/20 2:25:55]
*修飾組合
*myContract.functionCall{gas:10000}{value:1ether}()改為:
*myContract.functionCall{gas:10000,value:1ether}()。
*將x**y**z改為(x**y)**z,因為默認的執行順序改變了。
*將byte類型改為byte1。
我省略了一些細節,關于完整的變更日志和所有變更的細節,請查看文檔這里。
本翻譯由CellNetwork贊助支持。
來源:https://soliditydeveloper.com/solidity-0.8
參考資料
登鏈翻譯計劃:https://github.com/lbc-team/Pioneer
翻譯小組:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
Solidity0.8:https://blog.soliditylang.org/2020/12/16/solidity-v0.8.0-release-announcement/
0.7發布:https://blog.soliditylang.org/2020/07/28/solidity-v0.7.0-release-announcement/
Solidity0.8的文檔:https://learnblockchain.cn/docs/solidity/
SafeMath:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/SafeMath.sol
這里:https://medium.com/blockchannel/the-use-of-revert-assert-and-require-in-solidity-and-the-new-revert-opcode-in-the-evm-1a3a7990e06e
這里:https://docs.soliditylang.org/en/latest/control-structures.html#panic-via-assert-and-error-via-require
這里:https://docs.soliditylang.org/en/latest/080-breaking-changes.html
CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9651958.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
盤點零知識證明代表性項目:如何影響和塑造區塊鏈生態系統?
在加密市場,短期的市場價格并不能很好地體現公鏈價值,卻能挑動無數投資者的神經。區塊鏈世界里,公鏈有“王冠上的明珠”之美譽。其去中心化共識精神下,一直是幣圈投資者資產配置和重點關注的領地.
1900/1/1 0:00:00昨日,比特幣價格重回40000美元上方,為1月14日以來的首次。根據中幣官方行情數據,比特幣現報39552美元,24小時漲幅2.16%,24小時價格范圍為38314美元至40940美元.
1900/1/1 0:00:00理解一下期權: 英文單詞是option,即選擇權,選擇在未來的某個時間點干或者不干某件事的權利.
1900/1/1 0:00:002020年對MDC生態是風風雨雨的一年,歷經全球經濟大低迷的動蕩時期,但也是蓬勃激昂發展的一年,用戶地址達三百萬,多個鏈上應用場景落地,多個幣種行情火熱,整體發展迅速且穩健.
1900/1/1 0:00:002月3日,波場TRON2021全球DefiHackathon開發者千萬美金賞金大賽正式拉開帷幕,高達1000萬美金的高額獎池讓各界的開發者躍躍欲試.
1900/1/1 0:00:00美東時間2021年2月2日,灰度投資公司在推特發布其2020年Q4投資報告,內容主要分為:回顧2020年的比特幣市場、展望2021年的加密市場、2020年Q4數字資產投資的亮眼成績、總結四大部分.
1900/1/1 0:00:00