以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 比特幣 > Info

Solidity 0.8.5 發布_SOL

Author:

Time:1900/1/1 0:00:00

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

Solidity團隊于2021年6月10日發布0

調用f("12345678")將返回12345678,如同調用f("1234567890")。如果數組比目標固定類型短,它將在末尾填充零,所以調用f("1234")將返回1234。

使用bytes轉換功能的一個好例子是在代理中使用:

//SPDX-License-Identifier:GPL-3

///Forwardsallcallstotheclientbutperformsadditionalchecksforcallsto"setOwner(address)"

(boolstatus,)=client

}

在0.8.5以前,不可能做到bytes4sig=bytes4(_payload);,相反,你必須使用以下方法進行轉換:

bytes4sig=_payload|(bytes4(_payload)>>8)|(bytes4(_payload)>>16)|(bytes4(_payload)>>24);

Solana社區成員提議創建可將Ed25519密鑰對轉換為Curve25519密鑰對的加密標準:4月10日消息,Solana社區成員Valentin發起一項提案,建議創建一個將Ed25519密鑰對轉換為為Diffie Hellman密鑰交換協議設計的Curve25519密鑰對的標準,這將支持非對稱加密,而不必生成單獨的密鑰來執行這種操作。

Valentin解釋稱,隨著Solana生態系統的發展,對于保護敏感數據(如帳戶狀態或IPFS和Arveawe等分布式文件系統上的文件),對Solana密鑰對加密標準的需求變得越來越重要。雖然Ed25519密鑰對對簽名消息有效,但它們不能用于非對稱加密,而非對稱加密對于用戶隱私和數據保護至關重要。再次,提出這個建議是為了就如何派生Solana密鑰對以兼容Diffie Hellman密鑰交換或其他類型的加密機制兼容達成一致。一旦就此主題達成一致,錢包就可以開始實施加密功能,作為錢包標準的一部分。

Valentin還提到,作為從常規Solana密鑰對派生Curve25519密鑰對來執行加密的替代方案,Jordan Sexton建議可以從任何錢包(包括硬件錢包)的簽名消息中派生密鑰對來派生加密密鑰。這種方法的一個問題可能是,一旦兩個dApp請求使用相同種子的簽名,密碼就可能被破解。需要某種在每次加密時都必須不同的一次性隨機數,這很難實現。[2023/4/10 13:54:02]

Yul中的Verbatim

數據:Solana生態24小時總交易額超20億美元:金色財經報道,據CoinGecko最新數據顯示,當前Solana生態總市值為200.57億美元(截至發稿時為20,057,086,851美元),24小時總交易額超20億美元(截至發稿時為2,030,385,991美元)。[2022/9/11 13:22:01]

完整的功能文檔可以在這里找到。

這個版本為Yul引入了一組verbatim內置函數,允許你在二進制中注入任意字節碼。目前只能通過純Yul來實現,也就是說,不能通過內聯匯編來實現。

主要有兩個用途:

使用Yul不知道的操作碼。

產生未被優化器修改的特定字節碼序列。

這些函數是verbatimi_o("",...),其中:

n是一個介于0和99之間的小數,用于指定輸入棧槽/變量的數量。

m是一個介于0和99之間的十進制數,指定輸出棧槽/變量的數量。

data是一個字符串常量,包含字節的序列。

注意,在使用verbatim時有一些注意事項,關于它的細節可以在文檔中找到。

用于新的操作碼

作為一個實際的例子,我們可以用它來方便地將一個新提出的EVM操作碼注入二進制。以提議的BASEFEE操作碼為例,由于Solidity編譯器目前不支持這個操作碼,人們可以使用verbatim在Yul中實現它。

數據:當前Solana生態總市值為181.84億美元,近24小時增漲0.5%:金色財經消息,據CoinGecko最新數據顯示,當前Solana生態總市值為181.84億美元(截至發稿時為18,184,919,760美元,近24小時增漲0.5%),24小時交易額為1,748,633,190美元。[2022/7/3 1:46:46]

