我们离Solidity1.0的发布越来越近了。Solidity0.8在0.7发布之后仅5个月就发布了!
登链社区正在同步翻译Solidity0.8的文档
今天我们就来探讨一下如何把合约迁移升级到0.8版本......
尤达宝宝发布
0.8新功能和如何使用
我们来看看两个大的新功能:集成的SafeMath和新的错误处理。
1.集成SafeMath
SafeMathMeme
没错,你不需要再导入OpenzeppelinSafeMath了。最重要的是,你不需要做任何事情就可以激活Solidity集成的SafeMath。只要写上a+b,就会在溢出时自动回退交易。
路透社:SBF欺诈指控回避了关于美国法律如何看待加密货币的争论:1月9日消息,Sam Bankman-Fried可能会发现很难辩诉应该撤销针对他的欺诈指控,因为美国法律如何对待加密货币存在不确定性,就像涉及数字资产的刑事案件中其他被告一样完成了。法律专家表示,这是因为曼哈顿联邦检察官对现已破产的加密货币交易所 FTX 创始人的指控在很大程度上回避了正在进行的关于加密货币是否应作为证券或商品进行监管的辩论。但据专家称,这种不确定性与针对SBF的大部分指控无关。虽然他面临一项串谋证券欺诈的指控,但该指控称他误导了FTX的股票投资者,并未涉及交易所交易资产的性质。[2023/1/9 11:02:36]
你可能会在Remix等工具中看到如下错误提示,因为0.8还没有完全支持。比如溢出还没有给出确切的原因。
?transact?to?Solidity08.test?errored:?VM?error:?revert.?revert
但这种情况在未来应该会有所改变。
如果你确实就希望代码能够溢出呢?还是非常在意Gas费了?
“如何看待比特币大跳水?”登上知乎热榜:金色财经报道,根据知乎首页,提问“如何看待比特币大跳水?”登上知乎热榜,现排名第3位,热度686万。[2021/1/12 15:57:18]
则通过unchecked形式包装语句来停用SafeMath:
contract?Solidity08?{????function?test()?external?pure?returns(uint256)?{????????//?默认使用?SafeMath?,此时会回退????????uint256?x?=?0;????????x--;????????return?x;????}}contract?Solidity08?{????function?test()?external?pure?returns(uint256)?{????????//?不使用SafeMath,返回?type(uint256).max????????uint256?x?=?0;????????unchecked?{?x--;?}????????return?x;????}}
北冥社区创始人北冥:数字资产价格走势无法提前预知,核心在于如何应对:6月19日19:00,MXC抹茶特邀分析师,北冥社区创始人北冥做客MXC抹茶社区进行分享。北冥表示:“交易是对认知的变现,通过数字资产交易获取收益,离不开技术分析。均线缠论系统,有助于远离盲目多空。“中枢”一词源自《缠论》第108课,《缠论》作者禅师通过归纳演绎等数学方法,对任何走势进行统一的定义和分类,并给出一个较为合理的解决方案,《缠论》最厉害的地方就是“完全分类“,大部分走势都是无法提前被预知的,核心就在于应对。缠者,价格重叠区间也,买卖双方阵地战之区域也;禅者,破解之道也。以阵地战为中心,比较前后两段之力度大小。大者,留之,小者,去之。”[2020/6/19]
2.无效的操作码被还原取代
到目前为止,某些操作会导致INVALID操作码的执行。这个操作码的问题是,它消耗掉所有剩余的Gas。这显然是不好的且没必要。为什么要浪费Gas,把它捐给矿工?
更多细节,在这里查看revert和assert的区别。
动态 | 巴西里约热内卢司法部门讨论区块链如何提高公众透明度:据Cointelegraph 12月6日消息,在由里约热内卢里约热内卢州司法学院(EMERJ)组织的一个常设论坛上,里约热内卢的司法部门将讨论区块链如何有助于提高公共透明度。[2019/12/7]
现在Solidity使用revert操作码。为了区分常规revert和系统内部错误,Solidity在返回数据前加上一个标识符:
常规Revert错误以keccak256(Error(string))的前四个字节开始,等于0x08c379a0。
**系统内部错误**以keccak256(Panic(uint256))的前四个字节开始,等于0x4e487b71。
Panic有一个额外的错误标识。目前可用的Panic有:
0x01:使用asset;
0x11:SafeMath的溢出。
0x12:除以0。
0x21:转换为不存在的枚举类型。
声音 | 赛迪智库张凯:区块链如何赋能数字经济和实体经济将是未来政策关注的重点:金色财经报道,赛迪智库工业经济研究所研究员张凯表示,当今社会是数据爆炸的时代,区块链能够几乎零成本地解决所有因信任不足导致的问题,是数据时代隐私和安全的最佳解决方案。区块链如何赋能数字经济和实体经济将是未来政策关注的重点,围绕数字金融、物联网、智能制造、供应链管理等,相关区块链创新应用的鼓励政策有望出台。同时,对于区块链技术应用行业乱象,相关规范政策也很有必要。张凯还表示,在产业上,随着国家明确表态支持区块链技术,各地区块链产业基金投向将更加明确,支撑区块链发展的基础设施有望迎来升级,同时带动区块链在税收、司法,不动产登记等政务领域,医疗、食品安全、公益等民生领域,供应链金融、保险、版权、跨境支付等商业领域迎来突破性应用落地。[2019/11/2]
0x22:存储字节数组编码错误。
0x31:在一个空数组上pop()。
0x32:索引超长度异常。
0x41:分配过多的内存或创建过大的数组。
0x51:调用未初始化的内部函数类型的变量。
更多细节请参见文档中新的错误处理部分这里。
如何迁移到Solidity0.8
在大多数情况下,迁移应该是非常直接的。只有在一些情况下,你做奇怪的类型转换可能会变得更加困难。
你必须为迁移做出的改变包括:
ABIEncoderV2现在是默认自动激活。从0.6开始,Encoder就不再是实验性的了,只是因为遗留的原因,保留了pragmaexperimental这个名字。现在你不需要再加这行了。
移除任何OpenzeppelinSafeMath,你不再需要它了。
可能需要进行一些类型转换。
msg.sender和tx.origin默认不属于payable类型。将msg.sender.transfer改为payable(msg.sender).transfer。
只有在符合给定类型的情况下,才允许类型转换,所以uint256(-1)将不再工作。使用type(uint256).max代替。
当多次改变符号时,类型转换在某些情况下会受到限制,因为类型转换的顺序可能会对结果产生影响。你现在会看到一个类似TypeError的错误。不允许从int256到bytes32进行显示的类型转换,得先手动转换为uint256。
修饰组合
myContract.functionCall{gas:10000}{value:1ether}()改为:
myContract.functionCall{gas:10000,value:1ether}()。
将x**y**z改为(x**y)**z,因为默认的执行顺序改变了。
将byte类型改为byte1。
我省略了一些细节,关于完整的变更日志和所有变更的细节,请查看文档这里。
来源: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
译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
标签:INBBASNBABASEcoinbase是正规平台吗coinbase下载appNBA价格coinbase下载苹果版
21日上午,美国规模最大的合规数字货币交易平台Coinbase宣布,其将通过直接上市的方式登录纳斯达克。或是受此消息影响,比特币短时间上涨约800刀,再次试探34000美元位置.
数字经济大势所趋赋能实体产业 巴比特资讯 刚刚 465 当前,全球经济越来越呈现数字化特征,人类社会正在进入以数字化为主要标志的新阶段.
这是历史罕见的IPO大年。从去年云计算公司Snawflake被巴菲特纳入「花名册」打新,到Wish、Airbnb、DoorDash等上市新秀,再到新晋科技独角兽云安全公司Lacework和媒体公.
Clubhouse爆火社交圈的同时,它和币圈也被千丝万缕地联系起来。2月1日,SpaceX和特斯拉创始人ElonMusk在Clubhouse上和粉丝们聊天,谈到比特币的盛宴自己迟到了,但自己是一.
火币生态链Heco挖矿火爆一时,吸引了大量投资者参与。为了方便投资者及时了解项目的头矿信息和挖矿流程,金色财经推出《“头矿”预告》.
原标题:矿工要过年,大饼要大跌?新加坡加密货币投资公司StackFunds发布的最新报告称,即将到来的中国农历新年假期可能对比特币价格产生间接影响,矿工抛售可能造成比特币价格大跌.