IERC20[] memory path = new address[](2);
path[0] = usdc; // assuming core is specified as IERC20
path[1] = busd; // assuming usdt is specified as IERC20
buniCornRouter.swapTokensForExactTokens(
amountOutMin, // should be obtained via a price oracle, either off or on-chain
poolsPath, // eg. [usdc-busd-pool]