```\nif (assetFrom[i - 1] == address(this)) {\n    uint256 curAmount = curTotalAmount * curPoolInfo.weight / curTotalWeight;\n\n\n    if (curPoolInfo.poolEdition == 1) {\n        //For using transferFrom pool (like dodoV1, Curve), pool call transferFrom function to get tokens from adapter\n        IERC20(midToken[i]).transfer(curPoolInfo.adapter, curAmount);\n    } else {\n        //For using transfer pool (like dodoV2), pool determine swapAmount through balanceOf(Token) - reserve\n        IERC20(midToken[i]).transfer(curPoolInfo.pool, curAmount);\n    }\n}\n```\n