ERC20 进阶篇-2

初次发布: 2022.11.25 / 最新修改2022.11.25

关键词: openzepplin ERC20 Vote ERC3156

前置阅读

ERC20初探篇 / ERC20进阶篇

本段航行的主要旅途

继续阅读@openzeppelin/contracts/token/ERC20/文件夹内的源码

本节主要关注:

@openzeppelin/contracts/token/ERC20/extensions/ 当中的

ERC20Votes.sol

ERC20VotesComp.sol

ERC20FlashMint.sol

vote 相关

主要涉及到的代码文件: ERC20Votes.sol ERC20VotesComp.sol

代码注释当中也提到:

token的余额并不代表投票的权利,这样实现可以让转账函数的代价比较小,

但是需要用户来委托给自己从而激活检查点、同时追踪到他们的投票权。

基本的数据结构如下:

struct Checkpoint {
        uint32 fromBlock;
        uint224 votes;
    }

mapping(address => address) private _delegates;
mapping(address => Checkpoint[]) private _checkpoints;
Checkpoint[] private _totalSupplyCheckpoints;

用户可以委托给其他人来进行投票。

delegate / delegateBySig 两种委托的方式,一种直接链上进行,一种是通过签名的方式进行。

用户的投票委托情况和投票权的大小通过检查点的方式进行记录和维护。

不是特别明白为什么需要进行变量类型的转换, 可能是为了节约gas。

闪电贷 ERC3156

openzepplin的代码主要实现了Lender端的逻辑。

接下来要看的协议也非常明确了: dYdX, Compound, Curve, Uniswap。

关于之前 ERC20 篇的总结

ERC20初探篇 ERC20进阶篇-1 ERC20进阶篇-2

留下了很多可以探索的内容,这里统一进行记录。

关于openzeeplin当中可能和ERC相关的内容

govenance https://docs.openzeppelin.com/contracts/4.x/governance#token

Upgradeablity : transparent && UUPS https://docs.alchemy.com/docs/how-to-create-a-dao-governance-token

更多的标准

ERC223

ERC777

更多的项目

usdt源码分析

usdc源码分析

shibtoken源码分析

DAI源码分析

yearn finance

Uniswap

dYdX

Compound

Curve

ERC4626 可能的重入攻击的分析

ERC4626 滑点问题的分析 fei protocol的 ERC4626Router

安全相关

钓鱼ERC20合约

结束语

一天夜里,准程序员ddy从睡梦中醒来,窗外闪烁着炫目的灯光,0x807船长驾驶着神秘的飞船接他去web3的宇宙航行。在旅途中,ddy会记录下自己的见闻和思考,打开他的日记本,一笔一划地写下ddy的web3漫游日记

Subscribe to byeddy.eth
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.