https://zhuanlan.zhihu.com/p/54169418
随着solidity 0.5.0 nightly build版本的稳步推进,正式版也将在不久的将来与开发者见面.作为一个大版本更新,新版引入了很多特性,也废弃了很多关键字,比如
.call()不仅可以获知远程调用执行成功与否,还将获得远程调用执行的返回值
ABI解码做了新的处理规范,有效防御了"短地址攻击"
address地址类型细分成 address和 address payable
uintY和 bytesX不能直接转换
回退函数必须显式声明为 external可见性
构造函数必须用 constructor关键字定义
用于抛出异常的 throw关键字弃用, 函数状态可变性修饰符必须用 view,不能混用 constant和 view
…
下面我们将对这些改变一一予以介绍,最后给出一个示例代码,对比展示新旧版solidity代码写法的区别,供大家参考.
显式声明
函数可见性
函数可见性必须显式声明. 之前, 函数如果不显式声明,将默认 public可见性.
public: constructor构造函数必须声明为 public可见性,否则编译报错.
external: 回退函数(fallback function), 接口(interface)的函数必须声明为 external可见性,否则编译报错.
存储位置
结构体(struct),数组(array),映射(mapping)类型的变量必须显式声明存储位置( storage, memeory, calldata),包括函数参数和返回值变量都必须显式声明.
external 的函数参数需显式声明为 calldata.
合约与地址
contract合约类型不再包括 address类型的成员函数,必须显式转换成 address地址类型才能使用 send(), transfer(), balance等与之相关的成员函数/变量成员.
address地址类型细分为 address和 address payable,只有 address payable可以使用 transfer(), send()函数.
address payable类型可以直接转换为 address类型, 反之不能.
但是 address x可以通过 address(uint160(x)),强制转换成 address payable类型.
https://github.com/google/material-design-lite
中共的底線港獨是不能碰,打砸搶也不行,平和抗議示威肯定可以,希望香港不要踩底線啊~~
https://www.youtube.com/watch?v=HAP3QCgD6YA 郭文貴資助梁頌恆搞港獨(美國) – 錢、簽證、政治保護都準備好了
https://youtu.be/-FuVqqPCy98?list=FLGJ0IWhI8tRS57Y4rmEu1HA&t=695 六四 美國 – 護照
https://www.youtube.com/watch?v=Y3AUKmNorPQ&list=FLGJ0IWhI8tRS57Y4rmEu1HA&index=26&t=0s 寒梅的六四
(這人影片有爭議,但主要看當初留下來的影片和一些資料)
https://youtu.be/SE6g2DVqr_4?list=PLBAD92DFCE1748197&t=235 西藏 美國 CIA介入 提供武器判亂 獨立
https://youtu.be/EM_48sSLS7o?t=303 西藏 嘉樂頓珠 達懶二哥回憶錄 接觸CIA,給支持
與美國中情局的合作,是我一生都懊悔的事情
https://youtu.be/O0fhyJxUcW0?list=FLGJ0IWhI8tRS57Y4rmEu1HA&t=355 香港遠東情報中心 斯諾登 菱鏡計畫
https://zh.wikipedia.org/wiki/%E7%A8%9C%E9%8F%A1%E8%A8%88%E7%95%AB 菱鏡計畫 2007年 美國絕密級網絡監控計劃
https://youtu.be/BrruzdYuZiA?t=55 法國報紙內容
https://www.storm.mg/article/31057 台灣竟也不可免地陷入此一偵監網羅
https://zh.wikipedia.org/wiki/%E9%9C%87%E7%BD%91 震網(Stuxnet) 目標為伊朗使用西門子控制系統的高價值基礎設施
美國官員承認這個病毒是由美國國家安全域在以色列協助下研發,以奧林匹克網路攻擊行動為計劃代號,目的在於阻止伊朗發展核武
【竹老板】大陸人可以批評自己的國家和官員嘛?//批評官員等於愛國嘛?
https://youtu.be/W29_U-Ev8MI?t=177
【竹老板】扯闲篇:墙倒了谁倒霉
https://youtu.be/1Z70CwAiuDc?t=72
https://youtu.be/FiyJf-8lMmo?t=193 德國知事從愛台灣 到 和平統一無望
https://youtu.be/FiyJf-8lMmo?t=980 台灣情 沒防火牆後 的 厭惡
https://www.etherniti.org/blog/development/swagger/
http://dev.proxy.etherniti.org/swagger/
https://docs.etherniti.org/architecture/benchmarks/performance_test/
https://docs.etherniti.org/architecture/optimizations/address-validation/
package main import ( "fmt" "regexp" ) var ( re := regexp.MustCompile("^0x[0-9a-fA-F]{40}$") ) func IsValidAddress(v string) bool { return re.MatchString(v) } func main() { fmt.Println(IsValidAddress("0x323b5d4c32345ced77393b3530b1eed0f346429d")) // true fmt.Println(IsValidAddress("0xXYZb5d4c32345ced77393b3530b1eed0f346429d")) // false }
https://adon988.logdown.com/posts/7831077-the-corresponding-way-of-node-operation-in-the-formal-environment
在這裡要探討關於 node 到底適不適合在正式環境運行,在一開場首先說明我"過去"對於這個問題的看法,答案是:不適合。