5ire EVM-мережа
5ire IDE
Примітка: Щоб почати користуватися 5ire IDE, користувачі повинні встановити і налаштувати свій гаманець. Перейдіть до цього розділу, щоб почати налаштування гаманця 5ire.
Крок 1: Перейдіть до платформи 5ire IDE 5ire IDE Platform.
Крок 2: Перейдіть до Робочого простору з меню на лівій панелі і виберіть іконку Створити новий файл.
Крок 3: Створіть новий файл у папці contracts з назвою "5ire.sol"
- Буде створено новий файл, а головна панель стане порожньою.
Примітка: .sol - це розширення файлів Solidity.
Крок 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);
}
}
Ось як виглядатиме ваш екран після вставки вищезгаданого коду:
Крок 5: Компіляція
Перейдіть до компілятора Solidity з лівої панелі.
Щоб скомпілювати контракт, виберіть потрібний файл у провіднику файлів або переконайтеся, що потрібний файл є активним у редакторі, якщо відкрито кілька файлів.
Якщо у файловому провіднику вибрано активний файл, то компілятор контрактів матиме такий вигляд:
Натисніть на кнопку Скомпілювати 5ire.sol, щоб скомпілювати файл контракту.
Після успішної компіляції ваш екран виглядатиме так:
Крок 6: Розгортання
Перейдіть на бічну панель Розгортання та запуск транзакцій на лівій панелі.
Для того, щоб використовувати цей модуль, необхідно мати скомпільований контракт. Отже, якщо у полі вибору CONTRACT є назва контракту (поле вибору знаходиться під полем введення VALUE), ви можете використовувати цей модуль.
Провайдер 5ire: Для підключення 5ire IDE до інжектованого web3-провайдера. Найпоширенішими ін'єкційними провайдерами є MetaMask та розширення 5ire Wallet.
Hardhat провайдер: Для підключення 5ire IDE до локального тестового ланцюжка Hardhat.
Ganache-провайдер: Для підключення 5ire IDE до локального тестового ланцюжка Truffle Ganache.
Натисніть на кнопку Розгорнути.
Підтвердіть транзакцію на розширенні Web3.
Відеоурок:
- Після підтвердження транзакції в терміналі з'являться деталі розгортання, адреса контракту та транзакція:
Використання 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, а також інші облікові записи, спеціально створені для цілей тестування.
- Ви можете перевірити, чи успішно працює ваш вузол, переглянувши дані, що відображаються у терміналі.
Термінал має виводити приблизно такий результат:
Використовуйте додаток Polkadot-JS для підключення до локального вузла.
У верхній панелі натисніть на випадаюче меню розробника.
Створіть контракт токена.
Примітка: Для зручності ви можете використовувати скомпільований байт-код контракту токена в MyToken.json для розгортання контракту в 5ire EVM Chain.
Виберіть Extrinsics.
Для відправки транзакції виберіть в якості облікового запису накопичувальний рахунок для розробки.
Виберіть EVM (віртуальна машина Ethereum).
Виберіть функцію створення.
Налаштуйте параметри функції.
Для цього | Вкажіть це |
---|---|
Джерело | 0xd43593c715fdd31c61141abd04a99fd6822c8558 (H160 Адреса обраного рахунку) |
Ініт | Введіть необроблений байт-код токена |
Вартість | 0 |
Ліміт газу | 42949672 |
Максимальна плата за газ | 1000000 |
Необов'язкові параметри можна залишити порожніми. Значення nonce збільшить відомий nonce для цілей облікового запису-джерела. Це починається з 0x0. Залежно від обраної функції, вам доведеться видалити невикористовувані параметри.
Натисніть "Відправити транзакцію". Це запустить процес завершення вашої транзакції.
Щоб авторизувати транзакцію, натисніть Надіслати та підписати. Це призведе до завершення транзакції.
Remix IDE
Ви можете розгорнути смарт-контракт на ланцюжку 5ire EVM за допомогою Remix IDE, виконавши наступні кроки:
Крок 1: Щоб ініціювати транзакцію, перейдіть за цим посиланням.
Крок 2: Під робочим простором натисніть на кнопку "Створити новий файл". Це допоможе вам створити новий документ, з якого ви зможете почати роботу над розгортанням смарт-контракту в ланцюжку 5ire EVM
Крок 3: Створіть новий файл під контрактами з ім'ям 5ire.sol. Це допоможе вам створити нову програму, за допомогою якої ви зможете розгорнути смарт-контракт на 5ire.
Крок 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);
}
}
Ось так виглядатиме ваш екран після того, як ви вставите вищезгаданий код:
Крок 5: Клацніть на Solidity Compiler і виберіть компілятор 5ire.sol.
Крок 6: Натисніть "Розгорнути і запустити транзакції", щоб виконати бажані транзакції.
Крок 7: Розгорніть контракт 5ire.sol. Виберіть Injected Web3 для розгортання в реальній мережі. У цьому випадку ми вибрали MetaMask як ін'єкційного провайдера.
Крок 8: Підтвердіть транзакцію після перевірки деталей. Вам потрібно ввести адресу гаманця, а також суму, яка буде переказана на рахунок одержувача.
Крок 9: Підтвердіть газову комісію в MetaMask для розгортання транзакцій в ланцюжку 5ire EVM (газова комісія - це невелика комісія за транзакцію, яка використовується для завершення транзакції).
Крок 10: Знайдіть адресу розгорнутого контракту в Remix і оновіть його, взаємодіючи з інтегрованими функціями.
Ganache
Ganache - це приватне блокчейн-середовище Ethereum, яке дозволяє емулювати блокчейн Ethereum для взаємодії зі смарт-контрактами в приватному блокчейні. Воно може запускати тести, виконувати команди і перевіряти стани, контролюючи роботу ланцюжка.
Щоб завантажити Ganache, перейдіть за цим посиланням..
У цьому посібнику ми розповімо вам про процес розгортання смарт-контракту за допомогою Ganache:
Крок 1: Відкрийте Remix IDE в браузері і створіть новий файл в розділі контрактів.
Крок 2: Скористайтеся одним із шаблонів коду і скомпілюйте його, натиснувши кнопку Скомпілювати, як показано нижче.
Крок 3: Після компіляції відкрийте Ganache на робочому столі. Ваш екран буде схожий на ілюстрацію нижче. Натисніть на кнопку QUICKSTART Ethereum.
Крок 4: Тепер ви побачите 10 облікових записів за замовчуванням, а також мнемоніку для вашого блокчейну на локальному RPC-сервері (HTTP://127.0.0.1:7545), як показано нижче:
Крок 5: Поверніться до браузера і перейдіть до розділу Розгортання відразу під Компіляція і виберіть Ganache Провайдер з середовища, як показано нижче:
Крок 6: Введіть сервер HTTP://127.0.0.1:7545 як провайдера Ganache. Ваш екран буде виглядати так, як показано нижче:
Крок 7: Ваш контракт готовий до розгортання! Натисніть на кнопку "Розгорнути", щоб продовжити.
Крок 8: Перевірте вкладку результатів, щоб переконатися, що ваш контракт успішно розгорнуто
Крок 9: Щоб перевірити, чи була ваша транзакція (процес) успішно відображена на сервері, відкрийте Ganache і перейдіть до розділу "Транзакції". Тут ви побачите деталі вашої транзакції, як показано на зображенні нижче:
Відеоурок:
Hardhat
Цей посібник описує процес розгортання смарт-контракту EVM за допомогою Hardhat, який буде здійснюватися на 5ire EVM IDE.
Крок 1: Почніть зі створення теки проекту. У цьому посібнику теку проекту буде названо "mkdir hardhat-tutorial".
Крок 2: Запустіть команду npx hardhat
.
Крок 3: Наступним кроком виберіть пункт Створити проект Javascript/Typescript у відповідь на запитання "Що ви хочете зробити?".
Крок 4: Додайте корінь проекту hardhat, створений на початку.
Крок 5: Натисніть "Y", щоб завершити процес.
Крок 6: Після завершення процесу ваш екран буде виглядати так, як показано на зображенні нижче.
Крок 7: Відкрийте Remix IDE Remix IDE і виберіть Розгортання та запуск транзакцій.
Крок 8: Виберіть Hardhat Provider.
Крок 9: Якщо з'єднання встановлено, ви побачите ідентифікатор ланцюжка і список акаунтів.
Крок 10: Запустіть команду npx hardhat node
. Вона відобразить список з 20 акаунтів з балансом 10000 ETH.
Крок 11: Натиснувши на кнопку "Розгорнути", ви можете ініціювати розгортання конкретного смарт-контракту, і якщо все пройде добре, ваша транзакція буде успішною.
Крок 12: Ви можете перевірити завершення транзакції, перевіривши термінал.
Відеоурок: