文章详细介绍了Compound V3合约的行为,它类似于一种可调整供应量的ERC 20代币,即借贷平台的USDC余额的现值可以被转移。文章还讨论了Compound V3实现的ERC 20函数及其工作原理。
The Compound V3 合约表现得像一个重基 ERC 20 代币。重基代币是指具有算法调整供给而不是固定供给的代币。这儿的“代币”表示正的 USDC 余额的现值。也就是说,贷方可以将其本金的现值转移到其他地址,就如同它是一个 ERC 20 代币一样。由于本金的价值通常因利息累积而增加,这个 ERC 20 代币的价值随着时间的推移而向上重基。
Compound V3 不使用代币保管标准(例如 ERC-4626)来追踪借贷池的“份额”。
正如我们在讨论本金和现值时指出的,用户可能已经存入 100 USDC 但因利息累积而获得 110 USDC 的信用——这 110 代表现值。正是这个单位的账目由 Compound V3 的 ERC20 功能管理。
用户必须熟悉利息指数和 Compound V3 的 现值和本金价值的概念。由于 Comet 是我们在这里讨论的主要智能合约的名称,本文中将 Compound V3 和 Comet 交替使用。
每个标题将讨论 Compound V3 实现的一个 ERC 20 功能,以及它如何实现该功能。一些功能并不是 ERC 20 标准的一部分,但对本讨论是相关的。
totalBorrow
,顾名思义,是借入的 USDC 总额。也就是说,它是债务的现值。我们可以通过合约返回的结果和我们在 Compound 平台上看到的来证实这一点。这不仅仅是借款人从平台提取的 USDC 数量——它还包括借入的 USDC 上累积的利息。
下面我们展示一张 Compound V3 用户界面的截图,显示了这个值,以及 Etherscan 返回的 totalBorrow()
函数的结果。
类似地,totalSupply() 并不是贷方存入 Compound 的 USDC 数量——而是 现值 的总存款。
下面截图中的 totalSupply 和 totalBorrow 代码 应该能帮助你清晰理解现值之间的关系。
下面我们截图了两次对 totalSupply 的查询。请注意,右侧第二张截图中的 totalSupply
已经增加。
totalSupply() 函数的行为与 ERC 20 的 totalSupply() 相同。
借款人无法转移债务,因此 totalBorrow 不用于任何代币类接口。
balanceOf 在我们关于本金和现值的讨论中已经涵盖,因此在此不再赘述。
transfer 和 transferFrom 都会转移贷方的现值。金额参数以现值来测量。
这两个函数在内部都会调用 transferInternal
。在 Compound V3 中,转...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!