孤荷凌寒自學第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/