项目简介
这是一个简单的去中心化金融(DeFi)演示项目,支持用户质押 Dai token 并在需要时赎回。项目中的管理员可以不定期给有质押行为的用户发放 Dapp token 作为奖励。
项目的主要特性和功能
- 代币质押与赎回:用户可将 Dai token 质押到系统中,也能随时赎回已质押的 Dai token。
- 奖励发放:管理员能为质押了 Dai token 的用户发放 Dapp token 奖励。
- ERC20 标准代币:Dai Token 和 Dapp Token 均遵循 ERC20 标准,具备基本的代币操作功能。
- 事件监听:前端通过监听 Solidity 合约的事件,实时更新用户的 Dai Token 余额和质押余额。
安装使用步骤
环境搭建
- 下载项目源码后,在项目根目录运行
npm install
,安装项目依赖,包含 Truffle 开发环境、前端 React 组件、web3js 以及测试环境 chai 等。 - 在 Chrome 浏览器中安装 Metamask 钱包插件。
- 安装 Ganache 客户端并启动本地节点,注意 Ganache 本地节点的 network id 是 1337,端口是 7545,若端口号变动需在
truffle-configure.js
文件中更新。
合约操作
- 开启终端,进入项目目录,运行
truffle compile
为合约生成 abi 文件。 - 运行
truffle test
进行合约测试。 - 运行
truffle console
打开 Truffle 控制台,可键入 web3 命令获取状态数据,如accounts = await web3.eth.getAccounts()
获取全部账户,balance = await web3.eth.getBalance(account)
获取指定账户余额。 - 运行
truffle migrate --reset
部署合约,首次部署可省略--reset
。部署时会做预设操作,如给 TokenFarm 合约转移足够的 Dapp token 用于奖励,给第二个账户发放 100 个 Dai Token 用于质押和赎回操作。
启动前端服务
完成合约部署后,运行 yarn start
启动 React 服务,在浏览器中打开 Dapp 页面。
奖励发放
当用户质押一定数额的 Dai token 后,可在命令行运行 truffle exec scripts/issue-token.js
,给质押用户发放相同数额的 Dapp token 奖励。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】