我在自己的合约中使用delegatecall的方式调用uniswap v3 router的方法失败,但是我直接在uniswap v3 router 合约中吊起对应方法可以,uniswap v3 router 是否不支持delegatecall
我的合约代码:
bytes memory params = abi.encodeWithSignature(
"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))",
IUniswapV3Router.ExactInputSingleParams(
tokenIn,
address(iWETH),
fee,
address(this),
deadline,
amountIn,
amountOutMin,
0
)
);
// 使用委托代理调用 Uniswap V3 路由器的方法
(bool success, ) = address(uniswapV3Router).delegatecall(params);
我这里不直接调用是因为如果直接调用就需要钱包先把币转到合约中,但是有的币因为有税,这样转移就会导致丢失部分代币,或者是否有其他方法可以在不转移钱包代币的情况下吊起该方法