The KyberSwap flash swap functionality works similarly to Uniswap's. You may read more about flash swaps here. We highlight the syntax differences below.
functiondmmSwapCall(address sender,uint256 amount0,uint256 amount1,bytescalldata data) { IERC20 token0 =IDMMPool(msg.sender).token0(); // fetch the address of token0 IERC20 token1 =IDMMPool(msg.sender).token1(); // fetch the address of token1assert(IDMMFactory(dmmFactory).isPool(token0, token1, msg.sender)); // ensure that caller can only be dmm pool// rest of the function below}