宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Filecoin > 正文

Solidity 0.8.5 发布

作者:

时间: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

}

DMG Blockchain Solutions 5月产出70.5枚BTC:6月9日消息,区块链和加密货币技术公司DMG Blockchain Solutions在今年5月以0.78 EH/s的算力产出70.5枚BTC。截至5月31日,DMG的比特币余额为507枚。(Globenewswire)[2023/6/9 21:27:08]

在0.8.5以前,不可能做到bytes4sig=bytes4(_payload);,相反,你必须使用以下方法进行转换:

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

Yul中的Verbatim

完整的功能文档可以在这里找到。

这个版本为Yul引入了一组verbatim内置函数,允许你在二进制中注入任意字节码。目前只能通过纯Yul来实现,也就是说,不能通过内联汇编来实现。

主要有两个用途:

使用Yul不知道的操作码。

产生未被优化器修改的特定字节码序列。

这些函数是verbatimi_o("",...),其中:

n是一个介于0和99之间的小数,用于指定输入栈槽/变量的数量。

m是一个介于0和99之间的十进制数,指定输出栈槽/变量的数量。

data是一个字符串常量,包含字节的序列。

Solana:漏洞攻击根本原因尚不清楚,约7767个钱包被盗:8月3日消息,Solana Status 发推称,一个漏洞允许恶意行为者从 Solana 的多个钱包中盗取资金。截至世界标准时间凌晨 5 点,大约有 7767 个钱包受到影响。该漏洞利用影响了多个钱包,包括 Slope 和 Phantom,移动钱包和插件钱包都受到影响。工程师目前正在与多个安全研究人员和生态系统团队合作,以确定漏洞利用的根本原因,目前尚不清楚。没有证据表明硬件钱包受到影响,强烈建议用户使用硬件钱包,并且不要在硬件钱包上重复使用助记词,创建一个新的助记词。被盗取的钱包应被视为已损坏并丢弃。[2022/8/3 2:55:40]

注意,在使用verbatim时有一些注意事项,关于它的细节可以在文档中找到。

用于新的操作码

作为一个实际的例子,我们可以用它来方便地将一个新提出的EVM操作码注入二进制。以提议的BASEFEE操作码为例,由于Solidity编译器目前不支持这个操作码,人们可以使用verbatim在Yul中实现它。

{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)

数据:当前Solana生态总市值为176.13亿美元,近24小时下跌4.9%:金色财经消息,据CoinGecko最新数据显示,当前Solana生态总市值为176.13亿美元(截至发稿时为17,613,081,582美元,近24小时下跌4.9%),24小时交易额为2,452,544,134美元。[2022/7/1 1:43:18]

上面的代码将产生一个dup1操作码来检索x,后面直接是600202。该代码被假定为消耗x的值,并在堆栈的顶部产生结果。然后编译器生成代码,为double分配一个堆栈槽,并将结果存储在那里。

用于Optimism使用场景

第二个使用场景对于像Optimism这样的第2层解决方案来说是很有用的,以及其他类似的情况,比如字节码分析或调试。Optimism目前使用一个自定义的Solidity编译器,因为他们模拟了智能合约的执行,其中对状态的改变都不会直接执行,而是由对管理人合约的调用来代替,该合约存储了这些改变以备验证。这方面的问题是检查合约是否符合这些限制,特别是由于这必须由链上欺诈检测机制来完成。他们所做的是,检查合约是否使用了任何一个改变状态的操作码,除了调用管理人合约的call操作码之外。为了正确检测这个异常,导致这个call操作码的操作序列必须有一个特定的形式,通常,Solidity优化器会进行一些重新排列,并破坏这个形式。幸运的是,verbatim可以解决这个问题,这样Optimism就不需要再依赖自定义的Solidity编译器,可以使用所有后来的Solidity编译器版本而不需要修改。

