Altın Fiyatı (XAU/USD) Avalanche

Ana sayfa Forumlar Kodlar Altın Fiyatı (XAU/USD) Avalanche

  • Bu konu boş.
1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #115
    admin
    Anahtar yönetici

    Bu kod, Altın Fiyatı (XAU/USD)‘yi Avalanche ağı üzerinden almanızı sağlar. Ayrıca, fiyat verisini aldıktan sonra sayfada güncel fiyat ve son güncelleme tarihi de gösterilecektir.

    İşte yeniden yazılmış kod:

    altin_fiyati.php:

    <?php
    // PHP kodu burada çalıştırılabilir (isteğe bağlı olarak başka işlemler yapılabilir).
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Altın Fiyatı (XAU/USD) 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>Altın Fiyatı (XAU/USD)</h1>
            <p>Güncel 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
            const contractAddress = "0x1F41EF93dece881Ad0b98082B2d44D3f6F0C515B";
            
            // Price Feed interface'i (Chainlink tarzında bir fiyat feed arayüzü)
            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 contract = new web3.eth.Contract(abi, contractAddress);
            
            // Altın fiyatını ve son güncellenme zamanını alacak fonksiyon
            async function fetchGoldPrice() {
                try {
                    // Fiyatı alıyoruz
                    const price = await contract.methods.latestAnswer().call();
                    // Zaman damgasını alıyoruz
                    const timestamp = await contract.methods.latestTimestamp().call();
            
                    // BigInt değeri string'e çevirip ardından sayıya dönüştürme
                    const priceInUsd = parseFloat(price.toString()) / 100000000; // Chainlink feed'inin birimi genellikle 8 ondalıklı
            
                    // Timestamp'i Number'a dönüştürme ve tarihe çevirmek için milisaniyeye çevirme
                    const timestampNumber = Number(timestamp);  // BigInt'ten Number'a dönüştürme
                    const date = new Date(timestampNumber * 1000);  // Zaman damgası saniye cinsindendir, milisaniyeye çevirmeliyiz
                    const formattedDate = date.toLocaleString(); // Formatlanmış tarih
            
                    // Sayfada güncel fiyatı ve son güncellenme tarihini gösteriyoruz
                    document.getElementById('goldPrice').innerText = `Altın Fiyatı: $${priceInUsd.toFixed(2)} USD`;
                    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 ve CSS:
      • Sayfa, kullanıcının rahatça görüntüleyebilmesi için basit bir yapı ve düzenleme ile tasarlanmıştır.
      • Kullanıcıların Fiyatı Güncelle butonuna tıklayarak fiyatı güncelleyebileceği bir yapı vardır.
    2. Web3.js:
      • Web3.js, Avalanche ağıyla bağlantı kurmak ve Chainlink fiyat feed‘ini kullanarak altın fiyatını almak için kullanılır.
      • Kontrat adresi, XAU/USD fiyatını sağlayan bir Chainlink feed’ine işaret eder. Bu kontrattan alınan fiyat 8 ondalıklı gelir, bu nedenle değeri 100000000‘e bölerek gerçek değeri alıyoruz.
    3. JavaScript Fonksiyonu:
      • fetchGoldPrice() fonksiyonu, kontrattan altın fiyatını (latestAnswer()) ve son güncelleme zamanını (latestTimestamp()) alır.
      • Fiyatı USD cinsinden doğru şekilde hesaplar ve son güncellenme tarihini formatlayarak kullanıcıya gösterir.
    4. Son Güncelleme:
      • Fiyat verisinin alınması sırasında zaman damgası da alınır ve bu zaman, milisaniye cinsine çevrilip yerel tarih formatıyla kullanıcıya gösterilir.

    Nasıl Çalıştırılır?

    1. Bu PHP dosyasını bir PHP destekleyen web sunucusuna yükleyin (Apache, Nginx vb.).
    2. Dosyayı tarayıcıda açarak Altın Fiyatı (XAU/USD)‘yi ve son güncelleme tarihini görebilirsiniz.

    Bu yöntemle, Avalanche ağı üzerinden Chainlink fiyat feed’i kullanarak anlık XAU/USD (Altın Fiyatı) verisini ve güncellenme zamanını alabilirsiniz.

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