From b70f7113a3d8aab1245132d0b5875def0256ba5e Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 5 Jul 2015 15:17:37 +0100 Subject: [PATCH] Vanity address generator prefixes are now checked for validity --- monero-wallet-generator.html | 57 ++++++++++++++++++++++++-------- monero-wallet-generator.html.asc | 26 +++++++-------- 2 files changed, 57 insertions(+), 26 deletions(-) diff --git a/monero-wallet-generator.html b/monero-wallet-generator.html index c6a925b..de5ecae 100644 --- a/monero-wallet-generator.html +++ b/monero-wallet-generator.html @@ -10225,8 +10225,8 @@ bC0zLjUsMjAuNGgtNkwyNDQuOCwzMTAuNkwyNDQuOCwzMTAuNnoiLz4KPC9nPgo8L3N2Zz4K">
-

(very slow for more than a few characters, no check for valid prefixes)

- +

(very slow for more than a few characters)

+
@@ -10440,7 +10440,9 @@ function genwallet_prefix_worker() keys = cnUtil.create_address_if_prefix(seed,prefix); if (keys != null) { gen_prefix_widget = document.getElementById("gen_prefix_widget"); + prefix_widget = document.getElementById("prefix_widget"); gen_prefix_widget.value = previous_button_text; + prefix_widget.disabled = false; generating = false; break; } @@ -10463,13 +10465,50 @@ function genwallet_prefix_worker() mnemonic_widget.innerHTML = mnemonic; } +var zerohex="0000000000000000000000000000000000000000000000000000000000000000"; +var ffhex="ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"; +var lowest_address=cnUtil.pubkeys_to_string(zerohex,zerohex); +var highest_address=cnUtil.pubkeys_to_string(ffhex,ffhex); + +function is_valid_prefix(prefix) +{ + if (prefix.length <= 0 || prefix.length >= 95) + return false; + var lowest=lowest_address.substr(0,prefix.length); + var highest=highest_address.substr(0,prefix.length); + if (prefixhighest) + return false; + return true; +} + +function check_prefix_validity() +{ + gen_prefix_widget = document.getElementById("gen_prefix_widget"); + prefix_widget = document.getElementById("prefix_widget"); + if (gen_prefix_widget.value == "STOP") + return; + prefix=prefix_widget.value; + if (is_valid_prefix(prefix)) { + gen_prefix_widget.value = "Generate wallet with prefix"; + gen_prefix_widget.disabled = false; + } + else { + gen_prefix_widget.value = "Invalid prefix"; + gen_prefix_widget.disabled = true; + } +} + generating = false; function genwallet_prefix() { gen_prefix_widget = document.getElementById("gen_prefix_widget"); + prefix_widget = document.getElementById("prefix_widget"); if (generating) { generating = false; gen_prefix_widget.value = previous_button_text; + prefix_widget.disabled = false; } else { prefix_widget = document.getElementById("prefix_widget"); @@ -10479,23 +10518,15 @@ function genwallet_prefix() alert("Bad prefix "+prefix+" should start with 4 and be at least one extra character"); return; } - /* Seems to pass strings that don't get found - ok = false; - try { - if (cnBase58.decode(prefix) != "") - ok = true; - } - catch(e) { - } - if (!ok) { - alert("Bad prefix "+prefix+" is not a valid Monero address prefix"); + if (!is_valid_prefix(prefix)) { + alert("Bad prefix "+prefix+" is not a valid address prefix"); return; } - */ generating = true; previous_button_text = gen_prefix_widget.value; gen_prefix_widget.value = "STOP"; + prefix_widget.disabled = true; setTimeout(genwallet_prefix_worker, 0); } } diff --git a/monero-wallet-generator.html.asc b/monero-wallet-generator.html.asc index 27d3b27..02558c0 100644 --- a/monero-wallet-generator.html.asc +++ b/monero-wallet-generator.html.asc @@ -1,17 +1,17 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 -iQIcBAABAgAGBQJVmT2OAAoJEGhvB0VNbO/DhxAP/jjfhROkfM5KIYeX3eBE6jjC -gAPiZH5ZkD61sHq1O8iJOy7CfAWZTP04Yyy4m5CaW5i5+wQgwpTTnWpMBDGBAjPN -nc8Lfh8UxsI8zmzIWcYxacbCkSer3BAbVDBNBxsl2ydLuiJ1CkrrYo/UVtu2kT6L -B41QPoxob8A3sXnRAFhPxAanaONmQcbBreThdn5G35ALiiYN/d792sifZpdyT//c -j7n6HxUAQZsuAHPOCoweQ24l+SHx9JQmvPIeZ6lzJpI2ro/5a9OhOkUwClSKTxFD -BfJhoqpn1N2+et3KYQGTYt5liv+SV0D70sFMyfMiejve+FUgWhxkXIoqw7KZbTah -zoNc4qn0QHU70Uq1c4YZC6qUh1JwoPpX1QgPuZv5uQRuYYkllupjqIvb2RkmGZSB -bBtHeCXeIU0qpLPCGZK6spn3Gsa8FA0ve2jA/G9WNZHK/xhxMVsx/++2iTQ17nWF -o/pAO184VsU2MokWW/TBnBuKvQDVJcgdoPzY+wK5RhbqjoFMzQ4PCXYzTs3iumdV -hTg0u1a6Hcu0bopYgqGDaqQV8NuZJAme+XXoe3QX8p2kQc3CVct+ZmDMkNC+XLtv -FXtqYwyGQ4hbUxvAsSi1HkfEZ2h4B23CaKRyS/z0qJimSVa4EsPYvjRJ5ZFvgEXu -RNTjRO1uInyn+ODy3UU5 -=P0KA +iQIcBAABAgAGBQJVmURhAAoJEGhvB0VNbO/DK9kP/jhYtOfBA9rRx9d0jBQcS+Dy +zTOK+f1ImqDxLi+S5D13NYe40GhQeIna0fUVsVpydrCFk+Vd4r3uQ6vRX2RZGv6t +cy81aYUm00U2wLyNEcOPYIsxNth97LR1QuhmqiO9orhHRGSCzX86/imnwku2TeDv ++w/5LolKbXo/8MyflwqiF+EGNHz2g0nsdYX07IyeVV37myE2iSS6jyfrqnlMOJ0O +qUZvBKMdq5QygJDidZV83B0vq/wZ3LOJvbGj5VOzVRsJxt4elcn9DbDibrKUKBX8 +U4incogHfou0o+QXkhnYW2F8zHshzG9XD7aZHSpQUK5q5DD/dQc2hzhwLPVDWKGl +eOZvtSpT3TIYiBxVIwL3kvqkP/DhkiUhwV/LJhLID4vv4RxVaaJTpMozPLMMZ+Yf +XmrbmaDO1/TtLSM3FqM5ovNROwg6saJLny7kg0GdUCmaVl9FlvCRntO+MvOysNIG +1q4E5PDxe5lY02pgx+mj/DDNUAHxIkKraE2J9vLQNXxNvrYl13EUf4xzecAcyd27 +K4Aw5d7p73Firfi/aX1Vlzo7T2tAVSAzndj3mEfmrOvSe1kBExFnM7Rp+re74qo8 +CcYrFi5IrYUzKsoJ55KE0RH0BmQNxcmjkdOfvVSylXDRW6JGZeynWpz/4WYEV0DD +h1zi3z4YDWqMbqHEaMk0 +=lIJj -----END PGP SIGNATURE-----