zoukankan      html  css  js  c++  java
  • Solidity开发注意

    pragma版本:1、版本要高于0.4.24才可以编译;2、高于0.5的版本则不可编译;3、第三位的版本号可以变,留出来用做bug可以修复(如0.4.1的编译器有bug,可在0.4.2修复,现有合约不用改代码)。

    注释:1、单行注释// 2、多行注释/*....*/ 3、natspec 注释,它们是用三个反斜杠(///)或双星号开头的块(/** ... */)书写,它们应该直接在函数声明或语句上使用。

    事件:以太坊虚拟机日志工具的方便接口。

    结构体:可以将几个变量分组的自定义类型(自定义复杂变量的模板)。

    状态变量可以被定义为constant,常量。这样的话,它必须在编译期间通过一个表达式赋值。赋值的表达式不允许:1、访问storage;2、区块链数据,如now,this.balance,block.number;3、合约执行的中间数据,如msg.gas;4、向外部合约发起调用。注意:不是所有的类型都支持常量,当前支持的仅有值类型和字符串。

    Fallback 方法:

    function () public payable {
    }

    这个没有任何名字的是 Fallback方法。一个合约只能存在一个。这个方法没有参数,也没有任何返回值。如果有人调用这个合约,但是指定的方法找不到,它会被触发。还有,当这个合约地址单纯地收到 Ether 的时候(比如他人转账到这个合约地址),这个方法也会被调用。所以,它必须被标记为 payable 。不然,这个合约地址就没法通过普通的交易接收 Ether 了。要注意的是,如果这个方法里面有逻辑,一定要确保它的 Gas 消耗要小于 2300。

  • 相关阅读:
    [JLOI2015]管道连接
    [TJOI2015]旅游
    [TJOI2015]组合数学
    [CSP-S2019] 树上的数
    [NOI2020] 超现实树
    1:关于证书服务器
    vue:实现竖向滚动条效果并实现锚点定位跳转
    修改ElementUI的样式----vue如何控制步骤条steps圆圈的大小 data-v-
    PyCharm 查看变量值
    PyCharm 单步执行单步调试不能停到断点
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/10510591.html
Copyright © 2011-2022 走看看