Contract-Deployment
如何使用 ethers.js 模組在 uniswap/sdk Javascript 上設置自定義 gwei / gas 價格?
我正在建構一個應用程序來使用 ethers 模組在 uniswap 上進行交易。我使用以下程式碼創建了合約並導入了路由器和工廠合約:
const factory = new ethers.Contract( addresses.factory, ['event PairCreated(address indexed token0, address indexed token1, address pair, uint)'], account ); const router = new ethers.Contract( addresses.router, [ 'function getAmountsOut(uint amountIn, address[] memory path) public view returns (uint[] memory amounts)', 'function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts)' ], account );
現在我使用 swapExactETHForTokens 函式進行交易:
const tx = await router.swapExactETHForTokens( amountOutMin // Slippage is set here too, if not wanted change to => amounts[1] [tokenIn, tokenOut], addresses.recipient, Date.now() + 1000 * 60 //1 minute expiry time for contract. );
我的問題是如何在我的交易中實現自定義 gwei,在 gwei 的 uniswap 交易功能中似乎根本沒有爭論。
您可以在任何智能合約函式呼叫中添加一個可選的最終參數,它是一個對象,可以包含諸如
value
(用於將 ETH 附加到交易,這絕對是您在呼叫時需要做的swapExactETHForTokens
),以及gasPrice
(用於設置天然氣價格,以 gwei 為單位)。const tx = await router.swapExactETHForTokens( amountOutMin, [await router.WETH(), tokenOut], // swapping WETH for a token addresses.recipient, Date.now() + 1000 * 60, { value: "1000000000000000000", // 1 eth gasPrice: "100000000000" // 100 gwei } );