Solidity
文章平均质量分 68
佛系布偶
这个作者很懒,什么都没留下…
展开
-
solidity学习笔记(2)——状态变量和函数可见性
因为Solidity有两种函数调用:内部调用:不创建一个真实的EVM调用(也称为“消息调用”);外部的调用:要创建一个真实的EMV调用,在智能合约中,函数和状态变量的可见性可以分为四种, public , private , internal 和 external ,函数默认可见性是 public ,状态变量的默认可见性是 internal 。public - (任意访问,作为合约接口)可以通...原创 2018-10-13 12:46:05 · 1661 阅读 · 0 评论 -
solidity学习笔记(1)——智能合约的执行与代码结构概述
智能合约的代码结构废话不多说,先来一个智能合约的例子:pragma solidity ^0.4.4;/*pragma:版本声明Solidity:开发语言0.4.4:当前合约的版本,0.4代表主版本,4代表修复bug的升级版本^:代表向上兼容,0.4.4 ~ 0.4.9可以对我们当前的代码进行编译*/contract Person { uint _age; uint...原创 2018-09-29 13:55:58 · 1563 阅读 · 0 评论 -
solidity学习笔记(12)—— 单位和全局可变量
单位和全局可变量Ether单元一个字面上的数字可以带有wei,finney,szabo或者以太网的后缀,可以在以太网的子目录之间进行转换,其中没有后缀的以太网货币号被假定为魏。 2 ether == 2000 finney评估为true。时间单位可以使用文字数字后的秒,分,小时,天,周和年份进行后缀转换,其中以秒为单位,以下列方式将单位视为天真的时间单位:1 == 1 seconds...转载 2018-10-13 14:02:49 · 252 阅读 · 0 评论 -
solidity学习笔记(10)—— 事件、日志与交互(含实例)
事件是以太坊EVM提供的一种日志基础设施。事件可以用来做操作记录,存储为日志。也可以用来实现一些交互功能,比如通知UI,返回函数调用结果等。总的来说:事件就是当区块链某个函数被调用或执行的时候,被触发从而被前端获取或者记录到日志中的对象。一、事件的实现事件的实现是在合约对象中,分两步:1、定义事件类型2、实例化事件对象代码:pragma solidity ^0.4.19;...转载 2018-10-13 13:56:38 · 2150 阅读 · 0 评论 -
solidity学习笔记(9)—— 接口和抽象合约
一个合约如何读取其他合约的数据或调用其他合约的方法?接口的存在就是为了合约之间的通信。有两种实现方式:抽象合约 和 接口一、抽象合约抽象函数是没有函数体的的函数。如下:pragma solidity ^0.4.0;contract Feline { function utterance() returns (bytes32);}这样的合约不能通过编译,即使...原创 2018-10-13 13:14:06 · 4311 阅读 · 3 评论 -
solidity学习笔记(8)—— 函数修饰符及自定义修饰符
在Solidity中,函数修饰符规定了函数的行为、调用规则。在Solidity语言中预置的修饰符有如下一些:1、函数和状态变量可见性修饰符public:在外部和内部均可见(创建存储/状态变量的访问者函数)private:仅在当前合约中可见external: 只有外部可见(仅对函数)- 仅仅在消息调用中(通过this.fun)internal: 只有内部可见2、状态变量储存位置修饰符...原创 2018-10-13 13:09:19 · 2195 阅读 · 0 评论 -
solidity学习笔记(7)—— 元组:解构赋值和返回多个结果
Solidity内置支持元组(tuple),也就是说支持一个可能的完全不同类型组成的一个列表,数量上是固定的(Tuple一般指两个,还有个Triple一般指三个)。这种内置结构可以同时返回多个结果,也可用于同时赋值给多个变量。一、什么是元组?contract C { mapping(uint => string) public students; function ...转载 2018-10-13 13:05:53 · 3417 阅读 · 0 评论 -
solidity学习笔记(6)—— 数据类型详解和转换
目录:1、整型(int)2、地址类型(address)3、枚举类型(enum)4、结构体(struct)5、映射(mapping)6、数组(array)7、字符串和字节数组(string、bytes)Solidity有如下类型的数据:值类型:布尔类型(bool)、整型(int)、地址类型(address)、定长字节数组(bytes)、枚举类型(enum)、函数类型(func...原创 2018-10-13 13:03:35 · 6617 阅读 · 0 评论 -
solidity学习笔记(5)—— Storage(引用传递)和Memory(值传递)
Solidity中有两种类型:值类型和引用类型Solidity是静态类型的语言,有值类型和引用类型的区别。如果一个变量是值类型,那么当把它的值传给另一个变量时,是复制值,对新变量的操作不会影响原来的变量;如果该变量是引用类型,那么当它传值给另一个变量时,则是把该值的地址复制给新的变量。这样操作新变量也会导致旧变量的改变。值类型:布尔类型(bool)、整型(int)、地址类型(addre...原创 2018-10-13 12:57:08 · 2189 阅读 · 0 评论 -
solidity学习笔记(4)—— 调用外部函数以及关键字payable
在智能合约中,函数和状态变量的可见性可以分为四种, public , private , internal 和 external ,函数默认可见性是 public ,状态变量的默认可见性是 internal 。public - (任意访问,作为合约接口)可以通过内部调用或通过消息调用。对公共状态变量而言,会有的自动访问限制符的函数生成。private - (仅当前合约内)私有函数和状态变量仅仅在定...转载 2018-10-13 12:54:34 · 5349 阅读 · 1 评论 -
solidity学习笔记(3)——Solidity-合约属性和访问权限的继承
!!!重要!!!子合约只能继承父合约中的所有的public类型的函数,不能继承internal/private的函数pragma solidity ^0.4.4;contract Animal { string _birthDay; // 生日 int public _age; // 年龄 int internal _weight; // 身高 string...原创 2018-10-13 12:49:31 · 829 阅读 · 0 评论 -
solidity学习笔记(11)—— 错误处理和前置判断:require()、assert()和revert()
合约中有一些功能,只能被授权为 拥有者 的地址才能调用。传统的处理方式如下:Solidity 0.4.10之前(以及其后一段时间),这种强制授权处理方式很普遍:contract HasAnOwner { address owner; function useSuperPowers(){ if (msg.sender != owner) { throw;...原创 2018-10-15 14:08:21 · 1756 阅读 · 3 评论