July 14, 2023

Base: от тестнета до деплоя смарт-контракта

Гайд по тестнету:

Ну а теперь к тестнету. Переходим в сам мост (бридж) от Base и коннектим свой кошелек METAMASK:

И здесь мы депозитим ETH из Goerli -> Base, подтверждая все транзакции:

Переходим в Transactions и смотрим прошла транзкация или нет. ОБычно занимает от 1 до 5 мин.

Если все отлично статус отображает Complete.

Далее проделываем обратную операцию - переходим во вкладку Withdraw и выводим из Base Goerli -> Goerli:

Если появляется окно смена сети жмем switch network

Переходим в раздел Transaction для проверки статуса транзакций. Ждем пока не появится кнопка на переключение сети Switch to L1 и нажимаем ее.

И сабмитим свой пруф:

Последним шагом нажимаем на Finalize (может потребоваться перезагрузка странички). В итоге все транзы должны быть в статусе Complete:


Гайд по деплою и развертыванию смарт-контракта в Base Goerli

Итак, открываем IDE и выполняем по инструкции.

Переходим в Remix и создаем новый файл New File, даем ему название base.sol:

Откроется редактор, встравляем туда ранее скопированный код:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
contract NFT is ERC721 {
    using Counters for Counters.Counter;
    Counters.Counter private currentTokenId;
    
    constructor() ERC721("NFT Name", "NFT") {}
    
    function mint(address recipient)        
        public        
        returns (uint256)    
    {        
        currentTokenId.increment();        
        uint256 tokenId = currentTokenId.current();        
        _safeMint(recipient, tokenId);        
        return tokenId;    
    }
}

Переходим в раздел с компиляцией (3ий пункт), сверху выбираем 0.8.17+ и нажимаем Compile:

Переходим в раздел деплоя и в секции Environment выбираем Injected Provider - Metamask, подписываем все транзакции:

Нажимаем оранжевую кнопку Deploy и подтверждаем транзакцию в кошельке (в зависимости от нагрузки сети будет выставлена Network Fee).

В случае успеха будет такое сообщение в логах:

Теперь можно повзаимодействовать с контрактом. Разворачиваем задеплоенный контракт и в поле Mint вставляем адрес своего Метамаска:

Нажимаем mint и подтверждаем транзакцию. Зеленая галочка в логах отобразит успешность операции, переходим в кошелек Metamask в пункт Активность где увидим в истории транзу с именем Mint. Заходим туда и кликаем по Адресату, откроется окно с адресом также скопируйте его - он нам пригодится позже:

Деплой смарт-контракта произведен успешно!


Минт NFT за деплой смарт-контракта

Если выполняли предыдущий пункт и деплоили смарт-контракт, то можно пройти квест и заминтить NFT.

Переходим на сайт https://quests.base.org/quest и коннектим свой кошелек:

Нажимаем Start Quest и принимаем условия пользовательского соглашения:

Также нам потребуется gETH в сети Base. Если делали весь гайд то у вас должны остаться какие-то копейки.

Далее нажимаете Continue в пункте DEPLOY CONTRACT ON TESTNET необходимо вставить адрес самого смарт-контракта (который создавали выше) и нажимаем Verify Transaction:

Должна появиться надпись "Nice work! This is a valid smart contract". И далее уже минтим NFT:

Минт нфт готов.