Перейти до вмісту

5ire EVM-мережа

5ire IDE

Примітка: Щоб почати користуватися 5ire IDE, користувачі повинні встановити і налаштувати свій гаманець. Перейдіть до цього розділу, щоб почати налаштування гаманця 5ire.

  1. Перейдіть до платформи 5ire IDE.

  2. Перейдіть до Робочого простору з меню на лівій панелі і виберіть іконку Створити новий файл.

    EVM Image1

  3. Створіть новий файл у папці contracts з назвою “5ire.sol”

    EVM Image2

    Буде створено новий файл, а головна панель стане порожньою.

  4. Написання коду

    Ви можете вставити наявний код в головну панель файлу 5ire.sol або завантажити файл контракту в робочу область.

    Ви також можете використовувати наведений нижче зразок коду ERC-20:

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.13;
    // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
    interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(
    address sender,
    address recipient,
    uint amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
    contract ERC20 is IERC20 {
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;
    string public name = "Solidity by Example";
    string public symbol = "SOLBYEX";
    uint8 public decimals = 18;
    function transfer(address recipient, uint amount) external returns (bool) {
    balanceOf[msg.sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(msg.sender, recipient, amount);
    return true;
    }
    function approve(address spender, uint amount) external returns (bool) {
    allowance[msg.sender][spender] = amount;
    emit Approval(msg.sender, spender, amount);
    return true;
    }
    function transferFrom(
    address sender,
    address recipient,
    uint amount
    ) external returns (bool) {
    allowance[sender][msg.sender] -= amount;
    balanceOf[sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(sender, recipient, amount);
    return true;
    }
    function mint(uint amount) external {
    balanceOf[msg.sender] += amount;
    totalSupply += amount;
    emit Transfer(address(0), msg.sender, amount);
    }
    function burn(uint amount) external {
    balanceOf[msg.sender] -= amount;
    totalSupply -= amount;
    emit Transfer(msg.sender, address(0), amount);
    }
    }

    Ось як виглядатиме ваш екран після вставки вищезгаданого коду:

    EVM Image3

  5. Компіляція

    Перейдіть до компілятора Solidity з лівої панелі.

    Щоб скомпілювати контракт, виберіть потрібний файл у провіднику файлів або переконайтеся, що потрібний файл є активним у редакторі, якщо відкрито кілька файлів.

    Якщо у файловому провіднику вибрано активний файл, то компілятор контрактів матиме такий вигляд:

    EVM Image4

    Натисніть на кнопку Скомпілювати 5ire.sol, щоб скомпілювати файл контракту.

    Після успішної компіляції ваш екран виглядатиме так:

    EVM Image5

  6. Розгортання

    Перейдіть на бічну панель Розгортання та запуск транзакцій на лівій панелі.

    Для того, щоб використовувати цей модуль, необхідно мати скомпільований контракт. Отже, якщо у полі вибору CONTRACT є назва контракту (поле вибору знаходиться під полем введення VALUE), ви можете використовувати цей модуль.

    • Провайдер 5ire: Для підключення 5ire IDE до інжектованого web3-провайдера. Найпоширенішими ін’єкційними провайдерами є MetaMask та розширення 5ire Wallet.

    • Hardhat провайдер: Для підключення 5ire IDE до локального тестового ланцюжка Hardhat.

    • Ganache-провайдер: Для підключення 5ire IDE до локального тестового ланцюжка Truffle Ganache.

    EVM Image6

    Натисніть на кнопку Розгорнути.

    Підтвердіть транзакцію на розширенні Web3.

    Відеоурок:

    Після підтвердження транзакції в терміналі з’являться деталі розгортання, адреса контракту та транзакція:

    EVM Image7

Використання Explorer

  1. Клонування вузла 5ireChain

    • У вашій системі відкрийте оболонку терміналу.

    • Клонуйте репозиторій вузла firechain-evm-base, виконавши наступну команду:

      HTTPS:

      https://github.com/5ire-tech/5ire-evm-base.git

      SSH:

      [email protected]:5ire-tech/5ire-evm-base.git
  2. Підключення до вузла

    • Якщо потрібно, відкрийте оболонку терміналу у вашій локальній системі.

    • Змініть кореневий каталог, куди ви скомпілювали базу 5ire EVM.

    • Запустіть вузол в режимі розробки, виконавши наступну команду:

      Cargo build –release

      ./target/release/firechain-node --dev (це запустить вузол у режимі розробки.)

      Параметр командного рядка —dev вказує на те, що вузол працює за попередньо визначеною специфікацією ланцюжка розробки, яка включає спеціальний обліковий запис EVM для Alice, а також інші облікові записи, спеціально створені для цілей тестування.

    • Ви можете перевірити, чи успішно працює ваш вузол, переглянувши дані, що відображаються у терміналі.

      Термінал має виводити приблизно такий результат:

      EVM Image8

      EVM Image9

    • Використовуйте додаток Polkadot-JS для підключення до локального вузла.

    • У верхній панелі натисніть на випадаюче меню розробника.

    • Створіть контракт токена.

    • Виберіть Extrinsics.

    • Для відправки транзакції виберіть в якості облікового запису накопичувальний рахунок для розробки.

    • Виберіть EVM (віртуальна машина Ethereum).

    • Виберіть функцію створення.

    • Налаштуйте параметри функції.

      Для цьогоВкажіть це
      Джерело0xd43593c715fdd31c61141abd04a99fd6822c8558 (H160 Адреса обраного рахунку)
      ІнітВведіть необроблений байт-код токена
      Вартість0
      Ліміт газу42949672
      Максимальна плата за газ1000000
    • Необов’язкові параметри можна залишити порожніми. Значення nonce збільшить відомий nonce для цілей облікового запису-джерела. Це починається з 0x0. Залежно від обраної функції, вам доведеться видалити невикористовувані параметри.

    • Натисніть “Відправити транзакцію”. Це запустить процес завершення вашої транзакції.

    • Щоб авторизувати транзакцію, натисніть Надіслати та підписати. Це призведе до завершення транзакції.

      EVM Image10

Remix IDE

Ви можете розгорнути смарт-контракт на ланцюжку 5ire EVM за допомогою Remix IDE, виконавши наступні кроки:

  1. Щоб ініціювати транзакцію, перейдіть за цим посиланням.

  2. Під робочим простором натисніть на кнопку “Створити новий файл”. Це допоможе вам створити новий документ, з якого ви зможете почати роботу над розгортанням смарт-контракту в ланцюжку 5ire EVM

    Remix Image1

  3. Створіть новий файл під контрактами з ім’ям 5ire.sol. Це допоможе вам створити нову програму, за допомогою якої ви зможете розгорнути смарт-контракт на 5ire.

    Remix Image2

  4. Скопіюйте та вставте код, наведений нижче, у файл 5ire.sol.

    Тут наведено приклад коду для токена ERC-20:

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.13;
    // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
    interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(
    address sender,
    address recipient,
    uint amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
    contract ERC20 is IERC20 {
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;
    string public name = "Solidity by Example";
    string public symbol = "SOLBYEX";
    uint8 public decimals = 18;
    function transfer(address recipient, uint amount) external returns (bool) {
    balanceOf[msg.sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(msg.sender, recipient, amount);
    return true;
    }
    function approve(address spender, uint amount) external returns (bool) {
    allowance[msg.sender][spender] = amount;
    emit Approval(msg.sender, spender, amount);
    return true;
    }
    function transferFrom(
    address sender,
    address recipient,
    uint amount
    ) external returns (bool) {
    allowance[sender][msg.sender] -= amount;
    balanceOf[sender] -= amount;
    balanceOf[recipient] += amount;
    emit Transfer(sender, recipient, amount);
    return true;
    }
    function mint(uint amount) external {
    balanceOf[msg.sender] += amount;
    totalSupply += amount;
    emit Transfer(address(0), msg.sender, amount);
    }
    function burn(uint amount) external {
    balanceOf[msg.sender] -= amount;
    totalSupply -= amount;
    emit Transfer(msg.sender, address(0), amount);
    }
    }

    Ось так виглядатиме ваш екран після того, як ви вставите вищезгаданий код:

    Remix Image3

  5. Клацніть на Solidity Compiler і виберіть компілятор 5ire.sol.

    Remix Image4

    Remix Image5

  6. Натисніть “Розгорнути і запустити транзакції”, щоб виконати бажані транзакції.

    Remix Image6

  7. Розгорніть контракт 5ire.sol. Виберіть Injected Web3 для розгортання в реальній мережі. У цьому випадку ми вибрали MetaMask як ін’єкційного провайдера.

    Remix Image7

  8. Підтвердіть транзакцію після перевірки деталей. Вам потрібно ввести адресу гаманця, а також суму, яка буде переказана на рахунок одержувача.

    Remix Image8

  9. Підтвердіть газову комісію в MetaMask для розгортання транзакцій в ланцюжку 5ire EVM (газова комісія - це невелика комісія за транзакцію, яка використовується для завершення транзакції).

    Remix Image9

  10. Знайдіть адресу розгорнутого контракту в Remix і оновіть його, взаємодіючи з інтегрованими функціями.

    Remix Image10

Ganache

Ganache - це приватне блокчейн-середовище Ethereum, яке дозволяє емулювати блокчейн Ethereum для взаємодії зі смарт-контрактами в приватному блокчейні. Воно може запускати тести, виконувати команди і перевіряти стани, контролюючи роботу ланцюжка.

Щоб завантажити Ganache, перейдіть за цим посиланням.

У цьому посібнику ми розповімо вам про процес розгортання смарт-контракту за допомогою Ganache:

  1. Відкрийте Remix IDE в браузері і створіть новий файл в розділі контрактів.

    Ganache Image1

  2. Скористайтеся одним із шаблонів коду і скомпілюйте його, натиснувши кнопку Скомпілювати, як показано нижче.

    Ganache Image2

  3. Після компіляції відкрийте Ganache на робочому столі. Ваш екран буде схожий на ілюстрацію нижче. Натисніть на кнопку QUICKSTART Ethereum.

    Ganache Image3

  4. Тепер ви побачите 10 облікових записів за замовчуванням, а також мнемоніку для вашого блокчейну на локальному RPC-сервері (HTTP://127.0.0.1:7545), як показано нижче:

    Ganache Image4

  5. Поверніться до браузера і перейдіть до розділу Розгортання відразу під Компіляція і виберіть Ganache Провайдер з середовища, як показано нижче:

    Ganache Image5

  6. Введіть сервер http://127.0.0.1:7545 як провайдера Ganache. Ваш екран буде виглядати так, як показано нижче:

    Ganache Image6

  7. Ваш контракт готовий до розгортання! Натисніть на кнопку “Розгорнути”, щоб продовжити.

    Ganache Image7

  8. Перевірте вкладку результатів, щоб переконатися, що ваш контракт успішно розгорнуто.

    Ganache Image8

  9. Щоб перевірити, чи була ваша транзакція (процес) успішно відображена на сервері, відкрийте Ganache і перейдіть до розділу “Транзакції”. Тут ви побачите деталі вашої транзакції, як показано на зображенні нижче:

    Ganache Image9

    Відеоурок:

Hardhat

Цей посібник описує процес розгортання смарт-контракту EVM за допомогою Hardhat, який буде здійснюватися на 5ire EVM IDE.

  1. Почніть зі створення теки проекту. У цьому посібнику теку проекту буде названо “mkdir hardhat-tutorial”.

    Hardhat Image1

  2. Запустіть команду npx hardhat.

  3. Наступним кроком виберіть пункт Створити проект Javascript/Typescript у відповідь на запитання “Що ви хочете зробити?”.

    Hardhat Image2

  4. Додайте корінь проекту hardhat, створений на початку.

    Hardhat Image3

  5. Натисніть “Y”, щоб завершити процес.

    Hardhat Image4

  6. Після завершення процесу ваш екран буде виглядати так, як показано на зображенні нижче.

    Hardhat Image5

  7. Відкрийте Remix IDE і виберіть Розгортання та запуск транзакцій.

    Hardhat Image6

  8. Виберіть Hardhat Provider.

    Hardhat Image7

  9. Якщо з’єднання встановлено, ви побачите ідентифікатор ланцюжка і список акаунтів.

    Hardhat Image8

  10. Запустіть команду npx hardhat node. Вона відобразить список з 20 акаунтів з балансом 10000 ETH.

    Hardhat Image9

  11. Натиснувши на кнопку “Розгорнути”, ви можете ініціювати розгортання конкретного смарт-контракту, і якщо все пройде добре, ваша транзакція буде успішною..

    Hardhat Image10

  12. Ви можете перевірити завершення транзакції, перевіривши термінал.

    Hardhat Image11

Відеоурок: