深入解析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

加密货币衍生品研究:开放衍生品交易基本数据获取

概述 最近笔者在写一篇关于加密货币方面的金融小论文,由于在写作过程中涉及到了部分加密货币衍生品,如期货、期权等,所以笔者研究了加密货币衍生品的交易数据获取。本文主要涉及以下衍生品的数据获取: ...

November 17, 2022 · 15 min · 7448 words · WongSSH

智能合约开发效率工具

概述 随着区块链的发展,智能合约的开发逐渐成为一片新的蓝海。与智能合约发展一同进步的其实还有一系列的智能合约开发工具和安全审计工具,但由于此方面很少有人介绍,导致大量新型工具并不为人所熟知。本文主要介绍智能合约开发和安全审计工具,以智能合约开发和测试为主线,依次介绍涉及以下方面的工具: ...

November 12, 2022 · 8 min · 3601 words · WongSSH

AAVE交互指南

概述 本文主要介绍如何在AAVE内进行质押、借贷等基本操作,为读者进一步研究AAVE源代码奠定坚实的基础。 本文要求读者具有以下条件: 熟悉以太坊钱包使用 拥有一定的GoerliETH测试网ETH,可前往Goerlin Faucet进行领取 上述条件可以保证读者可以理解本文的大部分内容,由于笔者本人具有较强的技术背景且未来准备编写AAVE智能合约解析系列文章,所以本文给出了部分合约裸交互(即直接与合约函数交互而并不通过网页),理解这一部分内容需要读者了解智能合约开发和cast使用。如果您不是技术人员,可以酌情跳过此部分。考虑到安全性问题,本文提供的裸交互均为eth_call而不涉及真正的交易(需要签名和区块确认的交易)。 ...

October 15, 2022 · 21 min · 10254 words · WongSSH

以太坊机制详解:交易与交易池

概述 我们在上一篇以太坊机制详解:Gas Price计算文章内介绍了以太坊中交易的具体gas计算相关规则。本篇文章将在此基础上介绍以下内容: 客户端如何构建一笔交易 服务端如何处理交易并进行打包 本文以一笔交易的生命周期为主线安排全文,从交易池初始化、交易构造到交易执行,尽可能为读者全景展示以太坊中的交易所涉及的方方面面。 ...

October 14, 2022 · 35 min · 17393 words · WongSSH

使用Quartz部署Obsidian笔记网站

概述 使用双链笔记Obsidian进行个人知识管理日益成为主流。但部署Obsidian展示网站属于付费功能,这对于很多人来说是一个严重的阻碍。本文将介绍如何使用开源且免费的Quartz进行部署Obsidian笔记并介绍如何进行持续集成和部署。 在继续阅读前,读者可以前往此网站观察部署后的结果。 前置条件 阅读本文需要读者具有以下条件: 拥有一个Github账户 熟悉简单的Git概念,如stage和commit等 Fork仓库 首先前往Quartz的仓库地址,点击页面中的Use this template按钮,如下图: ...

October 6, 2022 · 4 min · 1885 words · WongSSH