type
status
date
slug
summary
tags
category
icon
password
前言:
记录了我在学习ethers.js中的一些思考,以及一些容易遗漏的记录;后续随着理解的更加深入,仍会同步更新;
如果需要详细学习相关知识,请参考‣ ,本文仅推荐用于伴读。
提供其Provider、读取合约信息、发送ETH、合约交互、部署合约
- Contract读取
- 创建钱包的api
检索事件,监听合约事件、事件过滤、BigInt和单位转换、StaticCall
- 监听合约
- 事件过滤
- StaticCall
识别ERC721合约、编码calldata、批量生成钱包/批量转账/批量归集
- interfaceId补充
- 接口类Interface
- 通过calldata来调用函数
MerkleTree脚本、数字签名脚本、监听Mempool
Mempool
在用户的交易被矿工打包进以太坊区块链之前,所有交易会汇集到Mempool(交易内存池)中。矿工也是在这里寻找费用高的交易优先打包,实现利益最大化。通常来说,gas price越高的交易,越容易被打包。
Mev也发生在其中,即为通过调整gas,机器人会在一笔滑点设置过高的swap交易之前插入买单,用户交易之后发送一个卖单,以此获利的一个过程;
解码交易详情,靓号生成器、读取任意数据、抢先交易脚本、识别ERC20合约
- ERC1967Proxy
ERC1967Proxy,为了避免代理和逻辑合约在存储使用上的冲突,逻辑合约的地址通常保存在一个特定的存储槽,并保证编译器永远不会分配该存储槽;
- 通过slot获取某一个ERC20代币的private 变量
如shib的合约,_balance是一个mapping (address => uint256) private;
这里的_balance作为一个映射类型,并且由于是第一个状态变量,因此基础槽位是0,而其中具体的value存储位置,需要进一步进行哈希计算;同理_allowances基础槽位为1;
针对多个槽位共同占用一个槽的情况时:需要先读取整个槽,然后通过位运算提取所需的值;
- 抢先交易脚本
Flashbots、EIP712签名脚本
- Flashbots flashbots relay是和public mempool相对应的,可以直接被打包,然后发送给矿工上链;
- 作者:eddie
- 链接:https://www.binlog.com/article/13a4ec7d-70d7-8076-93f0-e0653664e396
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。