赞
踩
现在市面上大多数去中心化交易所(简称dex)都是fork的uniswap的代码,名气比较大的如eth上的sushi 以及 bsc上的pancake。博主这里说的都是V2,uniswapV3在这里不做讨论。那么知道了他们的代码都是来自同一父亲之后,我们就可以在同样fork他的儿子里任选一个来写测试脚本。下面开始选儿子。
开头直接给答案:博主选择 kcc 链上的 Mojitoswap 作为例子
为什么是 kcc 链? 文章一已经做过陈述
为什么是 Mojitoswap?
第一,它是 kcc 链上最大的dex,tvl排第一,且传言是kucoin的亲儿子
第二,代码有审计报告,安全性有保障。选dex就选龙头,准没错
- const checkUSDTBalance = async () => {
- const balance = await usdt.balanceOf(wallet.address);
- console.log(chalk.green(`USDT balance: ${ethers.utils.formatEther(balance)}`));
- return balance;
- }
-
- const checkKCSBalance = async () => {
- const balance = await wallet.getBalance();
- console.log(chalk.green(`KCS balance: ${ethers.utils.formatEther(balance)}`));
- return balance;
- }
3. 区分是 原生代币(KCS) 还是其他erc20 Token
- // step2: if ksc, just swap or if usdt, approve and swap
- if (Number(ethers.utils.formatEther(kcsBalance)) > 0.1) { // KCS balance need to > 0.1, since we swap 0.1 kcs to usdt and we need to pay gas fee
- await swapKCS2USDT();
- }
-
- if (Number(ethers.utils.formatEther(usdtBalance)) >= 0.2) { // 0.2 is min amount of usdt, since we swap 0.1 usdt to kcs and 0.1 usdt to usdc
- await approveUSDT();
- await swapUSDT2KCS();
- await swapUSDT2USDC();
- }
脚本运行结果如下:
具体详细代码我放在了Github仓库
恭喜你,如果上面的你都能调通了,那么你掌握了进入web3的一把黄金钥匙。 上面同样的一套代码,你可以只需要替换合约地址,就可以无痛迁移到 eth 链 / bsc链 / ... 所有热门evm公链。并在他们的swap(需要是uniswap的复制品)上运行这个代码。
- // kcc 链上的地址, routerAddress 是 mojitoSwap 的 router 合约
- const kcsAddress = '0x6551358EDC7fee9ADAB1E2E49560E68a12E82d9e'
- const usdtAddress = '0x67f6a7BbE0da067A747C6b2bEdF8aBBF7D6f60dc'
- const usdcAddress = '0xD6c7E27a598714c2226404Eb054e0c074C906Fc9'
- const routerAddress = '0x59a4210Dd69FDdE1457905098fF03E0617A548C5'
-
-
- // bsc 链上的地址,kcsAddress 替换成 bnb的合约地址, routerAddress 替换为 pancakeSwap 的 router 合约即可
- const bnbAddress = '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'
- const usdtAddress = '0x55d398326f99059fF775485246999027B3197955'
- const usdcAddress = '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d'
- const routerAddress = '0x10ED43C718714eb63d5aA57B78B54704E256024E'
通过上面的讲解,你应该掌握了最简单的在swap里交互的方法。
从这里我们可以衍生出一键运行脚本,完成swap交互的功能。
那么下一节,我们讲讲解如果一键完成与swap的脚本。撸毛必备。你值得学会。
欢迎github里star和fork,你的star是我前进的动力!撒花~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/791380
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。