Вызов функции в другом контракте (ошибка неверной контрольной суммы)

Я знаю, что таких вопросов много, но я считаю, что это другое.

Основываясь на этом вопросе , я написал это

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);
    }
}

Также я на 100% уверен, что Реестр контрактов был заминирован по адресу 0xf70ce669d4fa2bdeae1c4c61021627fc4b1d463c.

Вставка как есть в Remix возвращает ошибку

This looks like an address but has invalid checksum

После этого ответа я попытался преобразовать адрес в верхний регистр. Это возвращает

TypeError: Invalid literal value

Одно предложение в вопросе - использовать import. Я не делаю этого из-за другого (без ответа) вопроса, который я задал здесь (не могу использовать импорт при развертывании с помощью NodeJS).

Помощь будет высоко оценена!

Ответы (1)

используйте address regAddress =0xF70ce669d4FA2BdEae1c4C61021627fC4b1d463C, и ошибка будет уволена.

хитрость заключается в том, чтобы использовать https://etherscan.io/ , чтобы вернуть вам адрес с контрольной суммой.

Ответ сработал, но не могли бы вы объяснить, почему это так?