Cover photo

Большой, длинный, необрезанный гайд по дропу от zkSync

Автор: https://t.me/clear_investor Дата обновления 06.04.2023

Предисловие

Встречайте обновленный гайд по движу в zkSync! В нем я собрал основные активности, за которые ранних юзеров могут наградить жирным дропчиком!

Гайд будет дополняться, так что заглядывайте сюда время от времени. Также не стесняйтесь делиться своими мыслями и дополнениями в нашем чате. Конструктивная критика приветствуется!

*Для прохождения гайда нам понадобится ETH в сети Ethereum Mainnet. Я рекомендую гонять сайз побольше, 500-1000 долларов в эфире будет норм. Но если вы лоубанк, сделайте активности хотя бы с 100$.

О проекте

zkSync — это L2-решение поверх Ethereum. Проект собрал $458 млн и выйдет в майнет в 2023 году. Кто-то говорит, что делать для него активности поздно, и снепшот уже был, но официального подтверждения этому нет. Так что воркаем, чтобы потом не плакать. Я считаю, что до запуска токена у нас есть еще месяцев 6-7, так как пока экосистема сырая!

Сейчас у zkSync работают 2 сети: Lite и Era. Как я понимаю, команда будет постепенно отказываться от Lite и полностью переходить в Era. Но это не значит, что делать Lite не нужно! Делаем все, тем более затраты в Lite копеечные.

Наводим шум в zkSync Lite

Используем нативный мост zkSync Lite

post image
  • Идем на сайт, коннектим кошелек и вводим ETH в сеть zkSync.

  • Для этого жмем Top up и выбираем среди Bridge zkSynс!

  • Вводим число ETH, которое хотим перевести, и не забываем оставить чутка ETH на комиссии!

  • Ждем пополнения.

Торгуем на ZigZag

post image
  • Идем на сайт ZigZag и подключаем кошелек.

  • Делаем несколько транзакций, например, продаем часть ETH и обратно покупаем.

  • Так делаем с несколькими парами по несколько транзакций, например, ETH/USDC и ETH/DAI, чтобы нагнать объем!

  • По итогу, оставляем на счету несколько DAI, остальное свапаем обратно в ETH.

Создаем NFT на Pinata

post image
  • Идем на сайт Pinata и регаемся как креатор.

  • Жмем кнопку Upload+, затем File и загружаем любую картинку с компа.

  • Копируем ее CID и возвращаемся в кошелек zkSync во вкладку NFT.

post image
  • Жмем Mint NFT.

  • Активируем кошелек через подписание нескольких транзакций.

  • Вставляем CID, авторизуемся и минтим NFT.

Донатим на Gitcoin

  • Идем на сайт Gitcoin и регистрируемся через GitHub!

*Если GitHub у вас нет, нужно его завести и в идеале дать отлежаться недельку-две, так как GitHub не любит, когда через него верифицируются.

post image
  • Потом кликаем на Products и выбираем Grants!

  • Жмем View All Grants и выбираем проект, в который хотим задонатить.

post image
  • Жмем Add to Card и идем в корзину сверху!

post image
  • Выбираем в Amount/Currency валюту DAI, которую мы купили на ZigZag ранее.

  • Пишем сумму доната (я напишу 1.8$) и кликаем I’m Ready To Checkout.

  • Обязательно выбираем zkSync Checkout. Подтверждаем все транзакции и совершаем донат!

Активности на Crew3

post image
  • Идем на Crew3, верифицируем свой профиль и проходим простые социальные задания!

  • Также надо будет пройти квесты, за один из которых дадут роль в Discord.

Ответы на первый тест

  1. Baby Alpha

  2. To put the system through a series of real-money stress tests…

  3. Fair Onboarding Alpha

  4. Full Launch Alpha

  5. Around EOY 2022-Q1 2023, but we will put security first and consider…

Ответы на второй тест

  1. C

  2. B

  3. C

  4. spicy

Ответы на третий тест (про безопасность)

  1. No

  2. zkSync

  3. B

  4. C

  5. D

  6. D

  7. E

  8. D

  9. A

Выводим ETH через Orbiter

post image
  • Идем на сайт Orbiter и коннектим кошелек.

  • Выводим ETH из сети zkSync в сеть Ethereum!

*Оставляем немного на кошельке (10-15 долларов) для проявления активности в будущем.

На этом движняк в сети Lite закончен! Кстати, вот моя видеоинструкция по zkSync Lite со стрима. Он был до выхода сети Era!

Залетаем в zkSync Era

Полезные советы

  • Перед тем, как с двух ног залетать в Era, добавьте в закладки сайт с экосистемой zkSync, чтобы не нарваться на скам! Тут собраны все официальные партнерства и протоколы, которые строятся на zkSync.

  • Не пугайтесь дорогих транзакций в сети Era. Большую часть затрат на газ сейчас протоколы компенсируют (но не все). Итого получается, что цена газа сейчас в районе $0.25, что приемлемо.

  • Не нужно делать все активности в один день! Погоняли пару протоколов на этой неделе, через неделю прошлись еще по нескольким! Помним, что самое главное для нас – регулярность. Косим под реальных пользователей.

