Gram Altın Fiyatı (TL) – Avalanche

Ana sayfa Forumlar Kodlar Gram Altın Fiyatı (TL) – Avalanche

  • Bu konu boş.
1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #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:

    1. 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.
    2. 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ış.
    3. 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.
    4. 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.
    5. 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.

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.