{functionbasefee()->out{out:=verbatim_0i_1o(hex"48"。sstore(0,basefee()。

下面是另一個例子,它有一個輸入參數為verbatim。

letx:=calldataload(0)//Thehex"600202"correspondstoEVMinstructions://PUSH02MUL//Thatis,itmultipliesxby2.letdouble:=verbatim_1i_1o(hex"600202",x)

上面的代碼將產生一個dup1操作碼來檢索x,后面直接是600202。該代碼被假定為消耗x的值,并在堆棧的頂部產生結果。然后編譯器生成代碼,為double分配一個堆棧槽,并將結果存儲在那里。

用于Optimism使用場景

第二個使用場景對于像Optimism這樣的第2層解決方案來說是很有用的,以及其他類似的情況,比如字節碼分析或調試。Optimism目前使用一個自定義的Solidity編譯器,因為他們模擬了智能合約的執行,其中對狀態的改變都不會直接執行,而是由對管理人合約的調用來代替,該合約存儲了這些改變以備驗證。這方面的問題是檢查合約是否符合這些限制,特別是由于這必須由鏈上欺詐檢測機制來完成。他們所做的是,檢查合約是否使用了任何一個改變狀態的操作碼,除了調用管理人合約的call操作碼之外。為了正確檢測這個異常,導致這個call操作碼的操作序列必須有一個特定的形式,通常,Solidity優化器會進行一些重新排列,并破壞這個形式。幸運的是,verbatim可以解決這個問題,這樣Optimism就不需要再依賴自定義的Solidity編譯器,可以使用所有后來的Solidity編譯器版本而不需要修改。

Solend:部分巨鯨債務已分散至Mango Market:6月21日消息,Solana 生態借貸協議 Solend 發推表示,巨鯨(3oSE 開頭地址)已與團隊取得聯系,并討論了緩解措施,隨后,該巨鯨已按照 Solend 建議,首先會把其倉位分散到多個貸款產品(中心化和去中心化)中,目前已將 2500 萬枚 USDC 債務轉移到 Mango 市場。Solend 表示,此舉雖然有所緩解,但目前大型清算風險仍然存在,正在與 Mango 團隊和該巨鯨聯系以制定長期計劃。[2022/6/21 4:43:17]

Optimism編譯器可以采用由Solidity編譯器生成的Yul代碼,附加以下Yul輔助函數,并在語法上將所有改變狀態的內置函數調用替換為其ovm_對應的函數。例如,所有的sstore(x,y)調用被ovm_sstore(x,y)調用所取代。在這種替換之后,Yul優化器甚至可以再次運行。(這段代碼只說明了sstore。)

///Genericcalltothemanagercontract.functionovm_callManager(arguments,arguments_size,output_area,output_area_size){verbatim_4i_0o(hex"336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b",arguments,arguments_size,output_area,output_area_size。//Callamanagerfunctionwithtwoargumentsfunctionovm_kall_2i(signature,x,y){//Storetouchedmemoryinlocalsandrestoreitattheend.lettmp_a:=mload(0x00)lettmp_b:=mload(0x20)lettmp_c:=mload(0x40)mstore(0,signature)mstore(4,x)mstore(0x24,y)ovm_callManager(0,0x44,0,0)mstore(0x00,tmp_a)mstore(0x20,tmp_b)mstore(0x40,tmp_c。//Replaceallcallsto``sstore(x,y)``by``ovm_sstore(x,y)``functionovm_sstore(x,y){//Thehexcodeistheselectorof//thesstorefunctiononthemanagercontract.ovm_kall_2i(hex"22bd64c0",x,y。

基于波動率指數的加密協議Benchmark Protocol集成Solana Network:DeFi協議Benchmark Protocol宣布集成Solana Network,此次整合將進一步增強Benchmark Protocol的跨鏈互操作性能力,從而為更廣泛的去中心化金融(DeFi)增強流動性。Benchmark Protocol是基于波動率指數(VIX)的加密協議,旨在通過動態調整代幣的總供應量抵御高波動時期的加密貨幣清算事件。[2020/12/4 23:04:32]

完整的更新日志

語言特性方面

允許從bytes和bytes片轉換到bytes1/.../bytes32。

Yul:增加verbatim內置函數,以注入任意字節碼。

編譯器功能方面

代碼生成器:為panic異常代碼插入輔助函數,而不是無條件地內聯。

EVM:將默認的EVM版本設置為Berlin。

SMTChecker:函數定義可以用自定義的Natspec標簽custom:smtcheckerabstract-function-nondet來注解,以便在調用時用非確定性的值抽象化。

標準JSON/組合JSON:新的工件functionDebugData,包含函數入口點的字節碼偏移,未來可能會有更多信息。

Yul優化器:評估keccak256(a,c),當內存位置a的值在編譯時是已知的,c是常數<=32。

AST的變化

增加成員hexValue,用于Yul字符串和十六進制字符還修復一些bug,衷心感謝所有幫助實現該版本的貢獻者。

可以在這里下載新版本的Solidity。

本翻譯由CellNetwork贊助支持。

來源:https://blog.soliditylang.org/2021/06/10/solidity-0.8.5-release-announcement/

參考資料

登鏈翻譯計劃:https://github.com/lbc-team/Pioneer

翻譯小組:https://learnblockchain.cn/people/412

Tiny熊:https://learnblockchain.cn/people/15

Solidityv0.8.5:https://github.com/ethereum/solidity/releases/tag/v0.8.5

可以在這里:https://docs.soliditylang.org/en/v0.8.5/types.html#explicit-conversions

這里:https://docs.soliditylang.org/en/v0.8.5/yul.html#verbatim

文檔:https://docs.soliditylang.org/en/v0.8.5/yul.html#verbatim

EIP-3198:https://eips.ethereum.org/EIPS/eip-3198

EIP-1559:https://eips.ethereum.org/EIPS/eip-1559

這里:https://github.com/ethereum/solidity/releases/tag/v0.8.5

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/10084552.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

SendingLabs完成1250萬美元種子輪融資,以構建「Web3通信堆棧」

Tags:SOLSTOTIMTORsolana幣發行價格Mastodontime幣官網下載Airtor Protocol

比特幣
NFT 教程 - 用 Flow 和 IPFS 創建 NFT_NFT

非同質化代幣(NFT)市場正在進入狂熱,回顧NFT早期的發展歷程,回憶CryptoKitties所暴露出挑戰是很有意思的.

1900/1/1 0:00:00
英國中央銀行行長:\"比特幣等加密資產 \"不是貨幣_BAI

據CryptoGlobe消息,英國中央銀行行長AndrewBailey周二在2021年英國城市聯盟年會上談到了加密資產.

1900/1/1 0:00:00
Gate.io 已發DHX投票上線空投福利活動獎勵公告_GATE

Gate.ioDHX投票上線空投福利活動已圓滿結束,根據活動規則,我們已為符合規則的用戶發放了活動獎勵。用戶可進入“錢包—賬單明細”查詢獎勵發放情況。活動詳情及規則請點擊查看.

1900/1/1 0:00:00
Gate.io 已發LAT投票上線空投福利活動獎勵公告_GATE

Gate.ioLAT投票上線空投福利活動已圓滿結束,根據活動規則,我們已為符合規則的用戶發放了活動獎勵。用戶可進入“錢包—賬單明細”查詢獎勵發放情況。活動詳情及規則請點擊查看.

1900/1/1 0:00:00
在印尼,有群人靠“薅”NFT游戲“養家糊口”_NFT

今年3月,Beeple的作品在佳士得加密藝術品拍賣中拍出了6930萬美元天價。NFT也隨之一戰成名。質疑者認為這不過是借助區塊鏈技術跟風炒作,但支持者認為NFT可以改變金融和藝術世界.

1900/1/1 0:00:00
LOEx進取區6月21日13:09上線DERT

尊敬的LOEx用戶:LOEx進取區上線DERT!并開放DERT/USDT交易對具體時間如下:充提幣:6月21日11:09交易對:6月21日13:09注:未到充值開放時間請勿提前充值.

1900/1/1 0:00:00
ads