diff options
author | chriseth <chris@ethereum.org> | 2018-10-25 18:44:28 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-25 18:44:28 +0800 |
commit | f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c (patch) | |
tree | c207622e955dba0a4a9839dc42bbba7d9b86a329 /libdevcore | |
parent | 4076875927b279342dacf690f86bfc16af03dd67 (diff) | |
parent | a9a414bd0f6ba89bfd719ea6b6c8501861e0ece6 (diff) | |
download | dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.tar dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.tar.gz dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.tar.bz2 dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.tar.lz dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.tar.xz dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.tar.zst dexon-solidity-f714b0dd7c0b48ea2b93855e1cda9d1101b3f35c.zip |
Merge pull request #5242 from ethereum/someChecks
Some well-formedness checks for the Yul AST.
Diffstat (limited to 'libdevcore')
-rw-r--r-- | libdevcore/CommonData.cpp | 23 | ||||
-rw-r--r-- | libdevcore/CommonData.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/libdevcore/CommonData.cpp b/libdevcore/CommonData.cpp index 6d7c74d7..fa1a5353 100644 --- a/libdevcore/CommonData.cpp +++ b/libdevcore/CommonData.cpp @@ -110,3 +110,26 @@ string dev::getChecksummedAddress(string const& _addr) } return ret; } + +bool dev::isValidHex(string const& _string) +{ + if (_string.substr(0, 2) != "0x") + return false; + if (_string.find_first_not_of("0123456789abcdefABCDEF", 2) != string::npos) + return false; + return true; +} + +bool dev::isValidDecimal(string const& _string) +{ + if (_string.empty()) + return false; + if (_string == "0") + return true; + // No leading zeros + if (_string.front() == '0') + return false; + if (_string.find_first_not_of("0123456789") != string::npos) + return false; + return true; +} diff --git a/libdevcore/CommonData.h b/libdevcore/CommonData.h index f208c425..0782fabc 100644 --- a/libdevcore/CommonData.h +++ b/libdevcore/CommonData.h @@ -272,4 +272,7 @@ bool passesAddressChecksum(std::string const& _str, bool _strict); /// @param hex strings that look like an address std::string getChecksummedAddress(std::string const& _addr); +bool isValidHex(std::string const& _string); +bool isValidDecimal(std::string const& _string); + } |