Web3-BootCamp-Practice
前言: 练习是提升的必经之路,完成作业时不熟悉的时候可以用AI辅助,但最好还是自己多写多练,实践出真知。
案例仅供参考,并不是标准答案,你也可以有自己的实现,只要功能满足需求就好。
实践 POW 与非对称加密:PracticalPOWAndAsymmetricEncryption
模拟实现最小的区块链原理:MiniBlcokChain
用 Solidity 编写 Bank 智能合约:BankSmartContract
通过编写 BigBank 实践 Solidity 继承及接口合约交互:BigBankSmartContract
编写 ERC20 token 合约:ERC20Token
Solidity 编写 TokenBank:TokenBank_V1
扩展 ERC20 加入Hook,并使用 Hook:TokenBank_V2
Solidity 实现用 Token 购买 NFT:NFTMarket_V1
使用 Foundry 测试 Bank 合约:Foundry/src/Bank_Contract.sol、Foundry/test/Bank.t.sol
Foundry 高阶测试:Foundry/src/NFT_Market.sol、Foundry/test/NFTMarket.t.sol
使用 Viem 为 TokenBank 搭建一个简单的前端:FrontEnd/viem-front/app/page.tsx
使⽤ Viem.sh 监听 NFTMarket 的买卖记录:FrontEnd/demo/src/watchTransfer.ts
使用 Viem 构建一个 CLI 钱包:FrontEnd/demo/src/build_tx_keystore.ts
实现一个简单的多签合约:Foundry/src/ContractWallet.sol
DApp 接入 AppKit 登录:FrontEnd/wagmi-front/app/page.tsx
使用 EIP712 进行链下 Permit 和 白名单设计:Foundry/src/TokenBank_Permit.sol、Foundry/src/ERC20_Permit.sol、FrontEnd/viem-front/app/page_permit.tsx(测试时把这个文件名改成page.tsx即可)
理解 Permit2 及实践:Foundry/src/TokenBank_Permit2.sol
使用 Viem 索引链上ERC20 转账数据并展示::FrontEnd/my-sqlite-app/watcher.js、FrontEnd/my-sqlite-app/index.js、FrontEnd/wagmi-front/app/page_transfer.tsx
用最小代理实现 ERC20 铸币工厂:Foundry/src/Meme_Factory.sol、Foundry/test/Meme_Factory.t.sol
使用Solidity内联汇编修改合约Owner地址:Foundry/src/MyWallet.sol
组合使用 MerkleTree 白名单、 Permit 授权 及 Multicall:Foundry/src/AirdopMerkleNFTMarket.sol、Foundry/test/AirdopMerkleNFTMarket.t.sol
编写一个可升级的 NFT Market 合约:Foundry/src/ERC721_Upgrade.sol、Foundry/src/ERC721_Upgrade_V2.sol、Foundry/src/NFTMarketV1.sol、Foundry/src/NFTMarketV2.sol
安全挑战:Hack Vault:Foundry/test/Vault.t.sol
编写一个线性解锁( Vesting) 合约:Foundry/src/Vesting.sol、Foundry/test/Vesting.t.sol
实现一个 LaunchPad 平台:Foundry/src/Meme_FactoryV2.sol、Foundry/test/MemeFactoryV2.t.sol
获取 Uniswap v2 中 TWAP 价格:Foundry/src/OracleSimple.sol、Foundry/test/OracleSimple.t.sol
模拟闪电兑换套利:Foundry/src/TokenA.sol、Foundry/src/TokenB.sol、Foundry/src/UniswapV2Factory.sol、Foundry/src/UniswapV2Router.sol、Foundry/src/FlashSwap.sol
用Solidity编写ETH质押挖矿合约:Foundry/src/StakingPool.sol
实现一个 rebase 型 Token:Foundry/src/Rebase_Token.sol
实现一个极简的杠杆 DEX:Foundry/src/SimpleLeverageDEX.sol、Foundry/test/SimpleLeverageDEX.t.sol
设计一个看涨期权 Token:Foundry/src/CallOptionToken.sol、Foundry/test/CallOptionToken.t.sol
实现基于 Token 投票治理:Foundry/src/VoteToken.sol、Foundry/src/Gov.sol、Foundry/src/Bank.sol、Foundry/test/DAOTest.t.sol
利用 FlashBots 捆绑交易:Foundry/src/flashbot_bundle.js
EIP 7702实践:发起打包交易:Foundry/src/SimpleDelegateContract.sol、FrontEnd/viem-front/app/page_7702.tsx
编写第一个 Solana 程序(Program):SolanaProject/programs/my_solana_project/src/lib.rs
编写脚本调用 Solana 链上程序:SolanaProject/scripts/counter_script.ts