commit ecc724c3d7985d96540d9a199f7fa1900f682418
Author: root <root@hub.scroll.pub> Date: 2024-12-28 10:49:27 +0000 Subject: Initial commit diff --git a/body.html b/body.html new file mode 100644 index 0000000..bc8e9d2 --- /dev/null +++ b/body.html @@ -0,0 +1,23 @@ +<header> + <h1>Create Your Bitcoin Wallet</h1> + <p>Generate a secure Bitcoin wallet in seconds. Your keys, your coins.</p> +</header> +<main> + <section id="wallet-section"> + <div class="wallet-container"> + <div class="wallet-info"> + <label for="private-key">Private Key:</label> + <textarea id="private-key" readonly></textarea> + <label for="public-address">Public Address:</label> + <textarea id="public-address" readonly></textarea> + </div> + <button id="generate-wallet">Generate Wallet</button> + <div class="wallet-tips"> + <p>Important: Keep your private key safe and never share it. It's the only way to access your funds.</p> + </div> + </div> + </section> +</main> +<footer> + <p>BitVault - Your Gateway to Bitcoin Security</p> +</footer> \ No newline at end of file diff --git a/index.scroll b/index.scroll new file mode 100644 index 0000000..80b30ea --- /dev/null +++ b/index.scroll @@ -0,0 +1,8 @@ +buildHtml +baseUrl https://bitvault.scroll.pub +metaTags +editButton /edit.html +title Create Your Bitcoin Wallet | BitVault +style.css +body.html +script.js \ No newline at end of file diff --git a/prompt.json b/prompt.json new file mode 100644 index 0000000..e066f78 --- /dev/null +++ b/prompt.json @@ -0,0 +1,25 @@ +{ + "id": "90f64e67-f77c-4c4a-a879-64042ecb04cf", + "object": "chat.completion", + "created": 1735382948, + "model": "deepseek-chat", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "---domain---\nbitvault.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://bitvault.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Create Your Bitcoin Wallet | BitVault\nstyle.css\nbody.html\nscript.js\n---body.html---\n<header>\n <h1>Create Your Bitcoin Wallet</h1>\n <p>Generate a secure Bitcoin wallet in seconds. Your keys, your coins.</p>\n</header>\n<main>\n <section id=\"wallet-section\">\n <div class=\"wallet-container\">\n <div class=\"wallet-info\">\n <label for=\"private-key\">Private Key:</label>\n <textarea id=\"private-key\" readonly></textarea>\n <label for=\"public-address\">Public Address:</label>\n <textarea id=\"public-address\" readonly></textarea>\n </div>\n <button id=\"generate-wallet\">Generate Wallet</button>\n <div class=\"wallet-tips\">\n <p>Important: Keep your private key safe and never share it. It's the only way to access your funds.</p>\n </div>\n </div>\n </section>\n</main>\n<footer>\n <p>BitVault - Your Gateway to Bitcoin Security</p>\n</footer>\n---style.css---\nbody {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n background: linear-gradient(135deg, #1a1a1a, #2c3e50);\n color: #ecf0f1;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n}\n\nheader {\n text-align: center;\n margin-bottom: 2rem;\n}\n\nheader h1 {\n font-size: 2.5rem;\n margin-bottom: 0.5rem;\n color: #f1c40f;\n}\n\nheader p {\n font-size: 1.2rem;\n color: #bdc3c7;\n}\n\n.wallet-container {\n background: rgba(255, 255, 255, 0.1);\n padding: 2rem;\n border-radius: 10px;\n box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);\n max-width: 500px;\n width: 100%;\n}\n\n.wallet-info {\n margin-bottom: 1.5rem;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: bold;\n color: #f1c40f;\n}\n\ntextarea {\n width: 100%;\n padding: 0.5rem;\n margin-bottom: 1rem;\n border: 1px solid #34495e;\n border-radius: 5px;\n background: #2c3e50;\n color: #ecf0f1;\n resize: none;\n}\n\nbutton {\n width: 100%;\n padding: 0.75rem;\n background: #f1c40f;\n border: none;\n border-radius: 5px;\n color: #1a1a1a;\n font-size: 1rem;\n cursor: pointer;\n transition: background 0.3s ease;\n}\n\nbutton:hover {\n background: #e67e22;\n}\n\n.wallet-tips {\n margin-top: 1.5rem;\n font-size: 0.9rem;\n color: #bdc3c7;\n}\n\nfooter {\n margin-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n color: #bdc3c7;\n}\n\n@media (max-width: 600px) {\n header h1 {\n font-size: 2rem;\n }\n\n header p {\n font-size: 1rem;\n }\n\n .wallet-container {\n padding: 1rem;\n }\n\n textarea {\n font-size: 0.9rem;\n }\n\n button {\n font-size: 0.9rem;\n }\n\n .wallet-tips {\n font-size: 0.8rem;\n }\n}\n---script.js---\nfunction generateWallet() {\n const privateKey = generatePrivateKey();\n const publicAddress = generatePublicAddress(privateKey);\n document.getElementById('private-key').value = privateKey;\n document.getElementById('public-address').value = publicAddress;\n}\n\nfunction generatePrivateKey() {\n const array = new Uint8Array(32);\n window.crypto.getRandomValues(array);\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n}\n\nfunction generatePublicAddress(privateKey) {\n const sha256 = (data) => {\n const buffer = new TextEncoder().encode(data);\n return window.crypto.subtle.digest('SHA-256', buffer).then(hash => {\n return Array.from(new Uint8Array(hash)).map(b => b.toString(16).padStart(2, '0')).join('');\n });\n };\n\n const ripemd160 = (data) => {\n const buffer = new TextEncoder().encode(data);\n return window.crypto.subtle.digest('RIPEMD-160', buffer).then(hash => {\n return Array.from(new Uint8Array(hash)).map(b => b.toString(16).padStart(2, '0')).join('');\n });\n };\n\n return sha256(privateKey).then(hash => {\n return ripemd160(hash);\n }).then(hash => {\n return '1' + hash;\n });\n}\n\ndocument.getElementById('generate-wallet').addEventListener('click', generateWallet);\n---end---" + }, + "logprobs": null, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 241, + "completion_tokens": 1253, + "total_tokens": 1494, + "prompt_cache_hit_tokens": 0, + "prompt_cache_miss_tokens": 241 + }, + "system_fingerprint": "fp_f1afce2943" +} \ No newline at end of file diff --git a/readme.scroll b/readme.scroll new file mode 100644 index 0000000..87e08b2 --- /dev/null +++ b/readme.scroll @@ -0,0 +1,2 @@ +# bitvault.scroll.pub +Website generated by DeepSeek from prompt: a web page can create bitcoin wallet \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..706aef4 --- /dev/null +++ b/script.js @@ -0,0 +1,36 @@ +function generateWallet() { + const privateKey = generatePrivateKey(); + const publicAddress = generatePublicAddress(privateKey); + document.getElementById('private-key').value = privateKey; + document.getElementById('public-address').value = publicAddress; +} + +function generatePrivateKey() { + const array = new Uint8Array(32); + window.crypto.getRandomValues(array); + return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join(''); +} + +function generatePublicAddress(privateKey) { + const sha256 = (data) => { + const buffer = new TextEncoder().encode(data); + return window.crypto.subtle.digest('SHA-256', buffer).then(hash => { + return Array.from(new Uint8Array(hash)).map(b => b.toString(16).padStart(2, '0')).join(''); + }); + }; + + const ripemd160 = (data) => { + const buffer = new TextEncoder().encode(data); + return window.crypto.subtle.digest('RIPEMD-160', buffer).then(hash => { + return Array.from(new Uint8Array(hash)).map(b => b.toString(16).padStart(2, '0')).join(''); + }); + }; + + return sha256(privateKey).then(hash => { + return ripemd160(hash); + }).then(hash => { + return '1' + hash; + }); +} + +document.getElementById('generate-wallet').addEventListener('click', generateWallet); \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..4b67d9c --- /dev/null +++ b/style.css @@ -0,0 +1,114 @@ +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #1a1a1a, #2c3e50); + color: #ecf0f1; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 100vh; +} + +header { + text-align: center; + margin-bottom: 2rem; +} + +header h1 { + font-size: 2.5rem; + margin-bottom: 0.5rem; + color: #f1c40f; +} + +header p { + font-size: 1.2rem; + color: #bdc3c7; +} + +.wallet-container { + background: rgba(255, 255, 255, 0.1); + padding: 2rem; + border-radius: 10px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); + max-width: 500px; + width: 100%; +} + +.wallet-info { + margin-bottom: 1.5rem; +} + +label { + display: block; + margin-bottom: 0.5rem; + font-weight: bold; + color: #f1c40f; +} + +textarea { + width: 100%; + padding: 0.5rem; + margin-bottom: 1rem; + border: 1px solid #34495e; + border-radius: 5px; + background: #2c3e50; + color: #ecf0f1; + resize: none; +} + +button { + width: 100%; + padding: 0.75rem; + background: #f1c40f; + border: none; + border-radius: 5px; + color: #1a1a1a; + font-size: 1rem; + cursor: pointer; + transition: background 0.3s ease; +} + +button:hover { + background: #e67e22; +} + +.wallet-tips { + margin-top: 1.5rem; + font-size: 0.9rem; + color: #bdc3c7; +} + +footer { + margin-top: 2rem; + text-align: center; + font-size: 0.9rem; + color: #bdc3c7; +} + +@media (max-width: 600px) { + header h1 { + font-size: 2rem; + } + + header p { + font-size: 1rem; + } + + .wallet-container { + padding: 1rem; + } + + textarea { + font-size: 0.9rem; + } + + button { + font-size: 0.9rem; + } + + .wallet-tips { + font-size: 0.8rem; + } +} \ No newline at end of file