Sometimes a smart contract uses several oracle price feeds to track the prices of several assets. Since different feeds can have different heartbeats, it is wrong to assume that the same time interval heartbeat can be used as a staleness check. ``` (, rawPrice, , updatedAt, ) = IChainlink(chainlink).latestRoundData(); (, int256 USDCPrice,, uint256 USDCUpdatedAt,) = IChainlink(USDCSource).latestRoundData(); require(block.timestamp - updatedAt <= heartbeatInterval,"ORACLE_HEARTBEAT_FAILED"); require(block.timestamp - USDCUpdatedAt <= heartbeatInterval, "USDC_ORACLE_HEARTBEAT_FAILED"); ```