21026 large

152 孤荷凌寒自学第 0238 天_区块链第 152 天同步学习 solidity0.7 版

941xue · 于 发布 · 119 次阅读

孤荷凌寒自学第0238天
区块链学习第152天
NFT049_同步学习solidity0.7版
(文末有具体的学习过程录屏视频地址等)

笔记合集在github上:
https://github.com/lhghroom/Self-learning-blockchain-from-scratch

【主要内容】
今天尝试解决交易NFT时的购买操作不能完成,仍然失败了,共耗时30分钟。
(此外整理作笔记花费了约36分钟)
详细学习过程见文末学习过程屏幕录像。

【solidity0.7.0学习笔记】
https://learnblockchain.cn/docs/solidity/layout-of-source-files.html
一、版本标识Pragmas
认真阅读官方文档,才明白过来,^符号在版本标识中意思 只是,在当前二级版本号范围内有效。
如:
pragma solidity ^0.5.2;
这样,源文件将既不允许低于 0.5.2 版本的编译器编译, 也不允许高于(包含) 0.6.0 版本的编译器编译(第二个条件因使用 ^ 被添加)。 这种做法的考虑是,编译器在 0.6.0 版本之前不会有重大变更,所以可确保源代码始终按预期被编译。 上面例子中不固定编译器的具体版本号,因此编译器的补丁版也可以使用。
不是我之前理解 的那样,只要版本高于0.5.2就可以,原来是有上限的(到0.6之下)

二、ABI增强测试功能标识 ABIEncoderV2
新的 ABI 编码器可以用来编码和解码嵌套的数组和结构体,当然这部分代码还在优化之中,他没有像之前 ABI 编码器 那样经过严格的测试,我们可以使用下面的语法来启用它 pragma experimental ABIEncoderV2; 。

【定位到了之前nft资产交易合约中buy方法中的失败语句】
通过排除方法进行筛查,最终成功定位了buy方法中的失败语句,原来是:
nonFungible.safeTransferFrom(owner, msg.sender, assetId); //完成这个NFT资产的归属节点的转移 (交货)
只注释掉这一句语句之后,合约调用就不会失败了
然而也发现像收款,找零等操作,实际也没有执行,原因不明。

【欢迎大家加入[就是要学]社群】
如今,这个世界的变化与科技的发展就像一个机器猛兽,它跑得越来越快,跑得越来越快,在我们身后追赶着我们。
很多人很早就放弃了成长,也就放弃了继续奔跑,多数人保持终身不变的样子,原地不动,成为那猛兽的肚中餐——当然那也不错,在猛兽的逼迫下,机械的重复着自我感觉还良好地稳定工作与生活——而且多半感觉不到这有什么不正常的地方,因为在猛兽肚子里的是大多数人,就好像大多数人都在一个大坑里,也就感觉不出来这是一个大坑了,反而坑外的世界显得有些不大正常。
为什么我们不要做坑里的大多数人?
因为真正的人生,应当有百万种可能 ;因为真正的一生可以有好多辈子组成,每一辈子都可以做自己喜欢的事情;因为真正的人生,应当有无数种可以选择的权利,而不是总觉得自己别无选择。因为我们要成为一九法则中为数不多的那个一;因为我们要成为自己人生的导演而不是被迫成为别人安排的戏目中的演员。
【请注意】
就是要学社群并不会告诉你怎样一夜暴富!也不会告诉你怎样不经努力就实现梦想!
【请注意】
就是要学社群并没有任何可以应付未来一切变化的独门绝技,也没有值得吹嘘的所谓价值连城的成功学方法论!
【请注意】
社群只会互相帮助,让每个人都看清自己在哪儿,自己是怎样的,重新看见心中的梦想,唤醒各自内心中的那个英雄,然后勇往直前,成为自己想要成为的样子!
期待与你并肩奔赴未来!

QQ群:646854445 (【就是要学】终身成长)

【原文地址】
https://www.941xue.com/content.aspx?k=941XUEBSBQNZ91398999621111300621
【同步语音笔记】
https://www.ximalaya.com/keji/19103006/369284958

【学习过程屏幕录屏】
https://www.bilibili.com/video/BV1da4y1n7AW/

  • 暂无回复。