@@ -69,8 +69,14 @@ const stripHexPrefix = hex =>
69const keccak256 = str =>
69const keccak256 = str =>
70 keccak('keccak256').update(str).digest()
70 keccak('keccak256').update(str).digest()
72−const isValidAddress = (address) =>
72+const isValidAddress = (address) => {
73− /^0x[0-9a-fA-F]{40}$/.test(address)
73+ let validLength = /^0x[0-9a-fA-F]{40}$/.test(address)
74+ let isLowercase = address === address.toLowerCase()
75+ let validChecksum = address === toChecksumAddress(address)
77+ if (isLowercase) return validLength
78+ else return validChecksum && validLength
75const toChecksumAddress = (address) => {
81const toChecksumAddress = (address) => {
76 const addr = stripHexPrefix(address).toLowerCase()
82 const addr = stripHexPrefix(address).toLowerCase()