Урок 4

Повышение эффективности кода с помощью модификаторов

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

Представление модификаторов

Давайте реализуем модификатор в нашем контракте Marketplace. Мы определим модификатор OnlySeller, который будет проверять, действительно ли вызывающая функция является продавцом товара.

Вот наш контракт Marketplace, обновленный модификатором OnlySeller:

Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

contract Marketplace {
 // Определите новую структуру для Items
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Массив для хранения всех элементов
 Item[] public items;

 // Модификатор, проверяющий, является ли вызывающая сторона продавцом элемента
 modifier onlySeller(uint _itemId) {
        require(msg.sender == items[_itemId].seller, "Only the owner can execute this");
        _;
    }

    // Функция удаления товара из продажи, обновленная модификатором 'onlySeller'
 function removeItemFromSale(uint _itemId) public onlySeller(_itemId) {
        items[_itemId].forSale = false;
    }

    // Функция обновления цены товара, обновляется с помощью модификатора 'onlySeller'
 function updateItemPrice(uint _itemId, uint _newPrice) public onlySeller(_itemId) {
        items[_itemId].price = _newPrice;
    }
}

Установив модификатор OnlySeller, мы сделали наши функции removeItemFromSale и updateItemPrice более эффективными и читаемыми.

Развертывание и взаимодействие с расширенным контрактом

После усовершенствования контракта Marketplace выполните те же шаги, что и в предыдущих уроках, для его компиляции и развертывания.

Как только контракт развернут, Вы можете взаимодействовать с ним точно так же, как и раньше. Благодаря усовершенствованиям, которые мы сделали в этом уроке, наш контракт стал более эффективным, его легче читать и обслуживать.

Поздравляем! Теперь Вы узнали, как создавать, совершенствовать и взаимодействовать с базовой децентрализованной рыночной площадкой на блокчейне Ethereum. На этом мы заканчиваем наш курс для начинающих по разработке смарт-контрактов с помощью Solidity. Продолжайте экспериментировать, учиться и строить!

Заключение

Поздравляем! Вы добрались до конца этого курса для начинающих по разработке смарт-контрактов с использованием Solidity. В течение четырех уроков мы изучали создание, развертывание и взаимодействие со смарт-контрактами в моделируемой среде Ethereum, используя IDE Remix.

Давайте подведем итог тому, чего мы достигли:

  • Урок 1: Представил основы Ethereum, блокчейна и смарт-контрактов. Мы разработали наш первый простой смарт-контракт, Item.sol, который определял один предмет, который можно было купить или продать.
  • Урок 2: Мы расширили наш первоначальный контракт и создали контракт Marketplace.sol, который позволял создавать, размещать и покупать несколько товаров.
  • Урок 3: Мы добавили дополнительную функциональность в нашу торговую площадку, введя методы для снятия товаров с продажи и для обновления цены товара.
  • Урок 4: Мы улучшили читаемость и эффективность нашего смарт-контракта, реализовав функцию Solidity под названием "модификаторы". Мы узнали, как сделать наш код более упорядоченным и безопасным.
    В ходе этого путешествия Вы не только приобрели прочный фундамент в области Solidity и разработки смарт-контрактов, но и сделали первые шаги на пути к становлению разработчика блокчейна. Вы узнали, как думать о децентрализованных приложениях, и почувствовали вкус инновационного потенциала технологии блокчейн.

Двигаясь вперед, Вы можете выбрать множество путей. Вы можете глубже погрузиться в Solidity, узнав о более продвинутых функциях и соображениях безопасности. Вы можете изучить другие блокчейн-платформы, такие как Polkadot, Cardano или Binance Smart Chain. В качестве альтернативы Вы можете узнать о разработке фронт-энда для dApps с использованием Web3.js или Ethers.js, или о развертывании Ваших контрактов в реальной сети Ethereum.

Какой бы путь Вы ни выбрали, всегда помните: наиболее эффективное обучение происходит на практике. Поэтому не бойтесь экспериментировать, строить, ломать и перестраивать. Каждая проблема, с которой Вы сталкиваетесь, - это возможность учиться и расти.

Спасибо за участие в этом курсе и присоединение к захватывающему миру разработки блокчейн. Революция в области блокчейна только начинается, и такие разработчики, как Вы, находятся на переднем крае. Итак, продолжайте учиться, продолжайте строить и, самое главное, получайте удовольствие!

Счастливого кодирования!

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.
Каталог
Урок 4

