ethers.js基础(学习路线清单)

以下把 ethers.js 从 0 到 1 的全部知识点拆成 「基础 → 进阶 → 高级 → 实战」 4 个阶段,一张清单学完即可独立开发 DApp。

✅ 阶段 1:基础必会(入门 1 天)

任务关键代码/要点
安装npm install ethers 或浏览器 <script src=".../ethers.umd.min.js">
连接节点const provider = new ethers.JsonRpcProvider('http://127.0.0.1:8545') 
连接钱包const provider = new ethers.BrowserProvider(window.ethereum) 
助记词→钱包const wallet = ethers.Wallet.fromPhrase(mnemonic, provider)
查 ETH 余额const bal = await provider.getBalance(address) 
发送 ETHawait signer.sendTransaction({to, value: ethers.parseEther("1")}) 
读 ERC20const dai = new ethers.Contract(addr, ERC20_ABI, provider) 
单位换算ethers.parseUnits("1.5", 18) / ethers.formatUnits(balance, 18) 

✅ 阶段 2:进阶必备(2-3 天)

任务关键代码/要点
事件监听contract.on("Transfer", (from, to, value) => {...}) 
历史事件查询contract.queryFilter("Transfer", fromBlock, toBlock) 
签名消息const sig = await signer.signMessage("Hello") 
离线签名await wallet.signTransaction(tx)
批量调用Promise.all([...]) 或 Multicall
EIP-1559 交易maxFeePerGasmaxPriorityPerGas 参数
HD 钱包const hdNode = ethers.HDNodeWallet.fromSeed(seed) 

✅ 阶段 3:高级技巧(1 周)

任务关键代码/要点
自定义 Providernew ethers.WebSocketProvider('wss://...') 
EIP-712 结构化签名await signer.signTypedData(domain, types, value)
EIP-7702 委托交易设置 authorizationList 发送 0x04 类型交易 
离线构造 + 广播const raw = await wallet.signTransaction(tx); provider.broadcastTransaction(raw)
合约工厂部署const factory = new ethers.ContractFactory(abi, bytecode, signer) 
代理合约升级结合 @openzeppelin/hardhat-upgrades 部署透明代理

✅ 阶段 4:实战项目(边学边做)

项目目标涉及 ethers.js 要点
ETH 批量转账一次交易转多笔构造数组 + 离线签名 
ERC20 批量转账节省 gas调用合约批量函数
区块链推文系统发布/读取推文监听事件 + React 前端 
前端 DAppReact + MetaMaskBrowserProvideruseContractuseSigner 
钱包浏览器插件生成 HD 钱包HDNodeWalletmnemonicToEntropy, 导出私钥

🎯 学习顺序建议

  1. 先跑通「查余额 + 发 ETH」(基础)

  2. 再跑通「读 ERC20 + 转账」(进阶)

  3. 做一个小批量转账脚本(实战)

  4. 升级到 React + 事件监听 DApp(高级)

BinSchool Web3开发者社区

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aaiier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值