-
Solidity-09-Structure of a Contract
Structure of a Contract
Solidity 中的契约类似于面向对象语言中的类。
每个合约都可以包含状态变量、函数、函数修饰符、事件、错误、结构类型和枚举类型的声明。
此外,合约可以继承自其他合约。
还有一些特殊类型的合约,称为库和接口。
关于合同的部分包含比本部分更多的详细信息,用于提供快速概述。
状态变量
状态变量是其值永久存储在合约存储中的变量。
/...
2022-05-22 01:22:02 |
Lang
-
Solidity-08-Layout of a Solidity Source File
Solidity 源文件的布局
源文件可以包含任意数量的合约定义、import、pragma 和 using for 指令和结构、枚举、函数、错误和常量变量定义。
SPDX 许可证标识符
如果智能合约的源代码可用,则可以更好地建立对智能合约的信任。由于提供源代码总是涉及版权方面的法律问题,Solidity 编译器鼓励使用机器可读的 SPDX 许可证标识符。
每个源文件都应以说明其许可...
2022-05-22 01:22:02 |
Lang
-
Solidity-07-Solidity by Example
投票
以下合约相当复杂,但展示了 Solidity 的许多功能。
它实现了一个投票合约。
当然,电子投票的主要问题是如何将投票权分配给正确的人以及如何防止操纵。
我们不会在这里解决所有问题,但至少我们将展示如何进行委托投票,以便同时自动计算投票并且完全透明。
这个想法是为每张选票创建一份合同,为每个选项提供一个短名称。
然后,担任主席的合约的创建者将分别授予每个地址的投票权。
...
2022-05-22 01:22:02 |
Lang
-
Solidity-06-Installing the Solidity Compiler
版本控制
Solidity 版本遵循语义版本控制。
此外,主版本 0(即 0.x.y)的补丁级别版本将不包含重大更改。
这意味着使用版本 0.x.y 编译的代码可以预期使用 0.x.z 编译,其中 z > y。
除了发布之外,我们还提供夜间开发版本,目的是让开发人员更容易尝试即将推出的功能并提供早期反馈。
但是请注意,虽然夜间构建通常非常稳定,但它们包含来自开发分支的前沿代码...
2022-05-22 01:22:02 |
Lang
-
Solidity-05-The Ethereum Virtual Machine
概述
以太坊虚拟机或 EVM 是以太坊中智能合约的运行时环境。
它不仅是沙盒,而且实际上是完全隔离的,这意味着在 EVM 内运行的代码无法访问网络、文件系统或其他进程。
智能合约甚至对其他智能合约的访问权限有限。
账户 Accounts
以太坊中有两种账户共享相同的地址空间:由公钥-私钥对(即人类)控制的外部账户和由与账户一起存储的代码控制的合约账户。
外部账户的地址由公钥确定,...
2022-05-22 01:22:02 |
Lang
-
Solidity-04-Blockchain Basics
区块链基础
区块链作为一个概念对于程序员来说并不难理解。
原因是大多数复杂性(挖掘、散列、椭圆曲线密码学、点对点网络等)只是为了为平台提供一组特定的功能和承诺。
一旦你接受了这些给定的功能,你就不必担心底层技术——或者你是否必须知道亚马逊的 AWS 在内部是如何工作的才能使用它?
Transactions 交易
区块链是一个全球共享的交易数据库。
这意味着每个人都可以通过参与网络...
2022-05-22 01:22:02 |
Lang
-
Solidity-03-Subcurrency Example
子货币示例
以下合约实现了最简单的加密货币形式。
该合约仅允许其创建者创建新硬币(可能有不同的发行方案)。
任何人都可以互相发送硬币,而无需使用用户名和密码进行注册,您所需要的只是一个以太坊密钥对。
pragma solidity ^0.8.4;
contract Coin {
// The keyword "public" makes variables
// a...
2022-05-22 01:22:02 |
Lang
-
Solidity-02-Introduction to Smart Contracts
一个简单的智能合约
让我们从一个基本示例开始,该示例设置变量的值并将其公开以供其他合约访问。
如果您现在不了解所有内容也没关系,我们稍后会详细介绍。
Storage Example
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.16 <0.9.0;
contract SimpleStorage {
...
2022-05-22 01:22:02 |
Lang