Vue版Swap
😄 肝了好久 肝了一个仿PancakeSwap的闪兑前端
市面上大部分dapp都是由React开发,不想学React只能自己肝一个Vue项目了。也给用Vue开发的朋友一些分享。
奈何我不会react, 无法拿开源代码直接用,只能看着源码一点一点肝出Vue版本,核心js慢慢肝出来的。
该JieSwap用的是PancakeSwap主网的合约,在这里闪兑相当于在Pancake的池子闪兑,如有错误,不负责任。
首先要了解AMM的概念,动手体验一下什么是闪兑。 可以在SushiSwap切换测试网即可体验。https://app.sushi.com/swap
需要大概了解uniswap的合约源码,知道他的闪兑逻辑,Pair池子的概念,池子的定价等
https://github.com/Sexy-J/JieSwap
部署在免费的服务器https://jieswap-x4uvs6eu-sexy-j.4everland.app/#/swap
支持多路径闪兑,中间路径可能有BNB,USDT,BUSD
支持普通ERC20,燃烧型ERC20 闪兑
支持查看在本网站的交易记录
这三个功能也是项目的难点
首先要先筛选出所有的路径,然后查询路径中每个池子的reserve,再通过输入或者输出 计算中每一条路径的输入或者输出,选择最优解。
默认使用普通的swap方法,如果普通的swap方法报错,则使用支持燃烧币swap方法再调用一遍。
当用户进行授权,交易等操作时,一旦得到hash就立马存入localstoage,然后每6秒去查询当前区块,如果当前区块发生变化,则去查询一遍所有的未完成的交易记录
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!