Используем нативный мост zkSync Era

post image
  • Идем на сайт моста, коннектим кошель и выбираем количество эфира, которое хотим забриджить.

  • Жмем Deposit и ждем несколько минут.

  • Идем на Layer3 и проходим квест. Заодно, так сказать.

Mute

post image
  • Идем на сайт Mute и коннектим кошелек!

  • Делаем свапы на сайте, нагоняем объем! Все по аналогии с ZigZag.

  • Добавляем ликвидность в пулы!

  • Идем на Layer3 и проходим квест. Заодно, так сказать Х2.

SyncSwap

post image
  • Идем на сайт SyncSwap и коннектим кошелек!

  • Делаем свапы на сайте, нагоняем объем! Все по аналогии с Mute.

  • Добавляем ликвидность в пулы!

  • Идем на Layer3 и проходим квест. Заодно, так сказать Х3.

SpaceFi

post image
  • Идем на сайт SpaceFi и коннектим кошелек!

  • Делаем свапы на сайте, нагоняем объем! Все по аналогии с предыдущим DEX.

  • Добавляем ликвидность в пулы!

  • Идем на Layer3 и проходим квест. Заодно, так сказать Х3.

MintSquare

Наш друг из гайда по StarkNet! В сети Era делаем аналогичные движения!

post image
  • Заходим на сайт MintSquare и коннектим кошелек.

  • Убеждаемся, что мы в сети zkSync Era.

  • Жмем Mint и приступаем к минту NFT.

post image
  • Подгружаем с компа какую-нибудь картинку.

  • Даем имя нашей NFT.

  • Жмем на кнопку Mint и подтверждаем транзакцию.

post image
  • Теперь будем торговать NFT. Переходим в Explore, жмем NFTs и фильтруем по стоимости от дешевых к дорогим.

  • Выбираем дешевые NFT и покупаем, чтобы набить транзакций!

  • Затем переходим в свой Profile и выставляем эти NFT на продажу.

  • Идем на Layer3 и проходим квест. Заодно, так сказать Х4.

Что еще можно потыкать?

Ниже список DeFi-протоколов, на которые я поленился писать инструкцию. Но если вы не первый день в крипте, думаю найдете куда клацать.

  • UniDex — платформа для трейдинга.

  • RhinoFi — DEX с плюшками.

  • Nexon Finance — лендинговый протокол.

  • Onchain Trade — платформа для трейдинга.

На этом мы закончили взаимодействовать с zkSync Era! Переходим к самому сложному…

Деплой смарт-контракта на zkSync

Такие смарт-контракты мы еще не деплоили. Надо будет немного заморочиться!

Я думаю, что смарт-контракт — не основная активность для дропа, но может выступить жирным мультипликатором, поэтому через силу, но лучше сделать.

Есть два способа деплоя: на арендованном серваке и на своем компе. Для расширения кругозора, сегодня мы будем разворачивать контракт на компе при помощи Visual Studio Code.

Подготовка

  • Качаем и устанавливаем VSC.

  • Качаем и устанавливаем Node.js (LTS)

  • Открываем VSC и готовим рабочее пространство.

post image
  • Открываем папку с расширениями и скачиваем расширения, которые я выделил красным. Находим их через поиск.

  • Создаем на компе папку zkSync для удобства и открываем ее нашим VSC: Файл — Открыть папку — указываем путь до папки zkSync.

post image
  • У нас должно открыться такое рабочее пространство. Если терминала нет, потяните за синюю полоску снизу.

  • Если что, делаем по офф гайду от команды zkSync с небольшими доработками, так как у них пример в тестнете. Мы же будем делать в майнете.

Разворачиваем контракт

Начинаем вводить в терминал команды.

*Вставил строчку — жмешь Enter — ждешь завершения процесса.

  • Устанавливаем Hardhat:

npm init --y
npm add -D install --save-dev hardhat
  • Выбираем Create a TypeScript project и жмем Enter, затем несколько раз Y (типа Yes).

  • После чего продолжаем вводить команды:

mkdir greeter
cd greeter
npm init -y
sudo npm add -D typescript ts-node @types/node ethers@^5.7.2 zksync-web3 @ethersproject/hash @ethersproject/web hardhat @matterlabs/hardhat-zksync-solc @matterlabs/hardhat-zksync-deploy
  • Появляется надпись Password — Вводим пароль от учетки на компе и жмем Enter.

post image
  • Создаем файл с названием hardhat.config.ts в папке greeter и вставляем этот код в пространство справа:

