调用swapExactTokensForTokens如何节约gas

function buy(uint amountIn,uint amountOut,address token_address) external isOwner{   
        address[] memory path = new address[](2);
        path[0] = address(0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd); 
        path[1] = address(token_address);         
        Irouter(0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3).swapExactTokensForTokens(amountIn,amountOut,path,address(this),block.timestamp+15);    
    }

这是我写的购买token的函数,调用时要花费13万gas,但我观察到像1inch的交换只花费了11万gas,还有的合约只花费10万gas左右,这里还有更底层节约gas的相关方法吗,他们是如何实现节约gas的?比如调用pair合约的swap方法实现?

请先 登录 后评论

最佳答案 2022-01-14 12:21

一般的套利/交易是直接和交易对进行兑换,而不是借助路由, 你这种代码是路由中转,自然多了一层手续费, 其次要做的更省,就得从你自己的合约入参或者合约逻辑去节省gas...

请先 登录 后评论

其它 1 个回答

君莫笑
请先 登录 后评论
  • 2 关注
  • 0 收藏,3012 浏览
  • 郁闷龙 提出于 2022-01-14 10:39