<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def native_contracts(address: int, data: BaseCalldata) -> List[int]: """Takes integer address 1, 2, 3, 4. :param address: :param data: :return: """

    functions = (ecrecover, sha256, ripemd160, identity)

    if isinstance(data, ConcreteCalldata):
        concrete_data = data.concrete(None)
    else:
        raise NativeContractException()

    return functions[address - 1](concrete_data)