Большой, длинный, необрезанный гайд по дропу от 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

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

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

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

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

Торгуем на ZigZag

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

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

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

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

Создаем NFT на Pinata

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

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

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

  • Жмем Mint NFT.

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

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

Донатим на Gitcoin

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

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

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

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

  • Жмем Add to Card и идем в корзину сверху!
  • Выбираем в Amount/Currency валюту DAI, которую мы купили на ZigZag ранее.

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

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

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

  • Идем на 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

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

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

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

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

Залетаем в zkSync Era

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

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

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

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

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

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

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

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

Mute

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

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

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

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

SyncSwap

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

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

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

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

SpaceFi

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

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

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

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

MintSquare

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

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

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

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

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

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

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

  • Теперь будем торговать 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 и готовим рабочее пространство.

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

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

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

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

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

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

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

  • Устанавливаем Hardhat:
npm init --y
npm install
npm add -D install --save-dev hardhat
npx 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.
  • Создаем файл с названием 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
  • В папке 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Subscribe to Понятный инвестор
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.