@@ -5207,11 +5207,29 @@ func TestEthereumAddressValidation(t *testing.T) {
52075207 param string
52085208 expected bool
52095209 }{
5210- {"" , false },
5211- {"0x02F9AE5f22EA3fA88F05780B30385bEC" , false },
5212- {"123f681646d4a755815f9cb19e1acc8565a0c2ac" , false },
5213- {"0x02F9AE5f22EA3fA88F05780B30385bECFacbf130" , true },
5210+ // All caps.
5211+ {"0x52908400098527886E0F7030069857D2E4169EE7" , true },
5212+ {"0x8617E340B3D01FA5F11F306F4090FD50E238070D" , true },
5213+
5214+ // All lower.
5215+ {"0xde709f2102306220921060314715629080e2fb77" , true },
5216+ {"0x27b1fdb04752bbc536007a920d24acb045561c26" , true },
52145217 {"0x123f681646d4a755815f9cb19e1acc8565a0c2ac" , true },
5218+
5219+ // Mixed case: runs checksum validation.
5220+ {"0x02F9AE5f22EA3fA88F05780B30385bECFacbf130" , true },
5221+ {"0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed" , true },
5222+ {"0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359" , true },
5223+ {"0xdbF03B407c01E7cD3CBea99509d93f8DDDC8C6FB" , true },
5224+ {"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb" , true },
5225+ {"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDB" , false }, // Invalid checksum.
5226+
5227+ // Other.
5228+ {"" , false },
5229+ {"D1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb" , false }, // Missing "0x" prefix.
5230+ {"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDbc" , false }, // More than 40 hex digits.
5231+ {"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aD" , false }, // Less than 40 hex digits.
5232+ {"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDw" , false }, // Invalid hex digit "w".
52155233 }
52165234
52175235 for i , test := range tests {
0 commit comments