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">
@@ -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-----