这是首次讨论智能合约设计模式的一篇论文,点击「阅读原文」可查看论文原文,本次分享的是摘要和介绍部分
Solidity v0.6.0带来的那些变化, 一起来看看.
在编写合约时,有时候需要使用汇编来帮助我们完成Solidity没法完成的事情(得益于汇编可以直接与EVM交互), 本文介绍了使用汇编的优缺点及如何在Solidity中编写汇编。
本文介绍以太坊智能合约开发语言 Solidity 中的位操作运算符,以及如何使用这些 Solidity 位操作符对合约数据执行位操作运算,例如与、或、非、异或等,同时也介绍如何实现 Soldity 不支持的取反、移位等操作。
这又是 Solidity 一个较大版本的升级,带来了一些对老版本不兼容的一些变化。
本节将列出一些陷阱和一般性的安全建议: 如 重入问题,gas 限制,tx.origin
本指南旨在约定 solidity 代码的编码规范。本指南是不断变化演进的,旧的、过时的编码规范会被淘汰, 而新的、有用的规范会被添加进来。
在 以太坊Ethereum 生态系统中, 应用二进制接口Application Binary Interface(ABI) 是从区块链外部与合约进行交互以及合约与合约间进行交互的一种标准方式。
Solidity 定义了一种汇编语言,在没有 Solidity 的情况下也可以使用。汇编语言也可以嵌入到 Solidity 源代码中当作“内联汇编”使用。
Solidity 合约类似于面向对象语言中的类。文档介绍:创建合约、函数可见性、函数修饰器、事件、继承、抽象合约、接口、库、Using For。
JavaScript 中的大部分控制结构在 Solidity 中都是可用的,除了 switch 和 goto。 因此 Solidity 中有 if,else,while,do,for,break,continue,return,? : 这些与在 C 或者 JavaScript 中表达相同语义的关键词。
Solidity 在全局命名空间中已经存在了(预设了)一些特殊的变量和函数,他们主要用来提供关于区块链的信息或一些通用的工具函数。
以太币Ether 单位, wei , finney ,szabo, ether 秒是缺省时间单位, 数字后面带有 seconds、 minutes、 hours、 days 和 weeks 的可以进行换算
Solidity 是一种静态类型语言,这意味着每个变量(状态变量和局部变量)都需要在编译时指定变量的类型。
每个合约中可以包含 状态变量、 函数、 函数 、事件 Event、 结构体、 和 枚举类型 的声明,且合约可以从其他合约继承。 还有一些特殊的合约,如: 库 和 接口.
Solidity 源文件中可以包含任意多个合约定义 、导入源文件指令 和 版本标识 指令。
通过案例学Solidity, 学习库的使用
根据例子学习Solidity,以太坊上实现一个支付通道。 通过使用密码签名技术可以在相同的参与者之间 安全的、重复的、免手续费 的转移以太币。
展示如何轻松地在以太坊上创建一个秘密竞价的合约, 从 简单的公开拍卖 到 秘密竞拍(盲拍)