现代 DeFi: Uniswap V4
概述 在上一篇博客内,我们详细介绍了 Uniswap V3 的基础原理。在本篇博客内,我们将继续介绍与 Uniswap V3 差别不大的 Uniswap v4 的原理及代码。需要注意的,Uniswap v4 的 AMM 曲线部分与 Uniswap v3 是一致的,但增加了一些优化的业务逻辑。本文将跳过所有与 Uniswap v3 类似的部分,只介绍 Uniswap v4 的特性。 ...
概述 在上一篇博客内,我们详细介绍了 Uniswap V3 的基础原理。在本篇博客内,我们将继续介绍与 Uniswap V3 差别不大的 Uniswap v4 的原理及代码。需要注意的,Uniswap v4 的 AMM 曲线部分与 Uniswap v3 是一致的,但增加了一些优化的业务逻辑。本文将跳过所有与 Uniswap v3 类似的部分,只介绍 Uniswap v4 的特性。 ...
概述 本文将带领读者从零实现 Uniswap V3 的所有功能。在内容上,本文主要参考了 Constructor | Uniswap V3 Core Contract Explained 系列教程,同时部分内容也来自 Uniswap V3 Development Book 以及 Paco 博客。 本文内的代码可以参考 clamm 代码库。 ...
概述 Morpho 是目前以太坊内第四大借贷协议(数据来源为 defillama)。相比于其他高度复杂的借贷协议,Morpho Blue 的合约使用了 500 行代码就完成了所有的借贷工作。同时,Morpho 也是一个无许可的借贷协议,任何用户都可以调用合约内部的 createMarket 函数使用指定的参数创建交易市场。但是需要注意,Morpho 也并不是完全自由的,用户不可以随意指定一些借贷参数。 ...
概述 本文主要介绍AAVE V3合约中的取款withdraw函数。在阅读本文前,请读者确保已经阅读过以下文章: AAVE交互指南,本文将大量使用此文中给出的各种数学计算公式 深入解析AAVE智能合约:存款,此篇文章内给出的部分函数和大部分数据结构在本文内页有所使用,重复部分在本文内不再解释 读者也可选读深入解析AAVE智能合约:计算和利率,此文介绍了数学计算底层实现逻辑,与代码逻辑关系不大,读者可选读此文。 本文可认为是对深入解析AAVE智能合约:存款的进一步补充,由于取款逻辑较为简单,所以此文的关键在于进一步深挖某些常用函数。这些函数在《存款》一文中虽有提及但未深入探讨的函数,如updateInterestRates等。 代码分析 在src/protocol/pool/Pool.sol合约内,我们可以找到如下函数: ...
概述 本文主要讨论AAVE V3中的数学计算模块,该模块位于src/protocol/libraries/math文件夹内,基础合约为WadRayMath。 ...
概述 我们在上一篇文章AAVE交互指南中主要介绍了aave前端、利率计算等内容,本篇文章 将在交互指南基础上介绍aave-v3的合约源代码的相关情况。 与之前所写的深入解析Safe多签钱包智能合约系列文章不同,本文主要以我们在AAVE交互指南中进行的合约操作为主线进行分析介绍,较为实战化。 相比于其他项目,AAVE提供了一个较为完整的文档。在文档内基本涵盖了所有函数的签名及其作用,读者也可作为阅读源代码的重要参考。 AAVE的总体架构如下: ...
概述 本文主要介绍如何在AAVE内进行质押、借贷等基本操作,为读者进一步研究AAVE源代码奠定坚实的基础。 本文要求读者具有以下条件: 熟悉以太坊钱包使用 拥有一定的GoerliETH测试网ETH,可前往Goerlin Faucet进行领取 上述条件可以保证读者可以理解本文的大部分内容,由于笔者本人具有较强的技术背景且未来准备编写AAVE智能合约解析系列文章,所以本文给出了部分合约裸交互(即直接与合约函数交互而并不通过网页),理解这一部分内容需要读者了解智能合约开发和cast使用。如果您不是技术人员,可以酌情跳过此部分。考虑到安全性问题,本文提供的裸交互均为eth_call而不涉及真正的交易(需要签名和区块确认的交易)。 ...