import "@matterlabs/hardhat-zksync-deploy";
import "@matterlabs/hardhat-zksync-solc";
module.exports = {
  zksolc: {
    version: "1.3.7",
    compilerSource: "binary",
    settings: {},
  },
  defaultNetwork: "zkMainnet",
  networks: {
    zkMainnet: {
      url: "https://mainnet.era.zksync.io", 
      ethNetwork: "https://eth.llamarpc.com", 
      zksync: true,
    },
  },
  solidity: {
    version: "0.8.19",
  },
};
  • Возвращаемся к терминалу и продолжаем вводить команды:

mkdir contracts
mkdir deploy
post image
  • В папке greeter открываем папку contracts, создаем файл Greeter.sol и вставляем код:

//SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.0;

contract Greeter {
    string private greeting;

    constructor(string memory _greeting) {
        greeting = _greeting;
    }

    function greet() public view returns (string memory) {
        return greeting;
    }

    function setGreeting(string memory _greeting) public {
        greeting = _greeting;
    }
}
  • Вводим команду:

npx hardhat compile
  • В папке greeter открываем папку deploy, создаем файл deploy.ts и вставляем в него код:

import { utils, Wallet } from "zksync-web3";
import * as ethers from "ethers";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { Deployer } from "@matterlabs/hardhat-zksync-deploy";

// An example of a deploy script that will deploy and call a simple contract.
export default async function (hre: HardhatRuntimeEnvironment) {
  console.log(`Running deploy script for the Greeter contract`);

  // Initialize the wallet.
  const wallet = new Wallet("ВСТАВЬ СЮДА ПРИВАТНИК");

  // Create deployer object and load the artifact of the contract we want to deploy.
  const deployer = new Deployer(hre, wallet);
  const artifact = await deployer.loadArtifact("Greeter");

  // Deploy this contract. The returned object will be of a `Contract` type, similarly to ones in `ethers`.
  // `greeting` is an argument for contract constructor.
  const greeting = "Hi there!";
  const greeterContract = await deployer.deploy(artifact, [greeting]);
  console.log(greeterContract.interface.encodeDeploy([greeting]));

  // Show the contract info.
  const contractAddress = greeterContract.address;
  console.log(`${artifact.contractName} was deployed to ${contractAddress}`);

  // Call the deployed contract.
  const greetingFromContract = await greeterContract.greet();
  if (greetingFromContract == greeting) {
    console.log(`Contract greets us with ${greeting}!`);
  } else {
    console.error(`Contract said something unexpected: ${greetingFromContract}`);
  }

  // Edit the greeting of the contract
  const newGreeting = "Hey guys";
  const setNewGreetingHandle = await greeterContract.setGreeting(newGreeting);
  await setNewGreetingHandle.wait();

  const newGreetingFromContract = await greeterContract.greet();
  if (newGreetingFromContract == newGreeting) {
    console.log(`Contract greets us with ${newGreeting}!`);
  } else {
    console.error(`Contract said something unexpected: ${newGreetingFromContract}`);
  }
}

ВНИМАНИЕ! Нужно вставить приватный ключ от кошелька в строку кода, где я написал ВСТАВЬ СЮДА ПРИВАТНИК. Кавычки убирать не нужно!

Помните, владелец приватного ключа владеет доступом к вашему кошельку, это почти то же самое что и сид-фраза. Я рекомендую создать под эту активность отдельный кошель, если сомневаетесь, и залить в него немного эфира в сети Era на газ. На мейн-кошельке делать не стоит, мало ли…

  • Чтобы достать приватный ключ: Открываем MetaMask — Жмем три точки — Реквизиты счета — Экспорт закрытого ключа — Вводим пароль — Копируем приватник.

  • Вставляем приватник в код и вводим команду в терминал:

npx hardhat deploy-zksync

Должны появиться такие строчки!

post image

Если появились, поздравляю, вы задеплоили контракт! Теперь его можно верифицировать!

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

  • Переходим в эксплорер и введите адрес своего контракта. Выделил красным на скрине выше.

  • Жмем на вкладку Contract и кликаем на кнопку Verify Smart Contract

post image
  • Заполняем все поля, как на скрине.

  • В поле Enter the Solidy Contract Code вставляем код из Greeter.sol

  • В поле Constructor Arguments вставляем длинную шнягу, которая появились в терминале после деплоя контракта. Она у всех одинаковая, насколько я понял.

  • После того, как заполнили все поля, нажимаете кнопку Verify Smart Contract

  • Ура, мы сделали это! Контракт верифицирован!

post image

На этом все! Было потно, но мы победили zkSync! Поздравляю вас!

Не забывайте регулярно проявлять активность в этой сетке и слушаться маму!

Также не забудьте подписаться на мой канал в телеграм!

А еще можете сминтить эту статью, нажав на кнопочку Collect Entry ниже!

Тем самым вы сделаете мне приятно и повысите свой шанс на ретродроп от Optimism и Mirror ^_^

Жду вас тут | Telegram | Chat | YouTube | Twitter