Optimism编译器可以采用由Solidity编译器生成的Yul代码,附加以下Yul辅助函数,并在语法上将所有改变状态的内置函数调用替换为其ovm_对应的函数。例如,所有的sstore(x,y)调用被ovm_sstore(x,y)调用所取代。在这种替换之后,Yul优化器甚至可以再次运行。(这段代码只说明了sstore。)

Solana Labs推出支付协议 Solana Pay,支持USDC和SOL:2月1日消息,SolanaLabs官方宣布推出SolanaPay支付协议,让商家可以直接从消费者那里接受加密支付,目前支持USDC稳定币、Solana的原生代币SOL以及其他基于Solana的代币。SolanaLabs表示,交易将是即时完成的,商家也能收到「实时」付款。

据悉,SolanaLabs与Circle、Checkout.com和支付处理公司Citcon合作开发了SolanaPay,并与Phantom、FTX和Slope的数字钱包集成。此外,SolanaLabs还在与Shopify合作,让其平台商家通过SolanaPay接受加密支付,但目前相关集成尚未生效。[2022/2/2 9:26:53]

///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。

Solana生态AMM协议Cyclos完成210万美元融资:9月6日消息,Solana生态去中心化交易平台Cyclos宣布完成210万美元融资,本轮融资由CMSHoldings、Hashkey、SolanaCapital、HuobiVentures、Coin98Ventures、MXC、Gate.io、SkyvisionCapital、PetrockCapital、IllusionistGroup、CryptomeriaCapital、DigiStrats,以及YoubiCapital参投。Cyclos预计将于2021年第三季度发布其V1版本。Cyclos是在Solana上搭建的集中流动性做市商平台。此前曾于8月17日完成100万美元种子轮融资。[2021/9/6 23:04:46]

完整的更新日志

语言特性方面

允许从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通信堆栈」

标签:SOLSTOSolanaOLAsolana币发行价格crystosolana币今日价格ELON BUYS COKE COLA

Filecoin热门资讯
小安论币:虚拟货币最坏的结果会怎么样?

区块链行业是新兴产业,虚拟数字货币,有无数的大型科技企业进入,也有无数的技术人员进入。按照道理来说,世界中上层的精英都在这个行业辛苦耕耘,很难出现崩盘的情况.

1900/1/1 0:00:00
Gate.io 每日行情(6.18):加密市场再度下行,四川雅安清理整顿矿企

截止到北京时间12:15,比特币现货价格为37830.67美元,以太坊现货价格为2338.79美元。受高通胀预期和四川雅安将大规模清理整顿当地矿企影响,主流加密货币从17日傍晚其开始持续跳水.

1900/1/1 0:00:00
远古项目 Dfinity 近 7 天跌幅 29% 居首 与以太坊、Filecoin 经济模型对比

根据银保监会等五部门发布的《关于防范以“虚拟货币”“区块链”名义进行非法集资的风险提示》,请读者遵守所在地区法律法规,_本文内容报道不对任何经营与投资活动推广进行背书,请投资者提高风险防范意识.

1900/1/1 0:00:00
以太坊价格持续上涨的原因都有哪些

随着比特币价格突破了历史新高,其他虚拟货币也开始迎来了新一轮的炒作热潮,虽然市场上主流的虚拟货币的价格的波动性极为强烈,但从近十年来的趋势来看,这些虚拟货币的价格大多都是在上涨趋势之中的.

1900/1/1 0:00:00
强支撑到底强不强? 院长说币行情分析(6/18)

本公众号的文章只做研究、学习和交流使用,不具有任何的操作指导意义!币圈唯一每天坚持视频分析行情的公众号!今天没有视频,只有文字,各位见谅~预计明、后两天是文字分析,之后重回视频分析~昨天第一天回归,结果就翻车了~~~,不得不感叹.

1900/1/1 0:00:00
Bibox将于2021年7月6日上线 Anonymous Network (AYS)

尊敬的Bibox用户: Bibox创新区将于2021年7月6日(UTC8)上线AnonymousNetwork(AYS).

1900/1/1 0:00:00