Найти в Дзене
Definition

Как создать смарт-контракт для метавселенной

Как создать смарт-контракт для метавселенной

Метавселенная — это виртуальное представление реального мира. Она позволяет пользователям играть, общаться, строить бизнесы, развлекаться и жить в онлайне.

Актуальные проекты метавселенных не похожи на то, что мы читаем в определениях, но креаторы стремятся к этому. Можете прочитать выжимку из конспекта о перспективах метавселенных, если пропустили пост.

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

🔸Доверие и надежность, подкрепленные неизменяемостью блокчейна

🔸Автоматизация исключает участие третей стороны во всех транзакциях внутри

🔸Легкая и прозрачная торговля NFT

🔸Прозрачность, наглядность и ясность

🔸Защита от мошенничества

Структура и функциональность смарт-контрактов зависят от требований к функциям и технических аспектов проекта метавселенной.

Популярные проекты, такие как Decentraland и Axie Infinity, используют смарт-контракты для управления торговлей NFT (земли, недвижимость и тд). Смарт-контракт может поддерживать различные токены, включая токены ERC (ERC-721 и ERC-1155).

Давайте рассмотрим разработку смарт-контрактов для стандартов ERC: ERC721 и ERC1155.

1️⃣Составление кода смарт-контракта

Структура смарт-контракта на базе ERC-1155 очень похожа на структуру смарт-контракта ERC-720. Структура смарт-контракта "Asteroid.sol" похожа на "Character.sol". Чтобы скомпилировать код контракта, используйте следующую команду:

solidity >=0.6.12 <0.9.0;

2️⃣Импорт контрактов

Для импорта смарт-контрактов используйте одну из команд:

import “@openzeppelin/contracts/token/ERC1155/ERC1155.sol”; //

import “@openzeppelin/contracts/utils/math/SafeMath.sol”;

import “@openzeppelin/contracts/access/Ownable.sol”;

import “@openzeppelin/contracts/utils/Counters.sol”;

import “@openzeppelin/contracts/utils/Strings.sol”;

3️⃣Определение наследования

После этого необходимо определить наследование от ранее импортированного контракта. Для этого используйте следующую команду:

Object is ERC1155, Ownable {

using Counters for Counters.Counter;

using SafeMath для uint256;

using Strings для string;

Counters.Counter private _tokenIDS;

4️⃣Определите паблик переменные

Используя следующий код строки, вы определяете переменную для контракта:

uint256 public cost = 0.00 ether;

uint256 public maxSupply = 10000;

5️⃣Определение структуры контракта

Для этого необходимо использовать "function Object() { [native code] }()". Выполните следующую команду:

ERC1155(“ipfs://QmPJvYnCSeZUyqdiNpEgv4KWBVWK1SEh2Y8X1uScXWCCYg/{id}.json”)

{

name = “Asteroid”;

symbol = “AROID”;

tokensInCirculation = 0;

}

Этот стандарт токенов (ERC-1155 )позволяет пользователям минтить/покупать участки земли, полностью децентрализованно через IPFS. Кроме того, ERC-1155 разработан специально для поддержки массового сейлов.

Развертывание смарт-контракта

Ваш смарт-контракт готов к развертыванию после того, как вы выполнили предыдущие шаги. Вы можете развернуть контракт без проблем с помощью Remix. О ремиксе подробнее рассказывали в посте об инструментах для блокчейн разработчика.

Вы также можете использовать примеры смарт-контрактов из предыдущих шагов и скопировать их коды в Remix. Создайте новый файл, вставьте в него код и сохраните его.

После сохранения кода просто скомпилируйте смарт-контракт, и он будет готов к развертыванию. Для выполнения контракта держите наготове кошелек MetaMask с достаточным количеством тестовых токенов.