# 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)未销售完的代币 转账给项目方