Есть ли какая-либо прибыль от использования чистых модификаторов функций просмотра?

У меня есть функция, которая не считывает и не изменяет состояние контракта:

contract C {

    function add(uint a, uint b) public returns (uint) {
        uint res = a + b;
        return res;
    }

}

Имеет ли смысл использовать модификатор pure /view? Я имею в виду, будет ли функция использовать меньше газа после этого или в чем причина его использования?

4 голоса | спросил 30mb1 15 +03002017-10-15T15:27:48+03:00312017bEurope/MoscowSun, 15 Oct 2017 15:27:48 +0300 2017, 15:27:48

1 ответ


13

Если вы можете сделать свою функцию pure, вы всегда должны сделать ее pure. В противном случае, если вы можете сделать свою функцию view, вы всегда должны сделать ее view.

Преимущества:

  • Если вы создаете свою функцию pure или view, вы можете вызвать его, например, через web3.js, не требуя транзакции, без какой-либо стоимости газа и без задержки подтверждения.

  • В настоящее время он не будет уменьшать стоимость газа при выполнении на EVM. Однако в будущем это может помочь компилятору Solidity оптимизировать вашу программу.

  • Это предотвратит случайное чтение или запись состояния контракта в тех функциях, где вы не хотите.

Недостатки:

(нет)

ответил Jesse Busman 15 +03002017-10-15T16:32:18+03:00312017bEurope/MoscowSun, 15 Oct 2017 16:32:18 +0300 2017, 16:32:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132