I understand that the Pair contract will use TWPA to ensure price average, this _update function is called when Mint, Burn, Swap. In case the average period does not have the above transactions, the Sync function will be called to update the average price. So where is Sync called from? Is it called from the Service backend outside the contract?
@inheritdoc IPool function sync() external nonReentrant {
_update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), rese rve0, reserve1);
}