Spaces:
Running
Running
Add 1 files
Browse files- index.html +170 -20
index.html
CHANGED
@@ -86,6 +86,38 @@
|
|
86 |
border-radius: 4px;
|
87 |
transition: width 0.5s ease;
|
88 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
</style>
|
90 |
</head>
|
91 |
<body class="bg-gray-900 text-white min-h-screen">
|
@@ -285,26 +317,24 @@
|
|
285 |
</select>
|
286 |
</div>
|
287 |
<div>
|
288 |
-
<label class="block text-sm font-medium text-gray-400 mb-1">Pool
|
289 |
-
<
|
290 |
-
<option selected>BCH Pro Pool (Recommended)</option>
|
291 |
-
<option value="na">North America Pool</option>
|
292 |
-
<option value="eu">Europe Pool</option>
|
293 |
-
<option value="asia">Asia Pool</option>
|
294 |
-
</select>
|
295 |
</div>
|
296 |
<div>
|
297 |
-
<label class="block text-sm font-medium text-gray-400 mb-1">
|
298 |
-
<
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
|
|
|
|
|
|
304 |
</div>
|
305 |
</div>
|
306 |
<div class="mt-6">
|
307 |
-
<button class="gradient-bg text-white px-4 py-2 rounded-md font-medium w-full">
|
308 |
Save Configuration
|
309 |
</button>
|
310 |
</div>
|
@@ -359,11 +389,9 @@
|
|
359 |
</div>
|
360 |
</div>
|
361 |
<div class="mt-3">
|
362 |
-
<
|
363 |
-
|
364 |
-
|
365 |
-
<button class="mt-2 gradient-bg text-white text-sm px-3 py-1.5 rounded-md font-medium w-full">
|
366 |
-
Change Address
|
367 |
</button>
|
368 |
</div>
|
369 |
</div>
|
@@ -598,6 +626,61 @@
|
|
598 |
</div>
|
599 |
</main>
|
600 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
601 |
<!-- Footer -->
|
602 |
<footer class="bg-gray-800 border-t border-gray-700">
|
603 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
@@ -709,6 +792,73 @@
|
|
709 |
});
|
710 |
}
|
711 |
}, 3000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
712 |
</script>
|
713 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=privateuserh/privatemnn" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
714 |
</html>
|
|
|
86 |
border-radius: 4px;
|
87 |
transition: width 0.5s ease;
|
88 |
}
|
89 |
+
|
90 |
+
.floating-btn {
|
91 |
+
position: fixed;
|
92 |
+
bottom: 2rem;
|
93 |
+
right: 2rem;
|
94 |
+
z-index: 50;
|
95 |
+
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
|
96 |
+
}
|
97 |
+
|
98 |
+
.modal {
|
99 |
+
transition: opacity 0.3s ease, transform 0.3s ease;
|
100 |
+
}
|
101 |
+
|
102 |
+
.modal-enter {
|
103 |
+
opacity: 0;
|
104 |
+
transform: translateY(20px);
|
105 |
+
}
|
106 |
+
|
107 |
+
.modal-enter-active {
|
108 |
+
opacity: 1;
|
109 |
+
transform: translateY(0);
|
110 |
+
}
|
111 |
+
|
112 |
+
.modal-exit {
|
113 |
+
opacity: 1;
|
114 |
+
transform: translateY(0);
|
115 |
+
}
|
116 |
+
|
117 |
+
.modal-exit-active {
|
118 |
+
opacity: 0;
|
119 |
+
transform: translateY(20px);
|
120 |
+
}
|
121 |
</style>
|
122 |
</head>
|
123 |
<body class="bg-gray-900 text-white min-h-screen">
|
|
|
317 |
</select>
|
318 |
</div>
|
319 |
<div>
|
320 |
+
<label class="block text-sm font-medium text-gray-400 mb-1">Pool Address</label>
|
321 |
+
<input type="text" id="poolAddress" value="stratum.bchminerpro.com" class="bg-gray-800 border border-gray-700 text-white text-sm rounded-lg focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5">
|
|
|
|
|
|
|
|
|
|
|
322 |
</div>
|
323 |
<div>
|
324 |
+
<label class="block text-sm font-medium text-gray-400 mb-1">Pool Port</label>
|
325 |
+
<input type="text" id="poolPort" value="3333" class="bg-gray-800 border border-gray-700 text-white text-sm rounded-lg focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5">
|
326 |
+
</div>
|
327 |
+
<div>
|
328 |
+
<label class="block text-sm font-medium text-gray-400 mb-1">Username</label>
|
329 |
+
<input type="text" id="minerUsername" value="your_miner_username" class="bg-gray-800 border border-gray-700 text-white text-sm rounded-lg focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5">
|
330 |
+
</div>
|
331 |
+
<div>
|
332 |
+
<label class="block text-sm font-medium text-gray-400 mb-1">Password</label>
|
333 |
+
<input type="password" id="minerPassword" value="x" class="bg-gray-800 border border-gray-700 text-white text-sm rounded-lg focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5">
|
334 |
</div>
|
335 |
</div>
|
336 |
<div class="mt-6">
|
337 |
+
<button id="saveConfig" class="gradient-bg text-white px-4 py-2 rounded-md font-medium w-full">
|
338 |
Save Configuration
|
339 |
</button>
|
340 |
</div>
|
|
|
389 |
</div>
|
390 |
</div>
|
391 |
<div class="mt-3">
|
392 |
+
<input type="text" id="bchWalletAddress" value="bitcoincash:qz27vk58s8dgs9q0wpegn0pz4v7khe5g5w5w5w5w5w" class="bg-gray-700 p-3 rounded-md text-xs font-mono w-full">
|
393 |
+
<button id="updateWallet" class="mt-2 gradient-bg text-white text-sm px-3 py-1.5 rounded-md font-medium w-full">
|
394 |
+
Update Address
|
|
|
|
|
395 |
</button>
|
396 |
</div>
|
397 |
</div>
|
|
|
626 |
</div>
|
627 |
</main>
|
628 |
|
629 |
+
<!-- Floating Action Button -->
|
630 |
+
<button id="wirelessBtn" class="floating-btn bg-bch-primary hover:bg-bch-dark text-white rounded-full p-4 transition-all duration-300">
|
631 |
+
<i class="fas fa-wifi text-xl"></i>
|
632 |
+
</button>
|
633 |
+
|
634 |
+
<!-- Wireless Connection Modal -->
|
635 |
+
<div id="wirelessModal" class="fixed inset-0 overflow-y-auto z-50 hidden" aria-labelledby="modal-title" role="dialog" aria-modal="true">
|
636 |
+
<div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
|
637 |
+
<div class="fixed inset-0 bg-gray-900 bg-opacity-75 transition-opacity" aria-hidden="true"></div>
|
638 |
+
|
639 |
+
<span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">​</span>
|
640 |
+
|
641 |
+
<div class="inline-block align-bottom bg-gray-800 rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full">
|
642 |
+
<div class="px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
|
643 |
+
<div class="sm:flex sm:items-start">
|
644 |
+
<div class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-bch-primary bg-opacity-20 sm:mx-0 sm:h-10 sm:w-10">
|
645 |
+
<i class="fas fa-wifi text-bch-primary"></i>
|
646 |
+
</div>
|
647 |
+
<div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left w-full">
|
648 |
+
<h3 class="text-lg leading-6 font-medium text-white" id="modal-title">
|
649 |
+
Connect to Secondary Miner
|
650 |
+
</h3>
|
651 |
+
<div class="mt-4 space-y-4">
|
652 |
+
<div>
|
653 |
+
<label for="wifiSSID" class="block text-sm font-medium text-gray-400">WiFi SSID</label>
|
654 |
+
<input type="text" id="wifiSSID" class="mt-1 bg-gray-700 border border-gray-600 text-white text-sm rounded-md focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5" placeholder="Enter WiFi network name">
|
655 |
+
</div>
|
656 |
+
<div>
|
657 |
+
<label for="wifiPassword" class="block text-sm font-medium text-gray-400">WiFi Password</label>
|
658 |
+
<input type="password" id="wifiPassword" class="mt-1 bg-gray-700 border border-gray-600 text-white text-sm rounded-md focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5" placeholder="Enter WiFi password">
|
659 |
+
</div>
|
660 |
+
<div>
|
661 |
+
<label for="minerIP" class="block text-sm font-medium text-gray-400">Miner IP Address</label>
|
662 |
+
<input type="text" id="minerIP" class="mt-1 bg-gray-700 border border-gray-600 text-white text-sm rounded-md focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5" placeholder="192.168.1.100">
|
663 |
+
</div>
|
664 |
+
<div>
|
665 |
+
<label for="minerPort" class="block text-sm font-medium text-gray-400">Miner Port</label>
|
666 |
+
<input type="text" id="minerPort" value="4028" class="mt-1 bg-gray-700 border border-gray-600 text-white text-sm rounded-md focus:ring-bch-primary focus:border-bch-primary block w-full p-2.5">
|
667 |
+
</div>
|
668 |
+
</div>
|
669 |
+
</div>
|
670 |
+
</div>
|
671 |
+
</div>
|
672 |
+
<div class="px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
|
673 |
+
<button id="connectWireless" type="button" class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-bch-primary text-base font-medium text-white hover:bg-bch-dark focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-bch-primary sm:ml-3 sm:w-auto sm:text-sm">
|
674 |
+
Connect
|
675 |
+
</button>
|
676 |
+
<button id="cancelWireless" type="button" class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-600 shadow-sm px-4 py-2 bg-gray-700 text-base font-medium text-white hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm">
|
677 |
+
Cancel
|
678 |
+
</button>
|
679 |
+
</div>
|
680 |
+
</div>
|
681 |
+
</div>
|
682 |
+
</div>
|
683 |
+
|
684 |
<!-- Footer -->
|
685 |
<footer class="bg-gray-800 border-t border-gray-700">
|
686 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
|
|
|
792 |
});
|
793 |
}
|
794 |
}, 3000);
|
795 |
+
|
796 |
+
// Update BCH wallet address
|
797 |
+
const updateWallet = document.getElementById('updateWallet');
|
798 |
+
const bchWalletAddress = document.getElementById('bchWalletAddress');
|
799 |
+
|
800 |
+
updateWallet.addEventListener('click', function() {
|
801 |
+
const newAddress = bchWalletAddress.value.trim();
|
802 |
+
if (newAddress) {
|
803 |
+
alert(`Wallet address updated to:\n${newAddress}`);
|
804 |
+
// In a real app, you would send this to your backend
|
805 |
+
} else {
|
806 |
+
alert('Please enter a valid BCH address');
|
807 |
+
}
|
808 |
+
});
|
809 |
+
|
810 |
+
// Save mining configuration
|
811 |
+
const saveConfig = document.getElementById('saveConfig');
|
812 |
+
|
813 |
+
saveConfig.addEventListener('click', function() {
|
814 |
+
const poolAddress = document.getElementById('poolAddress').value;
|
815 |
+
const poolPort = document.getElementById('poolPort').value;
|
816 |
+
const minerUsername = document.getElementById('minerUsername').value;
|
817 |
+
const minerPassword = document.getElementById('minerPassword').value;
|
818 |
+
|
819 |
+
if (poolAddress && poolPort && minerUsername) {
|
820 |
+
alert(`Mining configuration saved:\nPool: ${poolAddress}:${poolPort}\nUsername: ${minerUsername}`);
|
821 |
+
// In a real app, you would send this to your backend
|
822 |
+
} else {
|
823 |
+
alert('Please fill in all required fields');
|
824 |
+
}
|
825 |
+
});
|
826 |
+
|
827 |
+
// Wireless connection modal
|
828 |
+
const wirelessBtn = document.getElementById('wirelessBtn');
|
829 |
+
const wirelessModal = document.getElementById('wirelessModal');
|
830 |
+
const cancelWireless = document.getElementById('cancelWireless');
|
831 |
+
const connectWireless = document.getElementById('connectWireless');
|
832 |
+
|
833 |
+
wirelessBtn.addEventListener('click', function() {
|
834 |
+
wirelessModal.classList.remove('hidden');
|
835 |
+
});
|
836 |
+
|
837 |
+
cancelWireless.addEventListener('click', function() {
|
838 |
+
wirelessModal.classList.add('hidden');
|
839 |
+
});
|
840 |
+
|
841 |
+
connectWireless.addEventListener('click', function() {
|
842 |
+
const wifiSSID = document.getElementById('wifiSSID').value;
|
843 |
+
const wifiPassword = document.getElementById('wifiPassword').value;
|
844 |
+
const minerIP = document.getElementById('minerIP').value;
|
845 |
+
const minerPort = document.getElementById('minerPort').value;
|
846 |
+
|
847 |
+
if (wifiSSID && minerIP) {
|
848 |
+
alert(`Connecting to secondary miner via WiFi:\nSSID: ${wifiSSID}\nMiner IP: ${minerIP}:${minerPort}`);
|
849 |
+
// In a real app, you would initiate the connection here
|
850 |
+
wirelessModal.classList.add('hidden');
|
851 |
+
} else {
|
852 |
+
alert('Please enter at least WiFi SSID and Miner IP');
|
853 |
+
}
|
854 |
+
});
|
855 |
+
|
856 |
+
// Close modal when clicking outside
|
857 |
+
window.addEventListener('click', function(event) {
|
858 |
+
if (event.target === wirelessModal) {
|
859 |
+
wirelessModal.classList.add('hidden');
|
860 |
+
}
|
861 |
+
});
|
862 |
</script>
|
863 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=privateuserh/privatemnn" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
864 |
</html>
|