5ire EVM-сеть
5ire IDE
Примечание: Чтобы начать пользоваться 5ire IDE, пользователи должны установить и настроить свой кошелек. Перейдите к этому разделу, чтобы начать настройку кошелька 5ire.
Шаг 1: Перейдите к платформе 5ire IDE..
Шаг 2: Перейдите в Рабочее пространство из меню на левой панели и выберите иконку Создать новый файл.
Шаг 3: Создайте новый файл в папке contracts с названием "5ire.sol"
- Будет создан новый файл, а главная панель станет пустой.
Примечание: .sol - это расширение файлов Solidity.
Шаг 4: Написание кода
YВы можете вставить имеющийся код в главную панель файла 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 перейдите по этой ссылке to download 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.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 и выберите Развертывание и запуск транзакций.
Шаг 8: Выберите Hardhat Provider.
Шаг 9: Если соединение установлено, вы увидите идентификатор цепочки и список аккаунтов.
Шаг 10: Запустите команду npx hardhat node
. Она отобразит список из 20 аккаунтов с балансом 10000 ETH.
Шаг 11: Нажав на кнопку "Развернуть", вы можете инициировать развертывание конкретного смарт-контракта, и если все пройдет хорошо, ваша транзакция будет успешной.
Шаг 12: Вы можете проверить завершение транзакции, проверив терминал.
Видеоурок: