Skip to content

web3 练习 包含合约开发: EVM 、GAS 优化 ,去中心化金融(DEFI), 去中心化金融(DEFI),协议数据分析,Layer2 开发等等

Notifications You must be signed in to change notification settings

lookteas/Web3-Practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web3-Practice

web3 练习 包含合约开发: EVM 、GAS 优化 ,去中心化金融(DEFI), 去中心化金融(DEFI),协议数据分析,Layer2 开发等等

特别说明: 本目录中所有合约均要求solidity版本 ≥ 0.8.10, 且合约都在本地 Anvil 节点部署测试过,但安全性未经过检验不建议在主网部署,仅用于学习交流和实验。

目录


1 :POW 与 RSA 相关练习

2 :solidity 基础 合约测试

  • 用solidity 编写 Bank 智能合约 详情请查看bankContract/README.md

  • 位置:bankContract/README.md

  • 包含一个bank的demo合约,实现存款、提款和排行榜功能


3 :solidity 基础 合约继承和接口

  • 用solidity 编写 BigBank 实践 solidity 继承及接口合约交互 详情请查看bigBankContract/README.md

  • 位置:bigBankContract/README.md

  • 包含bank基础合约,管理员合约,银行合约接口文件,实现存款、提款、余额查询和转移管理员权限功能


4 :如何使用 ERC20 实现代币

  • 用solidity 编写 ERC20 合约 详情请查看erc20/README.md

  • 位置:erc20/README.md

  • 包含ERC20合约,实现代币的基本功能:转账、查询余额、授权转账等。


5 :使用 ERC721 实现 NFT 和 NFT的交互

  • 用solidity 编写 ERC721 合约 详情请查看nft/README.md

  • 位置:nft/README.md

  • 包含ERC721合约,实现NFT的基本功能: mint、transfer、approve、balanceOf等。


6 :foundry的工程化 项目初始化 编译 测试 部署

  • 用solidity 编写 Foundry 项目 详情请查看foundry/README.md

  • 位置:foundry/README.md

  • 包含Foundry项目的基本结构,以及如何初始化、编译、测试和部署智能合约。


7 :nft合约部署

  • 用solidity 编写 NFT项目 详情请查看nft/README.md

  • 位置:nft/nft-market

  • 包含nft合约项目的基本结构,以及如何铸造nft、查看nft、测试和部署智能合约。


8 :Solidity 实现用 Token 购买 NFT

  • 用solidity 编写 NFTMarketWithERC20 合约 详情请查看nft/nft-market-token/README.md

  • 位置:nft/nft-market-token

  • 包含NFTMarketWithERC20合约,实现用ERC20代币购买NFT的功能。


9 :使⽤ Viem 监听 NFTMarket 的买卖记录

  • 使用 Viem.sh 监听 NFTMarket 的买卖记录 详情请查看viemTokenBank/README.md

  • 位置:viemTokenBank/README.md

  • 包含Viem.sh项目的基本结构,以及如何监听智能合约。

  • 监听 NFTMarket 的买卖记录,包括购买和销售事件。


10 :Web3 命令行钱包

  • 基于 Viem.js 构建的 Sepolia 测试网命令行钱包,支持私钥生成、余额查询、ERC20 转账等功能。详情请查看cliWallet/README.md

  • 位置:cliWallet

  • 包含Viem.js项目的基本结构,以及如何使用命令行钱包进行操作。


11 :使用多签名实现 Token 购买 NFT

  • 用solidity 编写 NFTMarketWithERC20 合约 详情请查看nft/nft-market-token/README.md

  • 位置:nft/nft-market-token

  • 包含NFTMarketWithERC20合约,实现用ERC20代币购买NFT的功能。


12 :读取 esRNT 合约的锁信息

  • 用solidity 编写 esRNT 合约部署测试网后,使用viem读取锁信息 详情请查看evm/read-esrnt-locks/esrnt.sol

  • 位置:evm/read-esrnt-locks

  • 包含readLocks.js,实现读取esRNT合约锁信息的功能。


13 :ABI 编码 解码演示

  • 用solidity 编写 ABI 编码/解码合约 详情请查看abi/README.md

  • 位置:abi

  • 包含ABI编码/解码合约,实现对不同数据类型的编码和解码。


14 :用solidity 编写 多签合约钱包

  • 用solidity 编写 MultiSigWallet 合约 详情请查看multiSigner/README.md

  • 位置:multiSigner

  • 包含MultiSigWallet合约,实现多签名钱包的功能。

  • 允许多个所有者共同管理资产,需要达到指定数量的人确认后才能执行交易


15 :Permit2 银行合约项目

  • 基于 Foundry 开发的 DeFi 项目,实现支持 Permit2 签名授权的银行合约系统。详情请查看permit2/README.md
  • 位置:permit2
  • 包含前端界面:Permit2 协议实现完整的 Web3 交互界面,支持 ETH 和 ERC20 分离显示

16 :EIP-7702 账户抽象授权

  • 基于 EIP-7702 标准的账户抽象授权合约系统。详情请查看ethProt/eip7702/README.md
  • 位置:ethProt/eip7702
  • 包含前端界面:EIP-7702 协议实现完整的 Web3 交互界面,支持用户自定义授权和交易

17 :合约安全审计

  • 基于 Foundry 开发的合约审计项目,演示如何使用 Foundry 测试框架进行智能合约安全审计。详情请查看contractAudit/README.md
  • 位置:contractAudit
  • 包含一个存在安全漏洞的 Vault 合约,以及相应的攻击测试用例
  • 可以学习到 delegatecall 存储槽冲突漏洞的成因和利用方式,以及如何编写安全审计测试用例

18 :ChainLink Automation 项目

  • 基于 ChainLink Automation 平台的自动化合约项目,演示如何使用 ChainLink 自动化触发机制。详情请查看chainLink/README.md
  • 位置:chainLink
  • 包含一个基于 ChainLink Automation 的自动化合约,实现基于阈值的自动化触发机制
  • 可以学习到 ChainLink Automation 的工作原理和集成方法

19 :Token Vesting 线性释放机制

  • 基于 solidity 开发的 Token Vesting 合约项目,实现代币延迟释放机制。详情请查看defi/vesting/README.md
  • 位置:defi/vesting
  • 包含一个基于 solidity 的 Token Vesting 合约,实现代币延迟释放机制
  • 可以学习到 代币合约线性释放机制和foundry工具模拟时间测试方法

20 :最小化代理合约

  • 基于 solidity 开发的最小化代理合约项目,允许用户以极低的 gas 成本部署和铸造 Meme 代币。通过使用 EIP-1167 最小代理模式,每个新代币的部署成本大大降低。详情请查看memeFactory/README.md
  • 位置:memeFactory
  • 包含一个基于 solidity 的最小化代理合约,集成 ReentrancyGuard 和 Ownable
  • 可以学习到 代理模式的工作原理和实现方法

21 :实现一个 LaunchPad 平台

  • LaunchPad 是一个去中心化的代币发射平台,允许用户轻松创建和管理 Meme 代币。该项目集成了 Uniswap V3 协议,提供自动流动性添加功能,为新创建的代币提供即时的交易能力。详情请查看launchPad/README.md
  • 位置:launchPad
  • 包含一个基于 solidity 的 LaunchPad 合约,实现代币部署和铸造功能
  • 可以学习到 合约工厂模式的工作原理和实现方法

22 :获取 Uniswap 中 TWAP 价格

  • 基于 solidity 开发的获取 Uniswap 中 TWAP 价格合约项目,允许用户查询 Uniswap 中指定代币对的 TWAP 价格。详情请查看twap/README.md

  • 位置:twap

  • 包含一个基于 solidity 的获取 Uniswap 中 TWAP 价格合约,实现查询 TWAP 价格功能

  • 可以学习到 合约交互模式的工作原理和实现方法


23 :实现一个 Rebase Deflation Token (RDT)

  • 基于 ERC-20 标准的 rebase 型通缩 Token,参考 Ampleforth (AMPL) 的设计理念。该 Token 具有自动通缩机制,每年在上一年发行量基础上下降 1%。详情请查看stablecoin/README.md

  • 位置:stablecoin

  • 包含 Rebase Token 合约和前端界面,实现通缩机制和用户交互功能

  • 可以学习到 Rebase Token来追踪其对存款者应付的资产金额——包括协议获得的利润


24 :使用 Viem 索引链上ERC20 转账数据并展示

  • 基于 Viem 开发的索引链上 ERC20 转账数据项目,允许用户查询和展示指定合约地址的转账记录。详情请查看viemIndexData/README.md
  • 位置:viemIndexData
  • 包含索引合约和前端界面,实现查询和展示转账记录功能
  • 可以学习到 Viem 库的使用方法和合约交互模式,使用 Viem 的 getLogs 按 Transfer 事件索引 ERC20 转账记录

新增目录说明

说明:后续新增练习代码时,在此处添加目录相对链接,方便从首页快速跳转。

About

web3 练习 包含合约开发: EVM 、GAS 优化 ,去中心化金融(DEFI), 去中心化金融(DEFI),协议数据分析,Layer2 开发等等

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published