Uniswap V2提供了简洁的x-y-k自动做市商实现。代码主要由两部分组成:Core实现某个交易的Pair的管理逻辑,Periphery实现路由,即一个或者多个交易对的兑换逻辑。理解增加/抽取流动性以及swap操作,需要结合两部分一起看。核心是在Pair中管理了reserve和total supply。所有提供的流动性都以流动性Token来衡量,所有Token的总和就是total supply。
当我们发行了ERC20代币之后,因为某些特殊原因不得不放弃掉ERC20的智能合约,而改用新合约的时候,可以通过布署一个迁移合约的方法实现将旧合约的所有代币迁移到新合约的需求.
实现用户层面的流动性头寸管理的合约是NonfungiblePositionManager合约,其实现比较复杂,还继承了很多子合约,限于篇幅,我们无法全都一一讲解,就只能挑一些重点的来讲。
在 DeFi 合约中,常见模式是Checks-Effects-Interactions(检查-生效-交互)模式, 不够好,它会让开发者忘记协议的核心不变性。 作者提出了一个新的模式:FREI-PI: 功能检查-生效-交互+协议不变性,让我们更多关注协议的不变性(安全性)。
Checks-Effects-Interactions(检查-生效-交互)
功能检查-生效-交互+协议不变性
智能合约安全审计入门系列之溢出漏洞。
本科普系列的第一篇文章介绍了区块链,文中提到区块链是非常安全可靠的网络,能够在不可篡改的账本中交换价值并储存数据。区块链催生出了比特币等全新的货币工具,然而其应用价值远不止如此,区块链还可以驱动智能合约(注:这是一种预先设定条件的数字合约)。本文将详细探讨以下内容:什么是智能合约; 智能合约如何创造价值; 智能合约的发展历程; 智能合约目前的应用模式
本文循序渐进实现了 3 个合约:1. 简单质押奖励,重点介绍如何计算奖励的? 2. 代币化质押奖励,提高质押流动性; 3. ERC4626 代币化金库, 将质押存入到金库中。
我们一起来了解智能合约中基于 tx.origin 的钓鱼攻击。
智能合约安全 - 常见漏洞(第四篇)
理解智能合约字节码末尾的元数据
那些非典型的开销导致经典的软件设计模式在合约编程语言中看起来既低效又奇怪。如果想要识别这些模式并理解他们导致效率变高/低的原因,你必须首先对以太坊虚拟机(即 EVM)有一个基本的了解。
Solidity教程系列第二篇 - Solidity地址类型介绍. Solidity 系列完整的文章列表请查看分类-Solidity。
这是Solidity教程系列文章第7篇介绍以太单位及时间单位,系列带你全面深入理解Solidity语言。 Solidity 系列完整的文章列表请查看分类-Solidity。
从EVM 角度探究合约创建与部署
这是Solidity教程系列文章第8篇介绍Solidity API,它们主要表现为内置的特殊的变量及函数,存在于全局命名空间里。
Solidity 系列完整的文章列表请查看分类-Solidity。