- Bu konu boş.
1 yazı görüntüleniyor (toplam 1)
-
YazarYazılar
-
Ocak 5, 2025: 5:39 pm #119
admin
Anahtar yöneticiİşte istediğiniz şekilde PHP ve HTML ile hazırlanmış kod:
<?php // PHP kodu burada çalıştırılabilir (isteğe bağlı olarak başka işlemler yapılabilir). ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Gram Altın Fiyatı (TL) - Avalanche</title> <style> body { font-family: Arial, sans-serif; background-color: #f4f4f9; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; height: 100vh; } .container { text-align: center; background-color: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); width: 300px; } h1 { color: #4CAF50; margin-bottom: 20px; } button { padding: 10px 20px; background-color: #4CAF50; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; } button:hover { background-color: #45a049; } #goldPrice { font-size: 20px; font-weight: bold; margin-top: 20px; } #lastUpdated { font-size: 14px; color: #555; margin-top: 10px; } </style> </head> <body> <div class="container"> <h1>Gram Altın Fiyatı (TL)</h1> <p>Güncel Gram Altın Fiyatı:</p> <div id="goldPrice">Yükleniyor...</div> <p id="lastUpdated">Son Güncelleme: Yükleniyor...</p> <button onclick="fetchGoldPrice()">Fiyatı Güncelle</button> </div> <!-- Web3.js --> <script src="https://cdn.jsdelivr.net/npm/web3/dist/web3.min.js"></script> <script> const provider = "https://api.avax.network/ext/bc/C/rpc"; const web3 = new Web3(new Web3.providers.HttpProvider(provider)); // XAU/USD fiyatı sağlayan kontrat adresi (Chainlink Altın fiyatı feed'i) const goldContractAddress = "0x1F41EF93dece881Ad0b98082B2d44D3f6F0C515B"; // USD/TRY fiyatı sağlayan kontrat adresi (Chainlink Dolar/TL fiyatı feed'i) const tryContractAddress = "0xA61bF273688Ea095b5e4c11f1AF5E763F7aEEE91"; // Price Feed interface'leri const abi = [ { "constant": true, "inputs": [], "name": "latestAnswer", "outputs": [ { "name": "", "type": "int256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "latestTimestamp", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ]; const goldContract = new web3.eth.Contract(abi, goldContractAddress); const tryContract = new web3.eth.Contract(abi, tryContractAddress); // Altın ve Dolar/TL fiyatını ve son güncellenme zamanını alacak fonksiyon async function fetchGoldPrice() { try { // XAU/USD (Altın fiyatı) const goldPrice = await goldContract.methods.latestAnswer().call(); // USD/TRY (Dolar/TL fiyatı) const tryPrice = await tryContract.methods.latestAnswer().call(); // BigInt değeri string'e çevirip ardından sayıya dönüştürme const goldPriceInUsd = parseFloat(goldPrice.toString()) / 100000000; // Chainlink feed'inin birimi genellikle 8 ondalıklı const tryPriceInUsd = parseFloat(tryPrice.toString()) / 100000000; // Aynı şekilde USD/TRY için de // TRY/USD fiyatını aldıktan sonra, USD/TRY hesaplıyoruz const priceInUsd = 1 / tryPriceInUsd; // USD/TRY = 1 / TRY/USD // Gram altın fiyatını hesaplamak const gramsInOunce = 31.1035; const goldPriceInTry = (goldPriceInUsd / gramsInOunce) * priceInUsd; // Timestamp'i Number'a dönüştürme ve tarihe çevirmek için milisaniyeye çevirme const timestamp = await goldContract.methods.latestTimestamp().call(); const timestampNumber = Number(timestamp); const date = new Date(timestampNumber * 1000); // Zaman damgası saniye cinsindendir, milisaniyeye çevirmeliyiz const formattedDate = date.toLocaleString(); // Formatlanmış tarih // Sayfada güncel gram altın fiyatını ve son güncellenme tarihini gösteriyoruz document.getElementById('goldPrice').innerText = `Gram Altın Fiyatı: ₺${goldPriceInTry.toFixed(2)}`; document.getElementById('lastUpdated').innerText = `Son Güncelleme: ${formattedDate}`; } catch (error) { console.error("Fiyat alınırken hata oluştu:", error); document.getElementById('goldPrice').innerText = "Fiyat alınırken bir hata oluştu."; } } // Sayfa yüklendiğinde fiyatı otomatik olarak al window.onload = fetchGoldPrice; </script> </body> </html>Açıklamalar:
- HTML Yapısı:
- Başlık kısmında,
Gram Altın Fiyatı (TL)başlığı var. - Sayfa içinde bir kutu (
div) var, burada gram altın fiyatı ve son güncelleme bilgisi gösterilecek. - Bir buton bulunuyor. Butona tıklanarak fiyatın güncellenmesi sağlanacak.
- Başlık kısmında,
- CSS:
- Temel stil, sayfanın ortasında şık bir kutu ile gösterilen gram altın fiyatını ve son güncellemeyi içeriyor.
- Kullanıcı dostu bir arayüz sağlanmış.
- Web3.js Kullanımı:
- XAU/USD fiyatı ve USD/TRY fiyatı için Chainlink üzerinden Ethereum akıllı sözleşmesi (contract) kullanılarak fiyatlar alınıyor.
- Fiyatlar alındığında, hesaplamalar yapılarak gram altın fiyatı Türk Lirası cinsinden ekranda gösteriliyor.
- Sayfa her yüklendiğinde ve butona tıklandığında bu işlem yapılacak.
- Fiyat Hesaplama:
- Gram altın fiyatı hesaplaması: Gram Altın Fiyatı (TRY)=(XAU/USD31.1035)×USD/TRY\text{Gram Altın Fiyatı (TRY)} = \left( \frac{\text{XAU/USD}}{31.1035} \right) \times \text{USD/TRY}
- Bu hesaplama, XAU/USD (Altın fiyatı) ve USD/TRY (Dolar/TL fiyatı) ile yapılır.
- Son Güncelleme:
- Fiyat verisinin son güncellenme tarihi, zaman damgası kullanılarak ekranda gösterilir.
Bu dosyayı bir PHP sunucusunda çalıştırabilirsiniz. Sayfa açıldığında ve butona tıklandığında, Gram Altın Fiyatı (TL) ve Son Güncelleme bilgilerini otomatik olarak görebileceksiniz.
- HTML Yapısı:
-
YazarYazılar
1 yazı görüntüleniyor (toplam 1)
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.