|
|
@@ -1,7 +1,8 @@
|
|
|
-import { web3 } from "hardhat";
|
|
|
+import { web3 } from "hardhat"
|
|
|
+import { ethers } from "hardhat"
|
|
|
import deployer from '../.secret'
|
|
|
-import contracts from '../contracts'
|
|
|
-import {default as WETH_ABI} from "../abi/WETH_ABI";
|
|
|
+import contracts from '../config/contracts'
|
|
|
+import fee from '../config/fee'
|
|
|
|
|
|
describe('Base operation test', () => {
|
|
|
it('Parse ether test', async () => {
|
|
|
@@ -82,4 +83,35 @@ describe('Base operation test', () => {
|
|
|
.swapExactTokensForTokens(amountIn, amountOutMin, path, to)
|
|
|
.send(rawTx).then(console.log)
|
|
|
})
|
|
|
+
|
|
|
+ it('Univ3 `exactInput` test', async () => {
|
|
|
+ const UNIV3_ABI = require('../abi/UNIV3_ABI').default
|
|
|
+
|
|
|
+ let univ3_contract = new web3.eth.Contract(UNIV3_ABI, contracts.UNIV3)
|
|
|
+
|
|
|
+ let rawTx = {
|
|
|
+ from: deployer.address,
|
|
|
+ nonce: await web3.eth.getTransactionCount(deployer.address),
|
|
|
+ gasPrice: web3.utils.toWei('2', 'gwei'),
|
|
|
+ gasLimit: 1e6
|
|
|
+ }
|
|
|
+
|
|
|
+ let amountIn = 1e9
|
|
|
+ let amountOutMin = 1
|
|
|
+ let deadline = parseInt(String(new Date().getTime() / 1e3))
|
|
|
+ let path = [contracts.WETH, fee._5_per_10000, contracts.USDT]
|
|
|
+ let to = deployer.address
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ path: ethers.utils.solidityPack(['address', 'uint24', 'address'], path),
|
|
|
+ recipient: to,
|
|
|
+ deadline: deadline,
|
|
|
+ amountIn: amountIn,
|
|
|
+ amountOutMinimum: amountOutMin
|
|
|
+ }
|
|
|
+
|
|
|
+ await univ3_contract.methods
|
|
|
+ .exactInput(params)
|
|
|
+ .send(rawTx).then(console.log)
|
|
|
+ })
|
|
|
})
|