on master help sign in
- Update ethereum address validation logic to include checksumming if the address is not all lowercased
commit5422fe7ab0d8098c3b44e96a613145c8b3ff4b3e authorChris Johnson <chris@cjohnson.io> dateWed 10 Apr 2019, 16:40 (8 years ago) parent50edad7
1 file changed+8−2
src/bridge/lib/wallet.js+8−2
src/bridge/lib/wallet.js+8−2
@@ -69,8 +69,14 @@ const stripHexPrefix = hex =>
6969const keccak256 = str =>
7070 keccak('keccak256').update(str).digest()
7171
72−const isValidAddress = (address) =>
73− /^0x[0-9a-fA-F]{40}$/.test(address)
72+const isValidAddress = (address) => {
73+ let validLength = /^0x[0-9a-fA-F]{40}$/.test(address)
74+ let isLowercase = address === address.toLowerCase()
75+ let validChecksum = address === toChecksumAddress(address)
76+
77+ if (isLowercase) return validLength
78+ else return validChecksum && validLength
79+}
7480
7581const toChecksumAddress = (address) => {
7682 const addr = stripHexPrefix(address).toLowerCase()