Skip to content

lbc-team/Web3-BootCamp-Practice

Repository files navigation

Web3-BootCamp-Practice

Web3-BootCamp-Practice

作业案例

前言: 练习是提升的必经之路,完成作业时不熟悉的时候可以用AI辅助,但最好还是自己多写多练,实践出真知。

案例仅供参考,并不是标准答案,你也可以有自己的实现,只要功能满足需求就好。

decert与文件对应关系:

实践 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

About

Web3-BootCamp-Practice

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published