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。

Solidity开发注意的更多相关文章

  1. 智能合约 solidity 开发的环境基本搭建

    以太坊Dapp开发快速入门 以太坊为开源社区,虽然设计东西都很优秀,但是组件十分的杂乱,因此下面首先简单介绍下以太坊的一些常用组件以及各种工具介绍 Geth Geth是由以太坊基金会提供的官方客户端软 ...

  2. Solidity开发、测试、部署

    这篇文章很详细的列举了几种方式来开始solidity开发: https://medium.com/@davekaj/solidity-tips-and-tricks-for-beginners-bui ...

  3. win10 solidity开发环境搭建

    1. 软件安装 1) 安装nodejs 安装完成后将node.exe所在路径加入环境变量PATH中,以便在cmd命令行中直接使用node和npm命令 下面的操作在git bash下进行 2) 安装so ...

  4. Solidity 智能合约开发

    需要专用浏览器或部署节点支持. Solidity (中文:固态,固体)是一种语法与Javascript相似的高级语言,它为Ethereum虚拟机(EVM)编译代码而设计. Solidity是静态类型的 ...

  5. Solidity构造函数和析构函数

    构造函数:当方法名字和合约名字相同的时候,这个就是构造函数,构造函数在合约对象创建之后执行的 contract Person{ function Peron(){//构造函数Person ... } ...

  6. 区块链入门(5)Truffle 项目实战,Solidity IDE, 智能合约部署

    在上一张我们学习了Truffle项目的创建,部署等相关内容,今天我们就来实战一下. 今天我们要做3件事: 1) 学习搭建一个Solidity IDE(Remix). 2) 使用这个Solidity I ...

  7. solidity如何拼接字符串?

    当你开始学习使用solidity开发以太坊智能合约之后,很快你会碰到一个问题: 一.在solidity中该如何拼接字符串? 可能你已经试过了,下面的代码试图把两个字符串使用相加的运算符连接起来,但是这 ...

  8. Solidity notes

    1. 查询transaction历史记录 https://forum.ethereum.org/discussion/2116/in-what-ways-can-storage-history-be- ...

  9. Solidity合约中的整数溢出漏洞事件

    事件 2018年4月23日 BEC 一夜被偷64亿 2018年4月25日 SMT 再爆类似漏洞,火币Pro和OKEx相继暂停了SMT交易 2018年4月25日 BEC.SMT现重大漏洞,这8个智能合约 ...

随机推荐

  1. 第一册: lesson 129。

    原文: Seventy miles an hour. question: What does Ann advise her husband to do next time? Look,Gary! Th ...

  2. 关于logging模块

    from logging.handlers import TimedRotatingFileHandle #日志文件控制(日志删除时间设置) import logging logger=logging ...

  3. jieba分词及词频统计小项目

    import pandas as pd import jieba import jieba.analyse from collections import Counter,OrderedDict ji ...

  4. centos 6.5 忘记用户名和密码

    1,启动虚拟机,出现下面的倒计时界面时,按键盘上的e键 (说明:要确保光标此时已经在虚拟机内了,要不然,按了e键,也是在windows内,无效.e代表edit,启动前编辑) 2,进入如下后界面,再按e ...

  5. centos7服务器部署django项目。

    用到的工具,xftp(文件互传),xshell(远程连接) aliyun服务器防火墙开启的端口.80,22(ssh),3306(mysql),8000,9090 部署项目: 1,安装nginx 1&g ...

  6. 装饰器vue-property-decorator

    接触到了新的vue项目,使用vue+ts+vue-property-decotator来进行项目的简化,一时间语法没有看懂,所以花时间学习这个装饰器的包. 1.装饰器 @Component(optio ...

  7. jQuery--data()方法

    data() 函数用于在当前jQuery对象所匹配的所有元素上存取数据. 通过data()函数存取的数据都是临时数据,一旦页面刷新,之前存放的数据都将不复存在. 该函数属于jQuery对象(实例).如 ...

  8. [教程]Ubuntu16.04安装TeX Live

    [教程]Ubuntu16.04安装TeX Live step 1 戳这里下载镜像 (只需要下载texlive.iso) 在终端输入 sudo apt-get install perl-tk step ...

  9. MongoDB shell 1 数据库方法

    方法名 描述 db.cloneDatabase() 从指定主机上克隆数据库 db.currentOp() 显示当前正在进行的操作 db.commandHelp() 返回数据库命令的帮助信息 db.cr ...

  10. 08_MSTP(数通华为)

    1. 网络拓扑 2. SW1配置[SW1]vlan batch 10 20 30 40[SW1]stp mode mstp 进入MSTP配置视图,MSTP域名为huawei,同时配置VLAN到实例的映 ...