Fix checksum check.

This commit is contained in:
chriseth 2018-10-09 09:12:04 +02:00
parent 95d3e7feb3
commit 914668c622

View File

@ -76,18 +76,18 @@ bytes dev::fromHex(std::string const& _s, WhenError _throw)
bool dev::passesAddressChecksum(string const& _str, bool _strict) bool dev::passesAddressChecksum(string const& _str, bool _strict)
{ {
string s = _str.substr(0, 2) == "0x" ? _str.substr(2) : _str; string s = _str.substr(0, 2) == "0x" ? _str : "0x" + _str;
if (s.length() != 40) if (s.length() != 42)
return false; return false;
if (!_strict && ( if (!_strict && (
_str.find_first_of("abcdef") == string::npos || s.find_first_of("abcdef") == string::npos ||
_str.find_first_of("ABCDEF") == string::npos s.find_first_of("ABCDEF") == string::npos
)) ))
return true; return true;
return _str == dev::getChecksummedAddress(_str); return s == dev::getChecksummedAddress(s);
} }
string dev::getChecksummedAddress(string const& _addr) string dev::getChecksummedAddress(string const& _addr)