Браузер Solidity — проблема с каждым примером => Ошибка: тип «адрес» не поддерживается для переменной состояния

Я очень новичок в блокчейне и Ethereum. Я хочу начать работу с облачным сервисом BaaS и разработать / выполнить несколько смарт-контрактов. Я успешно настроил шаблон Azure Ethereum ( https://github.com/Azure/azure-quickstart-templates/tree/master/ethereum-consortium-blockchain-network ) и хочу использовать Solidity Browser для создания первого контракта. Как и в соответствующем примере, я использую MetaMask в Chrome для подтверждения транзакций.

Моя проблема: я попробовал несколько примеров смарт-контрактов Solidity в браузере Solidity. Все показывают одну конкретную ошибку:

Ошибка: тип «адрес» не поддерживается для переменной состояния

Я думаю, что именно по этой причине ничего не происходит, кроме «ожидания майнинга» в браузере Solidity. На самом деле MetaMask должен всплывать для подтверждения транзакции, как в туториале, но в MetaMask ничего не происходит. Сначала я подумал, что это проблема с моим блокчейн-кластером или шаблоном (поэтому я также разместил эту проблему здесь: https://github.com/Azure/azure-quickstart-templates/issues/2797 ), но спустя некоторое время поигравшись, я думаю, что проблема связана не с Azure, а только с Solidity и Solidity Browser.

Я также пробовал разные версии компилятора (например, самую последнюю и ту же версию, что и смарт-контракт), но всегда одно и то же сообщение об ошибке. Обратите внимание, что все смарт-контракты НЕ отображают ошибки компиляции в самом редакторе. Эта ошибка отображается на вкладке «официальная проверка».

Как я уже сказал, это происходит с любым примером — вот что я нахожу таким странным… Возьмем этот с https://www.ethereum.org/greeter :

contract mortal {
/* Define variable owner of the type address*/
address owner;

/* this function is executed at initialization and sets the owner of the contract */
function mortal() { owner = msg.sender; }

/* Function to recover the funds on the contract */
function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
/* define variable greeting of the type string */
string greeting;

/* this runs when the contract is executed */
function greeter(string _greeting) public {
    greeting = _greeting;
}

/* main function */
function greet() constant returns (string) {
    return greeting;
}
}

Кто-нибудь может мне помочь? Что мне не хватает?

Спасибо.

Ответы (2)

Кажется, это новая ошибка, недавно появившаяся в браузерной солидности, и Mist также затронут:

https://github.com/ethereum/browser-solidity/issues/342#issuecomment-262764137

Просто обновить: проблема исправлена ​​в то же время. Несмотря на то, что вы по-прежнему получаете эту ошибку проверки, вы можете снова успешно создавать контракты с помощью Solidity Browser.

да, вы можете создать контракт, но методы контракта не дают надлежащего результата.