Повышение эффективности кода с помощью модификаторов

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

Представление модификаторов

Давайте реализуем модификатор в нашем контракте Marketplace. Мы определим модификатор OnlySeller, который будет проверять, действительно ли вызывающая функция является продавцом товара.

Вот наш контракт Marketplace, обновленный модификатором OnlySeller:

Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

contract Marketplace {
 // Определите новую структуру для Items
 struct Item {
        string name;
        uint price;
        address payable seller;
        bool forSale;
    }

    // Массив для хранения всех элементов
 Item[] public items;

 // Модификатор, проверяющий, является ли вызывающая сторона продавцом элемента
 modifier onlySeller(uint _itemId) {
        require(msg.sender == items[_itemId].seller, "Only the owner can execute this");
        _;
    }

    // Функция удаления товара из продажи, обновленная модификатором 'onlySeller'
 function removeItemFromSale(uint _itemId) public onlySeller(_itemId) {
        items[_itemId].forSale = false;
    }

    // Функция обновления цены товара, обновляется с помощью модификатора 'onlySeller'
 function updateItemPrice(uint _itemId, uint _newPrice) public onlySeller(_itemId) {
        items[_itemId].price = _newPrice;
    }
}

Установив модификатор OnlySeller, мы сделали наши функции removeItemFromSale и updateItemPrice более эффективными и читаемыми.

Развертывание и взаимодействие с расширенным контрактом

После усовершенствования контракта Marketplace выполните те же шаги, что и в предыдущих уроках, для его компиляции и развертывания.

Как только контракт развернут, Вы можете взаимодействовать с ним точно так же, как и раньше. Благодаря усовершенствованиям, которые мы сделали в этом уроке, наш контракт стал более эффективным, его легче читать и обслуживать.

Поздравляем! Теперь Вы узнали, как создавать, совершенствовать и взаимодействовать с базовой децентрализованной рыночной площадкой на блокчейне Ethereum. На этом мы заканчиваем наш курс для начинающих по разработке смарт-контрактов с помощью Solidity. Продолжайте экспериментировать, учиться и строить!

Заключение

Поздравляем! Вы добрались до конца этого курса для начинающих по разработке смарт-контрактов с использованием Solidity. В течение четырех уроков мы изучали создание, развертывание и взаимодействие со смарт-контрактами в моделируемой среде Ethereum, используя IDE Remix.

Давайте подведем итог тому, чего мы достигли:

  • Урок 1: Представил основы Ethereum, блокчейна и смарт-контрактов. Мы разработали наш первый простой смарт-контракт, Item.sol, который определял один предмет, который можно было купить или продать.
  • Урок 2: Мы расширили наш первоначальный контракт и создали контракт Marketplace.sol, который позволял создавать, размещать и покупать несколько товаров.
  • Урок 3: Мы добавили дополнительную функциональность в нашу торговую площадку, введя методы для снятия товаров с продажи и для обновления цены товара.
  • Урок 4: Мы улучшили читаемость и эффективность нашего смарт-контракта, реализовав функцию Solidity под названием "модификаторы". Мы узнали, как сделать наш код более упорядоченным и безопасным.
    В ходе этого путешествия Вы не только приобрели прочный фундамент в области Solidity и разработки смарт-контрактов, но и сделали первые шаги на пути к становлению разработчика блокчейна. Вы узнали, как думать о децентрализованных приложениях, и почувствовали вкус инновационного потенциала технологии блокчейн.

Двигаясь вперед, Вы можете выбрать множество путей. Вы можете глубже погрузиться в Solidity, узнав о более продвинутых функциях и соображениях безопасности. Вы можете изучить другие блокчейн-платформы, такие как Polkadot, Cardano или Binance Smart Chain. В качестве альтернативы Вы можете узнать о разработке фронт-энда для dApps с использованием Web3.js или Ethers.js, или о развертывании Ваших контрактов в реальной сети Ethereum.

Какой бы путь Вы ни выбрали, всегда помните: наиболее эффективное обучение происходит на практике. Поэтому не бойтесь экспериментировать, строить, ломать и перестраивать. Каждая проблема, с которой Вы сталкиваетесь, - это возможность учиться и расти.

Спасибо за участие в этом курсе и присоединение к захватывающему миру разработки блокчейн. Революция в области блокчейна только начинается, и такие разработчики, как Вы, находятся на переднем крае. Итак, продолжайте учиться, продолжайте строить и, самое главное, получайте удовольствие!

Счастливого кодирования!

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.