Llamar a una función en otro contrato (error de suma de comprobación no válida)

Sé que hay muchas preguntas como esta, pero creo que esto es diferente.

Basado en esta pregunta , escribí esto

pragma solidity ^0.4.11;

contract Registry {
    mapping(string => address) ID;
    mapping(address => address) Contract;

    function addID(string _id, address publicAddress) {
        ID[_id] = publicAddress;
    }

    function addContract(address _owner) {
        Contract[_owner] = msg.sender;
    }
}

contract User {
    // The GMC contract
    address regAddress = 0xf70ce669d4fa2bdeae1c4c61021627fc4b1d463c;
    address owner = msg.sender;

    function addID(string _id){
        // Get the GMC contract
        Registry registry = Registry(regAddress);
        registry.addID(_id, owner);
    }

    function addContract(address _owner) {
        Registry registry = Registry(regAddress);
        registry.addContract(owner);
    }
}

Además, estoy 100% seguro de que el registro del contrato se ha extraído en la dirección 0xf70ce669d4fa2bdeae1c4c61021627fc4b1d463c.

Pegar tal cual en Remix devuelve un error

This looks like an address but has invalid checksum

Siguiendo esta respuesta , intenté convertir la dirección a mayúsculas. que vuelve

TypeError: Invalid literal value

Una sugerencia en la pregunta es usar import. No estoy haciendo eso debido a otra pregunta (sin respuesta) que hice aquí (no puedo usar la importación cuando se implementa con NodeJS).

¡La ayuda sería muy apreciada!

Respuestas (1)

uso address regAddress =0xF70ce669d4FA2BdEae1c4C61021627fC4b1d463Cy el error será descartado.

el truco es usar https://etherscan.io/ para devolverle la dirección con la suma de verificación.

La respuesta funcionó, pero ¿podría explicar por qué es esto?