Как данные отправляются во внешний интерфейс функцией просмотра? - PullRequest
0 голосов
/ 30 мая 2020

Мне нужно отправить некоторые данные из функции только для просмотра во внешний интерфейс. Я попробовал использовать стандартный подход, создав событие с обязательными полями. Однако, когда вызов emit помещается в функцию типа представления, я получаю сообщение об ошибке, указывающее, что вызов emit потенциально изменяет состояние и, следовательно, не может находиться в функции представления.

Как данные отправляются во внешний интерфейс функцией просмотра, если событие не может быть использовано?

event TestEvent (uint id);
function test() public view {
    emit TestEvent(123);
}

//Output
... TypeError: Function declared as view, but this expression (potentially) modifies the state and thus requires non-payable (the default) or payable.
...

1 Ответ

0 голосов
/ 08 июня 2020

Эмиссия событий постоянно хранится в блокчейне. Таким образом, он вызывает изменение состояния и должен быть помещен в функцию без просмотра.

Вместо этого значения могут быть возвращены из функции только для просмотра с использованием return например, return 123

...