https://github.com/jasonandjay/up-chain
登链社区培训作业
https://github.com/jasonandjay/up-chain
Last synced: about 2 months ago
JSON representation
登链社区培训作业
- Host: GitHub
- URL: https://github.com/jasonandjay/up-chain
- Owner: jasonandjay
- Created: 2022-03-28T14:10:24.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-03-29T06:22:28.000Z (about 3 years ago)
- Last Synced: 2025-02-08T14:09:42.316Z (3 months ago)
- Language: Solidity
- Size: 537 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 登链社区培训作业
- [ ] W1-1作业:
* 安装 Metamask、并创建好账号
* 执行一次转账
* 使用 Remix 创建任意一个合约
* VSCode IDE 开发环境配置
* 使用 Truffle 部署 Counter 合约 到 test 网络(goerli)(提交交易 hash)
* 编写一个测试用例- [ ] W1-2作业:
* 使用Hardhat部署修改后的Counter
* 使用Hardhat测试Counter
* 写一个脚本调用count()- [ ] W2_1作业:
* 编写⼀个Bank合约:
* 通过 Metamask 向Bank合约转账ETH
* 在Bank合约记录每个地址转账⾦额
* 编写 Bank合约withdraw(), 实现提取出所有的 ETH- [ ] W2_2作业
* 编写合约Score,⽤于记录学⽣(地址)分数:
* 仅有⽼师(⽤modifier权限控制)可以添加和修改学⽣分数
* 分数不可以⼤于 100;
* 编写合约 Teacher 作为⽼师,通过 IScore 接⼝调⽤修改学⽣分数。- [ ] W3_1作业
* 发⾏⼀个 ERC20 Token:
* 可动态增发(起始发⾏量是 0)
* 通过 ethers.js. 调⽤合约进⾏转账
* 编写⼀个Vault 合约:
* 编写deposite ⽅法,实现 ERC20 存⼊ Vault,并记录每个⽤户存款⾦额 , ⽤从前端调⽤(Approve,transferFrom)
* 编写 withdraw ⽅法,提取⽤户⾃⼰的存款 (前端调⽤)
* 前端显示⽤户存款⾦额- [ ] W3_2作业
* 发行一个 ERC721 Token
* 使用 ether.js 解析 ERC721 转账事件(加分项:记录到数据库中,可方便查询用户持有的所有NFT)
* (或)使用 TheGraph 解析 ERC721 转账事件- [ ] W4_1作业
* 部署自己的 ERC20 合约 MyToken
* 编写合约 MyTokenMarket 实现:
* AddLiquidity():函数内部调用 UniswapV2Router 添加 MyToken 与 ETH 的流动性
* buyToken():用户可调用该函数实现购买 MyToken- [ ] W4_2作业
* 在上一次作业的基础上:
* 完成代币兑换后,直接质押 MasterChef
* withdraw():从 MasterChef 提取 Token 方法- [ ] W5_1作业
* 以太坊测试网上部署两个自己的ERC20合约MyToken,分别在Uniswap V2、V3(网页上)添加流动性
* 作业:编写合约执行闪电贷(参考V2的ExampleFlashSwap):
* uniswapV2Call中,用收到的 TokenA 在 Uniswap V3 的 SwapRouter 兑换为 TokenB 还回到 uniswapV2 Pair 中。