深入解析AAVE智能合约:取款

概述 本文主要介绍AAVE V3合约中的取款withdraw函数。在阅读本文前,请读者确保已经阅读过以下文章: AAVE交互指南,本文将大量使用此文中给出的各种数学计算公式 深入解析AAVE智能合约:存款,此篇文章内给出的部分函数和大部分数据结构在本文内页有所使用,重复部分在本文内不再解释 读者也可选读深入解析AAVE智能合约:计算和利率,此文介绍了数学计算底层实现逻辑,与代码逻辑关系不大,读者可选读此文。 本文可认为是对深入解析AAVE智能合约:存款的进一步补充,由于取款逻辑较为简单,所以此文的关键在于进一步深挖某些常用函数。这些函数在《存款》一文中虽有提及但未深入探讨的函数,如updateInterestRates等。 代码分析 在src/protocol/pool/Pool.sol合约内,我们可以找到如下函数: ...

December 28, 2022 · 13 min · 6430 words · WongSSH

深入解析AAVE智能合约:计算和利率

概述 本文主要讨论AAVE V3中的数学计算模块,该模块位于src/protocol/libraries/math文件夹内,基础合约为WadRayMath。 ...

December 21, 2022 · 6 min · 2833 words · WongSSH

深入解析AAVE智能合约:存款

概述 我们在上一篇文章AAVE交互指南中主要介绍了aave前端、利率计算等内容,本篇文章 将在交互指南基础上介绍aave-v3的合约源代码的相关情况。 与之前所写的深入解析Safe多签钱包智能合约系列文章不同,本文主要以我们在AAVE交互指南中进行的合约操作为主线进行分析介绍,较为实战化。 相比于其他项目,AAVE提供了一个较为完整的文档。在文档内基本涵盖了所有函数的签名及其作用,读者也可作为阅读源代码的重要参考。 AAVE的总体架构如下: ...

December 10, 2022 · 24 min · 11900 words · WongSSH

基于Python与GraphQL的链上数据分析实战

概述 本文主要介绍如何通过免费且高效的的基于GraphQL的basement进行部分链上数据分析实战。本文不要求读者具有GraphQL相关经验,但要求读者会使用Python中的Pandas库,这是本文主要使用的数据分析工具。换言之,本文适用于了解数据分析而不了解链上数据获取的读者。本文会涵盖以下内容: GraphQL检索数据基础入门 Basement的基础API实战 在阅读本文前,读者最好安装一个支持GraphQL请求方法的API调试工具,在此处,我个人使用的是Postman软件,但读者选择其他软件亦可。本文使用了新兴 Web3 链上数据API提供商basement,此处我们使用的是免费版,无需 API Key 等配置,具体限制参考下图: ...

December 6, 2022 · 9 min · 4332 words · WongSSH

Python异步编程实战入门:从概念到实战

概述 在Python中存在GIL机制,该机制保证了在Python中同时间内仅能运行一行代码,这导致了Python无法真正实现多线程。但Python中存在另一种神奇的机制,即异步机制。在计算机领域,我们经常提到异步、并行、多线程等名词,但本文不想讨论这些名词具体的含义,这些对于概念的讨论在很多情况下是无意义的。本文将专注于介绍异步机制,在本文的最后,我们会引入多线程等内容以进一步提高Python性能。 ...

December 1, 2022 · 14 min · 6901 words · WongSSH