littlebot
Published on 2025-04-14 / 3 Visits
0

【源码】基于Solidity、Truffle和React的去中心化金融质押系统

项目简介

这是一个简单的去中心化金融(DeFi)演示项目,支持用户质押 Dai token 并在需要时赎回。项目中的管理员可以不定期给有质押行为的用户发放 Dapp token 作为奖励。

项目的主要特性和功能

  1. 代币质押与赎回:用户可将 Dai token 质押到系统中,也能随时赎回已质押的 Dai token。
  2. 奖励发放:管理员能为质押了 Dai token 的用户发放 Dapp token 奖励。
  3. ERC20 标准代币:Dai Token 和 Dapp Token 均遵循 ERC20 标准,具备基本的代币操作功能。
  4. 事件监听:前端通过监听 Solidity 合约的事件,实时更新用户的 Dai Token 余额和质押余额。

安装使用步骤

环境搭建

  1. 下载项目源码后,在项目根目录运行 npm install,安装项目依赖,包含 Truffle 开发环境、前端 React 组件、web3js 以及测试环境 chai 等。
  2. 在 Chrome 浏览器中安装 Metamask 钱包插件。
  3. 安装 Ganache 客户端并启动本地节点,注意 Ganache 本地节点的 network id 是 1337,端口是 7545,若端口号变动需在 truffle-configure.js 文件中更新。

合约操作

  1. 开启终端,进入项目目录,运行 truffle compile 为合约生成 abi 文件。
  2. 运行 truffle test 进行合约测试。
  3. 运行 truffle console 打开 Truffle 控制台,可键入 web3 命令获取状态数据,如 accounts = await web3.eth.getAccounts() 获取全部账户,balance = await web3.eth.getBalance(account) 获取指定账户余额。
  4. 运行 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】