addLiquidity() 函数在 ganache 的本地开发实例上无任何理由恢复,有什么想法为什么会发生这种情况?
一些背景:
- 我已经分叉了 UniswapV2Factory 和 UniswapV2Router02 并部署在 ganache 上。
- 我创建了 2 个 ERC20 代币,并为它们创建了一对(通过 factory.createPair())。
- 将两个 ERC20 代币铸造到我的地址。
- 我已经批准了路由器合约地址的代币数量(通过 erc20.approve() 函数)
这就是我调用 addLiquidity 函数的方式
const blockNumber = await web3.eth.getBlockNumber();
const block = await web3.eth.getBlock(blockNumber);
const timestamp = block.timestamp + 300;
await router.addLiquidity(
ERC20_TOKEN_1_ADDRESS,
ERC20_TOKEN_2_ADDRESS,
web3.utils.toWei('1', 'ether'),
web3.utils.toWei('1', 'ether'),
web3.utils.toWei('0.001', 'ether'),
web3.utils.toWei('0.001', 'ether'),
OWNER_ADDRESS,
timestamp,
{ gas: 4000000 }
)