Активности, Роли, Тестнеты
April 2, 2023

Linea Testnet Check List

Linea - это новое поколение децентрализованных приложений, разработанных на Ethereum, которое представляет следующую эволюцию ConsenSys zkEVM.

Компания ConsenSys, создающая кошелек MetaMask, собрала $725 млн инвестиций от крупнейших фондов, таких как ParaFi Capital, Microsoft, SoftBank, CoinBase, DragonFly, DeFiance Capitalm, JP Morgan, MasterCard и других.

Linea является Layer2 проектом ConsenSys, и для этой сети должны выделить значительные финансовые ресурсы.

Ссылка на Testnet Portal - https://goerli.linea.build/

BRIDGE

Бриджим токены из Goerli в Linea:

  1. Используюем лендинг от разработчиков, интегрирован HOP. На вкладке faucet можно сминтить USDC и забриджить их.
  2. Используем мост от HOP.

HOP

Wrap

Вкладке convert, сначала оборачиваем токены.

Convert

Далее, конвертируем WETH в hETH, а также USDC => hUSDC.

Pool

Делаем депозит токенов в оба пула Linea

REMIX

Создаем два смарт контракта.

Переходим в https://remix.ethereum.org/

Смарт контракт ERC-20 токена.

В папке contracts создаем новый файл ERC20.sol и копируем в него код контракта.

//SPDX-License-Identifier: MIT
pragma solidity >=0.6.2;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract ExampleERC20 is ERC20, Ownable {
  string private TOKEN_NAME = "Your ERC20 Token Name";
  string private TOKEN_SYMBOL = "SYMBOL";

  uint256 private constant TOTAL_SUPPLY = 123456789;

  constructor()ERC20(TOKEN_NAME, TOKEN_SYMBOL) {
    _mint(msg.sender, TOTAL_SUPPLY);
  }

  function mint(address to, uint256 amount) public onlyOwner {
    _mint(to, amount);
  }

  function burn(address from, uint256 amount) public onlyOwner {
    _burn(from, amount);
  }
}

Меняем переменные на свои значения:

  • TOKEN_NAME
  • TOKEN_SYMBOL
  • TOTAL_SUPPLY

Переходим на вкладку Solidity compiler, выбираем предпоследнию версию из списка, на момент написания статьи доступна 0.8.19.

Переходим на вкладку Deploy & Run Transactions

Выбираем ENVIRONMENT = Injected Provider - MetaMask;

Account, автоматически подгрузится из MM.

Жмем Deploy.

Если все сделали правильно, в MM прилетит подтверждение транзакции.

После финализации транзакции, контракт появится во вкладке Deployed Contracts.

Раскрываем контракт, находим вкладку Mint, раскрываем вкладку и минтим себе какое-то количество токенов, указывая свой адрес и количество.

Также, мы можем сминтить токены на другие адреса.

Смарт контракт ERC-721 токена.

Проделываем теже самые действия для контракта:

//SPDX-License-Identifier: MIT
// contracts/ERC721.sol

pragma solidity >=0.6.2;

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 _tokenIds;

  constructor() ERC721("Your Item Name", "SYMBOL") {}

  // commented out unused variable
  // function awardItem(address player, string memory tokenURI)
  function awardItem(address player)
    public
    returns (uint256)
  {
    _tokenIds.increment();

    uint256 newItemId = _tokenIds.current();
    _mint(player, newItemId);
    // _setTokenURI(newItemId, tokenURI);

    return newItemId;
  }
}
  • Создаём файл nft.sol
  • Меняем название NFT.
  • Жмем ctrl+S
  • Деплоим;

Дальше во вкладке awardItem указываем свой адрес, а также любой другой адрес, кому мы хотим сминтить NFT.

UNISWAP

Переходим на https://swap.goerli.linea.build/#/swap

Меняем ETH => crUSDC

Переходим во вкладку POOL и воздаем пулы со своим токеном, в поле поиска копируем адрес созданного нами токена.

Адрес можно найти в https://explorer.goerli.linea.build/, сначала находим свой кошелек, затем созданный токен.

Truffle

Можем задеплоить контракт с помощью Truffle, для этого понадобиться сервер, а также 10 минут свободного времени.

Подробная статья по ссылке: https://teletype.in/@smartmove/ConsenSys-zkEVM-Truffle-Deploy-Contract

Подписывайся на телеграм канал Smart Move

>>> https://t.me/smrtmv <<<

Обзоры проектов, токеномика, аналитика, сравнения.