part2. UniSwap V2 | Swap Token
访问 UniSwap
本章我们教大家如何解锁ETH主网上的巨鲸地址,并用该地址发起交易
1.编写合约接口
在/interfaces文件夹下创建IERC20.sol和Uniswap.sol
文件
IERC20.sol
(官方标准接口,建议保存)
1 |
|
Uniswap.sol
(自写接口文件)
1 |
|
2.接口函数swapExactTokenForTokens
参数详解
这是一个用已知数量的代币去交换未知数量代币的接口函数
举个例子:用100usdt的代币去交换btc,100是已知的,但能够交换到多少btc是未知的
amountIn
用于交换的代币的数量,就是上例中的100;amountOutMin
即用户所期望的滑点;path
交易路径,用于确认交换代币的种类,上例中用usdt交换btc,那么交易路径就是[‘usdt合约地址’,’btc合约地址’];to
自己的钱包地址deadline
常说的ddl,如果这次交易到ddl还没有打包成功,那么该次交易将会撤回
3.编写测试合约
TestUniswap.sol
1 |
|
编译合约
4.测试项目
在本教程中,我们选在hardhat的waffle写法来实现测试
使用ganache-cli来模拟网络环境
须知:
- hardhat与ether.js&&waffle是原生搭配
- truffle 与web3.js&&mocha是原生搭配
- waffle和mocha都是独特的接口写法类型
- 他们分别基于ether.js和web3.js实现
test/testUniswap.js
1 |
|
别忘了配置hardhat.config.js
1 |
|
运行测试
- 开启本地节点监听
1 |
|
- 开始测试(需要指定在当前网络之下测试)
1 |
|
part2. UniSwap V2 | Swap Token
http://nangbowan.github.io/2022/10/23/Part2. UniSwap V2 Swap Tokens/