火星链 火星链
Ctrl+D收藏火星链

LID:如何将你的合约升级到Solidity 0.8?

作者:

时间:1900/1/1 0:00:00

我们离 Solidity 1

}contract Solidity08 {    function test() external pure returns(uint256) {        // 不使用SafeMath,返回 type(uint256)

        return x;    }}2. 无效的操作码被还原取代到目前为止,某些操作会导致 INVALID操作码的执行。这个操作码的问题是,它消耗掉所有剩余的 Gas。这显然是不好的且没必要。为什么要浪费 Gas,把它捐给矿工?

李礼辉:如何进行必要的数字金融制度建设等问题值得关注:12月31日,由清华大学经济管理学院数字金融资产研究中心主办的“数字金融:创新、发展与监管”高端研讨会中,中国银行原行长李礼辉表示,如何能满足适用于我国规模化可靠应用的需求、如何进行必要的数字金融制度的建设、负责数字人民币技术架构的研发、维护、运行等方面工作的机构体制如何设立及如何探索我国主导的全球化数字货币的可行路径是值得关注的重要问题。[2021/1/4 16:22:26]

更多细节,在这里查看 revert和 assert的区别。

现在 Solidity 使用revert操作码。为了区分常规 revert 和系统内部错误(panic),Solidity 在返回数据前加上一个标识符:

常规 Revert 错误以keccak256(Error(string))的前四个字节开始,等于0x08c379a0。

**系统内部错误(Panic)**以keccak256(Panic(uint256))的前四个字节开始,等于0x4e487b71。

Panic 有一个额外的错误标识。目前可用的 Panic 有:

币情观察室 | 如何操作超短线穿越牛熊高倍获利:4月9日16:00,金色盘面邀请行情大V Alnn做客金色财经《币情观察室》直播间,将分享《如何操作超短线穿越牛熊高倍获利》,敬请关注,扫描下图二维码即可观看直播![2020/4/9]

0x01: 使用 asset;

0x11: SafeMath 的溢出。

0x12: 除以 0。

0x21: 转换为不存在的枚举类型。

0x22: 存储字节数组编码错误。

0x31: 在一个空数组上pop()。

0x32: 索引超长度异常。

0x41: 分配过多的内存或创建过大的数组。

0x51: 调用未初始化的内部函数类型的变量。

更多细节请参见文档中新的错误处理部分这里。

在大多数情况下,迁移应该是非常直接的。只有在一些情况下,你做奇怪的类型转换可能会变得更加困难。

你必须为迁移做出的改变包括:

ABIEncoderV2现在是默认自动激活。从 0.6 开始,Encoder 就不再是实验性的了,只是因为遗留的原因,保留了 pragma experimental这个名字。现在你不需要再加这行了。

肯尼亚成立了一个特别小组,研究如何利用人工智能和区块链等最新技术:肯尼亚成立了一个特别小组,研究如何利用人工智能和区块链等最新技术。“我们错过了互联网浪潮,赶上了移动技术……区块链是下一个浪潮,我们必须参与其中。”信息部部长约瑟夫·穆切鲁(Joseph Mucheru)表示,在其他用途中,区块链可以帮助组织政府存储的土地记录,这对那些想要购买、出售或核实有关土地信息的人来说,是一种持续性的保障。[2018/5/5]

移除任何 Openzeppelin SafeMath,你不再需要它了。

可能需要进行一些类型转换。

msg.sender和 tx.origin默认不属于 payable 类型。将 msg.sender.transfer改为 payable(msg.sender).transfer。

只有在符合给定类型的情况下,才允许类型转换,所以uint256(-1)将不再工作。使用type(uint256).max代替。

当多次改变符号时,类型转换在某些情况下会受到限制,因为类型转换的顺序可能会对结果产生影响。你现在会看到一个类似 TypeError 的错误。不允许从 int256到 bytes32进行显示的类型转换,得先手动转换为 uint256。

坦桑尼亚银行正在研究如何管理数字货币:随着坦桑尼亚人对数字货币投资的增加,坦桑尼亚银行(BoT)正在研究如何管理新现象。BoT国家支付系统官员Bernard Dadi称,数字货币概念目前仍是新的,全球各地的中央银行仍在研究应对这项技术的对策。数字货币可供任何人使用,这使得监管变得更加困难。[2018/3/8]

修饰组合

myContract.functionCall{gas: 10000}{value: 1 ether }()改为:

myContract.functionCall{gas: 10000, value: 1 ether }()。

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

Solidity 0.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

Cell Network: https://www.cellnetwork.io/?utm_souce=learnblockchain

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny 熊

标签:NBSBSPSOLLIDNBS价格BSPAY币sol币最新消息分析SOLID

中币交易所热门资讯
PTI:2.17晚间行情:合约多单吃肉 现货中线买什么

文章系金色财经专栏作者币圈北冥供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别防上当.

1900/1/1 0:00:00
区块链:经济参考报:通胀预期对比特币暴涨起助推作用

原文标题:上半年全球通胀风险有限但需未雨绸缪近来,国际金融市场上对通货膨胀的关注再度升温。与此同时,通胀预期也对比特币等数字货币的暴涨起到助推作用.

1900/1/1 0:00:00
COI:CoinList新财富密码:去中心化资管协议Babylon、波卡平行链Clover等

随着代币价格市场火热,加密投资的私募市场继续升温。在几次大型代币发行和过去几个月市场看涨之后,加密领域的精明人士目前拥有充裕的现金,他们正在寻求在早期阶段将资本重新引入市场,希望获得更大的回报.

1900/1/1 0:00:00
GAS:晚间必读五篇 | 时隔一年“3·12”复现?

1.时隔一年“3·12”复现?加密货币再遭血洗。2月22日至23日,加密货币市场连续下跌。据币coin 数据显示,截至16时过去24小时合约市场全网总计爆仓42.2亿美元,约合272亿人民币.

1900/1/1 0:00:00
okex:红包新玩法推动数字化经济发展 欧易OKEx春节发放247.5枚比特币

自2020年下半年开始,比特币的价格不断攀升,数次突破历史新高,许多传统机构开始入局加密资产,相关的话题频频出现在热搜榜,让越来越多的普通用户了解到了“数字黄金”的价值与魅力.

1900/1/1 0:00:00
DEFI:金色DeFi日报 | V神:虽然Uniswap比传统订单簿交易效率要低 但其更成功

DeFi数据1.DeFi总市值:804.87亿美元 市值前十币种涨跌幅,金色财经制图,数据来源Coingecko2.过去24小时去中心化交易所的交易量:24.1亿美元 交易量排名前十的DEX 数.

1900/1/1 0:00:00