Interacting with the Exchange
Import the interface, exchange. That's it!
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
interface IExchange{
function exchange(
address from,
address to,
uint256 amountIn,
uint256 minAmountOut
) external payable returns (uint256);
}
Import the interface above, then assuming that you have given ERC20 approval to the exchange,
If you'd like to send ERC20 and receive ERC20:
address exchangeAddress = 0x29c66CF57a03d41Cfe6d9ecB6883aa0E2AbA21Ec;
uint256 wethAmount = IExchange(exchangeAddress).exchange(usdcAddress, wethAddress, 10*10**6, 0);
// This exchanges 10 usdc to weth
If you'd like to send native ETH and receive ERC20:
address exchangeAddress = 0x29c66CF57a03d41Cfe6d9ecB6883aa0E2AbA21Ec;co
address nativeETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
uint256 usdcAmount= IExchange(exchangeAddress).exchange{value: 10**18}(nativeETH , usdcAddress, 10**18, 0);
// This exchanges 1 native ETH to usdc
If you'd like to send ERC20 and receive native ETH:
address exchangeAddress = 0x29c66CF57a03d41Cfe6d9ecB6883aa0E2AbA21Ec;co
address nativeETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
receive() external payable {}
uint256 nativeWETH= IExchange(exchangeAddress).exchange(usdcAddress, nativeETH, 10*10**6, 0);
// This exchanges 10 usdc to native WETHI
Last updated