---
# System prepended metadata

title: PureSwap IFO 合约使用流程简要说明

---

# PureSwap IFO 合约使用流程简要说明

## 整体流程

![](https://i.imgur.com/YzX6iGU.png)

## 具体步骤

1. 用户申请 IFO （提交form表单）
2. 管理员审核，如果审核通过，应能得到并确定以下信息：

- name，项目名称
- subTitle，简要描述
- description，介绍
- launchDate，发售日期
- launchTime，发售具体时间（到小时）
- saleAmount，销售的代币数量
- raiseAmount，希望融资金额
- cakeToBurn，销毁的MX的金额（为融资金额的一半）
- projectSiteUrl，项目网站
- currency，购买所使用的 LP Token 名称
- currencyAddress，购买所使用的 LP Token 合约地址
- tokenDecimals，销售的代币的小数点后精度
- releaseBlockNumber，开始显示在页面上的时间（区块高度）

3. 如果审核通过，开发人员需要部署该 IFO 的合约：migrations/3_deploy_proxy.js。修改其中的参数：

  - proxyAdmin：合约部署者地址
  - ifoAdmin：IFO 合约运营者地址
  - lpToken：PureToken-MX的LP
  - offeringToken：本次 IFO 的项目 token
  - startBlock：开始区块
  - endBlock：结束区块
  - offeringAmount：发售数量（可在开始前修改）
  - raisingAmount：融资数量（可在开始前修改）

4. 开发人员修改前端文件 src/config/constants/ifo.ts，除第2步中的信息外，还有：
  - address：前一步中部署的 IFO 合约地址
  - "isActive: true," 以显示在 IFO 首页

5. 项目方将本次待销售的全部代币，转入 IFO 合约

6. 在开始 IFO 前（startBlock之前），IFO 合约运营者（ifoAdmin）可修改融资的数量，调用 setRaisingAmount()，输入希望融到的` LP Token 数量 = 前端显示的 raisingAmount / LP Token 价格`

6. 开始 IFO 后，用户可存入 LP Token 来获得份额

7. 结束 IFO 后，用户可获得相应的代币份额，以及退回的未使用的 LP Token

8. 在确认所有用户都harvest后，IFO 合约运营者可执行finalWithdraw（指定要提取的lp token 数量和项目token），提取至 ifoAdmin 地址。
(**因为可提取所有在该合约中的lp token，请需务必确认所有用户都harvest后再执行！**)

9. 运营人员或技术管理人员需要用 LP Token 中取出代币对（MX、PURE）
10. 运营人员或技术管理人员销毁 PURE
11. 运营人员或技术管理人员将（1）融资到的 MX（2）未销售完的代币 转账给项目方

