solidity是一个语法类似与JavaScript的、面向智能合约的高级语言,编译后的二进制在evm中运行。solidity是一个静态类型语言,支持继承、库访问、复杂的用户定义类型等特性。solidity高级合约语言目前在以太坊的合约中使用最为广泛,本书将讲述该语言的基础构成。
图灵完备的智能合约的强大之处在于,用于可以使用高级编程语言实现自定义的公有链上资产,并进行链上资产相关的业务操作。以智能合约最简单的应用,代币发行实例:它基于比特币的脚本语言难以实现,然而在以太坊上却可以通过简单的几行代码实现。
实现一个简单的代币合约,该合约包括铸币发行和代币转让。
声明solidity版本
public声明课试其他合约访问到这个数据状态。
mapping是复杂的数据类型,维护一组键值对数据状态
合约初始化时,设定合约的创建者为铸币者。
代币铸币发行
只有合约的建立者才可以铸币
代币转账发行
只要余额充足,任何发送者都可发起send交易,转账给他人。
发送event通知,转账成功。系统通过日志记录,并用最多3个参数进行索引,提供给本合约事件监听者。