Skip to main content

Flash Swaps

The DMM flash swap functionality works similarly to Uniswap's. You may read more about flash swaps here. We highlight the syntax differences below.

Using dmmSwapCall#

function dmmSwapCall(address sender, uint256 amount0, uint256 amount1, bytes calldata data) {
IERC20 token0 = IDMMPool(msg.sender).token0(); // fetch the address of token0
IERC20 token1 = IDMMPool(msg.sender).token1(); // fetch the address of token1
assert(IDMMFactory(dmmFactory).isPool(token0, token1, msg.sender)); // ensure that caller can only be dmm pool
// rest of the function below
}

Interface#

IDMMCallee.sol

pragma solidity 0.6.6;
interface IDMMCallee {
function dmmSwapCall(
address sender,
uint256 amount0,
uint256 amount1,
bytes calldata data
) external;
}