返回
项目实战

DEX - 中文

您可能从新闻头条中听说过币安 (Binance)、欧易 (OKX)、Coinbase和 FTX等。它们被称为集中式交易所(Centralized Exchanges,简写为CEX),因为它们由一家公司运营并从中获利。什么是去中心化交易所(Decentralized Exchanges, 简写为DEX)?去中心化交易所是一个点对点市场,用户可以在这里直接相互交易加密货币,而无需使用中介。受欢迎的去中心化交易所包括 UniSwap、SushiSwap、PancakeSwap、DODO 和 Curve等。 在 DEX 课程中,我们将学习建立流动性池和实现 "添加流动性"功能。之后,我们将学习实现“消除流动性”和“交换”。 在这一系列课程之后,我们将挑战您建立一个比 Uniswap 更好的 DEX!

语言solidity
难度简单
总时长1.5小时

你会学到什么

  • 流动性原理介绍
  • swap 计算公式介绍及其应用
  • 流动性池的关键功能的视线,如币对的添加、移除以及代币交换。
流动性池
添加流动性
swap

课程安排

  • 定义合约

    开始编写一个合约,首先要定义编译器版本,然后创建一个合约并定义构造函数。


  • 定义合约状态变量

    声明状态变量并利用构造函数为变量初始化


  • 交互1

    部署ERC20代币合约


  • 构建addLiquidity函数

    这里将学到添加流动性函数的定义


  • 判断投入代币与期盼值大小

    根据投入代币数量做出逻辑判断


  • 交互2

    尝试添加流动性


  • 构建calculateLiquidityTokens函数

    这里学如何根据投入代币计算获得的流动性代币


  • 对池子代币情况讨论

    池子代币数量也会影响生成的流动性代币,所以我们要讨论一下


  • 构建_calculateAmount_add函数

    这里学如何根据投入代币数量与池子代币数量关系


  • 构建_addLiquidity函数

    这里学添加流动性的内部函数


  • 发放Lp奖励

    学习如何通过ERC20标准发放Lp代币


  • 构建removeLiquidity函数

    这里学习如何移出流动性


  • 更新流动性池

    无论添加还是移除流动性,都要更新流动性池


  • 交互3

    移出流动性


  • 构建swap函数

    这里学习如何通过DEX换代币


  • 交互4

    交换代币


  • 构建calculateAmount_swap函数

    这里学如何根据指定数量的代币换取另一种代币

practice

DEX - 中文

68 小节
移动端和桌面端均可访问