Code Duplication    Length = 17-22 lines in 2 locations

include/classes/statistics.class.php 2 locations

@@ 106-122 (lines=17) @@
103
   * @param limit int Last limit blocks
104
   * @return array
105
   **/
106
  public function getBlocksFound($limit=10) {
107
    $this->debug->append("STA " . __METHOD__, 4);
108
    if ($data = $this->memcache->get(__FUNCTION__ . $limit)) return $data;
109
    $stmt = $this->mysqli->prepare("
110
      SELECT
111
        b.*,
112
        a.username AS finder,
113
        a.is_anonymous AS is_anonymous,
114
        ROUND(difficulty * POW(2, 32 - " . $this->coin->getTargetBits() . "), " . $this->coin->getShareDifficultyPrecision() . ") AS estshares
115
      FROM " . $this->block->getTableName() . " AS b
116
      LEFT JOIN " . $this->user->getTableName() . " AS a
117
      ON b.account_id = a.id
118
      ORDER BY height DESC LIMIT ?");
119
    if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
120
      return $this->memcache->setCache(__FUNCTION__ . $limit, $result->fetch_all(MYSQLI_ASSOC), 5);
121
    return $this->sqlError();
122
  }
123
124
  /**
125
   * Get our last $limit blocks found by height
@@ 257-278 (lines=22) @@
254
   * @param none
255
   * @return data object Our share rate in shares per second
256
   **/
257
  public function getCurrentShareRate($interval=180) {
258
    $this->debug->append("STA " . __METHOD__, 4);
259
    if ($data = $this->memcache->getStatic(__FUNCTION__)) return $data;
260
    $stmt = $this->mysqli->prepare("
261
      SELECT
262
      (
263
        (
264
          SELECT ROUND(SUM(difficulty) / ?, " . $this->coin->getShareDifficultyPrecision() . ") AS sharerate
265
          FROM " . $this->share->getTableName() . "
266
          WHERE time > DATE_SUB(now(), INTERVAL ? SECOND)
267
          AND our_result = 'Y'
268
        ) + (
269
          SELECT ROUND(SUM(difficulty) / ?, " . $this->coin->getShareDifficultyPrecision() . ") AS sharerate
270
          FROM " . $this->share->getArchiveTableName() . "
271
          WHERE time > DATE_SUB(now(), INTERVAL ? SECOND)
272
          AND our_result = 'Y'
273
        )
274
      ) AS sharerate
275
      FROM DUAL");
276
    if ($this->checkStmt($stmt) && $stmt->bind_param('iiii', $interval, $interval, $interval, $interval) && $stmt->execute() && $result = $stmt->get_result() ) return $this->memcache->setStaticCache(__FUNCTION__, $result->fetch_object()->sharerate);
277
    return $this->sqlError();
278
  }
279
280
  /**
281
   * Get total shares for this round, since last block found