LP流动性质押DAPP详情讲解源码搭建

北京中科白癜风医院在哪 http://nb.ifeng.com/a/20191105/7860025_0.shtml

Solidity介绍

Solidity是以太坊开发人员使用的编程语言,用来编写智能合约,运行在以太坊虚拟机(EVM)上。

如果要开发一个去中心化的DApp,需要用React、HTML、CSS等前端技术将用户页面和智能合约结合。

Solidity文件结构

一个Solidity文件后缀为.sol,文件中包含许可声明、文件编译指示、文件导入标识以及任意数量的合约定义,包括变量、常量、构造、函数、事件、结构体、错误处理等。

许可声明

由于提供源代码总是涉及版权方面的法律问题,Solidity编译器鼓励使用机器可读的SPDX许可证标识符,每个源文件都应以说明其许可证的注释开头:

//SPDX-License-Identifier:MIT

如果不想指定许可证或者源代码不是开源的,可以使用特殊值UNLICENSED,其他值可以参考SPDXlicenses

编译指示

通过pragma关键字指定源代码使用哪个版本的编译器进行编译,版本编译指示使用如下:

pragmasolidity^0.5.2;

意思是该源文件不能使用0.5.2版本之前的编译器进行编译。

数据类型

声明变量的数据类型,跟很多编程语言都相似。

address:地址类型,用来转账,区块链独有类型。代码中address(this)表示当前合约的地址。

string:文本类型。

int:数值类型,显示范围是-到-1。

uint:无符号整数(指的正整数),最大是2**-1。

bool:布尔值,true或false。

bytes:字节类型。

mapping:映射类型,可以理解为Map。

事件

事件我们可以理解成通知订阅,当合约中发生某些事,比如谁给谁转账,那么可以声明一个事件,客户端(用户界面)对其监听后,可以接收到这个时间的消息从而dosomething。示例:

eentDeposit(addressfrom,addressto,unitamount);

functiondeposit(addressto,unitamount)publicpayable{

//dosomething

emitDeposit(address(this),to,amount);

}

然后在JS(Web3.js)代码中监听这个事件,示例如下:

varabi=/*abiasgeneratedbythe


转载请注明:http://www.aierlanlan.com/rzfs/9410.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了