def to_checksum_address(value: AnyStr) -> ChecksumAddress:
norm_address = to_normalized_address(value)<EOL>address_hash = encode_hex(keccak(text=remove_0x_prefix(norm_address)))<EOL>checksum_address = add_0x_prefix(<EOL>"<STR_LIT>".join(<EOL>(<EOL>norm_address[i].upper()<EOL>if int(address_hash[i], <NUM_LIT:16>) > <NUM_LIT:7><EOL>else norm_address[i]<EOL>)<EOL>for i in range(<NUM_LIT:2>, <NUM_LIT>)<EOL>)<EOL>)<EOL>return ChecksumAddress(HexAddress(checksum_address))<EOL>
Makes a checksum address given a supported format.