|
|
@@ -1,5 +1,7 @@
|
|
|
import { web3 } from "hardhat";
|
|
|
import deployer from '../.secret'
|
|
|
+import contracts from '../contracts'
|
|
|
+import {default as WETH_ABI} from "../abi/WETH_ABI";
|
|
|
|
|
|
describe('Base operation test', () => {
|
|
|
it('Parse ether test', async () => {
|
|
|
@@ -20,16 +22,16 @@ describe('Base operation test', () => {
|
|
|
nonce: await web3.eth.getTransactionCount(deployer.address),
|
|
|
gasPrice: web3.utils.toWei('2', 'gwei'),
|
|
|
gasLimit: 1_000_000,
|
|
|
- to: '0x0000000000000000000000000000000000000000',
|
|
|
+ to: contracts.ZERO,
|
|
|
value: 1e9
|
|
|
}
|
|
|
|
|
|
await web3.eth.sendTransaction(rawTx).then(console.log)
|
|
|
})
|
|
|
|
|
|
- it('Weth test', async () => {
|
|
|
+ it('Weth withdraw test', async () => {
|
|
|
const WETH_ABI = require('../abi/WETH_ABI').default
|
|
|
- const WETH_ADDR = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
|
|
|
+ const WETH_ADDR = contracts.WETH
|
|
|
|
|
|
let weth_contract = new web3.eth.Contract(WETH_ABI, WETH_ADDR)
|
|
|
// await weth_contract.methods.balanceOf(deployer.address).call().then(console.log)
|
|
|
@@ -42,4 +44,42 @@ describe('Base operation test', () => {
|
|
|
}
|
|
|
await weth_contract.methods.withdraw(1e15).send(rawTx).then(console.log)
|
|
|
})
|
|
|
+
|
|
|
+ it ('Weth approve test', async () => {
|
|
|
+ const WETH_ABI = require('../abi/WETH_ABI').default
|
|
|
+ const WETH_ADDR = contracts.WETH
|
|
|
+
|
|
|
+ let weth_contract = new web3.eth.Contract(WETH_ABI, WETH_ADDR)
|
|
|
+ // await weth_contract.methods.balanceOf(deployer.address).call().then(console.log)
|
|
|
+
|
|
|
+ let rawTx = {
|
|
|
+ from: deployer.address,
|
|
|
+ nonce: await web3.eth.getTransactionCount(deployer.address),
|
|
|
+ gasPrice: web3.utils.toWei('2', 'gwei'),
|
|
|
+ gasLimit: 1_000_000
|
|
|
+ }
|
|
|
+ await weth_contract.methods.approve(contracts.UNIV3, 1e9).send(rawTx).then(console.log)
|
|
|
+ })
|
|
|
+
|
|
|
+ it('Univ3 swap 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: 1_000_000
|
|
|
+ }
|
|
|
+
|
|
|
+ let amountIn = 1_000_000
|
|
|
+ let amountOutMin = 1
|
|
|
+ let path = [contracts.WETH, contracts.HEX]
|
|
|
+ let to = deployer.address
|
|
|
+
|
|
|
+ await univ3_contract.methods
|
|
|
+ .swapExactTokensForTokens(amountIn, amountOutMin, path, to)
|
|
|
+ .send(rawTx).then(console.log)
|
|
|
+ })
|
|
|
})
|