Автор: 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 копеечные.
Идем на сайт, коннектим кошелек и вводим ETH в сеть zkSync.
Для этого жмем Top up
и выбираем среди Bridge zkSynс
!
Вводим число ETH, которое хотим перевести, и не забываем оставить чутка ETH на комиссии!
Ждем пополнения.
Идем на сайт ZigZag и подключаем кошелек.
Делаем несколько транзакций, например, продаем часть ETH и обратно покупаем.
Так делаем с несколькими парами по несколько транзакций, например, ETH/USDC и ETH/DAI, чтобы нагнать объем!
По итогу, оставляем на счету несколько DAI, остальное свапаем обратно в ETH.
Идем на сайт Pinata и регаемся как креатор.
Жмем кнопку Upload+
, затем File
и загружаем любую картинку с компа.
Копируем ее CID
и возвращаемся в кошелек zkSync во вкладку NFT.
Жмем Mint NFT
.
Активируем кошелек через подписание нескольких транзакций.
Вставляем CID
, авторизуемся и минтим NFT.
*Если GitHub у вас нет, нужно его завести и в идеале дать отлежаться недельку-две, так как GitHub не любит, когда через него верифицируются.
Потом кликаем на Products
и выбираем Grants
!
Жмем View All Grants
и выбираем проект, в который хотим задонатить.
Add to Card
и идем в корзину сверху!Выбираем в Amount/Currency
валюту DAI, которую мы купили на ZigZag ранее.
Пишем сумму доната (я напишу 1.8$) и кликаем I’m Ready To Checkout
.
Обязательно выбираем zkSync Checkout
. Подтверждаем все транзакции и совершаем донат!
Идем на Crew3, верифицируем свой профиль и проходим простые социальные задания!
Также надо будет пройти квесты, за один из которых дадут роль в Discord.
Ответы на первый тест
Baby Alpha
To put the system through a series of real-money stress tests…
Fair Onboarding Alpha
Full Launch Alpha
Around EOY 2022-Q1 2023, but we will put security first and consider…
Ответы на второй тест
C
B
C
spicy
Ответы на третий тест (про безопасность)
No
zkSync
B
C
D
D
E
D
A
Идем на сайт Orbiter и коннектим кошелек.
Выводим ETH из сети zkSync в сеть Ethereum!
*Оставляем немного на кошельке (10-15 долларов) для проявления активности в будущем.
На этом движняк в сети Lite
закончен! Кстати, вот моя видеоинструкция по zkSync Lite со стрима. Он был до выхода сети Era!
Перед тем, как с двух ног залетать в Era, добавьте в закладки сайт с экосистемой zkSync, чтобы не нарваться на скам! Тут собраны все официальные партнерства и протоколы, которые строятся на zkSync.
Не пугайтесь дорогих транзакций в сети Era. Большую часть затрат на газ сейчас протоколы компенсируют (но не все). Итого получается, что цена газа сейчас в районе $0.25, что приемлемо.
Не нужно делать все активности в один день! Погоняли пару протоколов на этой неделе, через неделю прошлись еще по нескольким! Помним, что самое главное для нас – регулярность. Косим под реальных пользователей.
Идем на сайт моста, коннектим кошель и выбираем количество эфира, которое хотим забриджить.
Жмем Deposit
и ждем несколько минут.
Идем на Layer3 и проходим квест. Заодно, так сказать.
Идем на сайт Mute и коннектим кошелек!
Делаем свапы на сайте, нагоняем объем! Все по аналогии с ZigZag.
Добавляем ликвидность в пулы!
Идем на Layer3 и проходим квест. Заодно, так сказать Х2.
Идем на сайт SyncSwap и коннектим кошелек!
Делаем свапы на сайте, нагоняем объем! Все по аналогии с Mute.
Добавляем ликвидность в пулы!
Идем на Layer3 и проходим квест. Заодно, так сказать Х3.
Идем на сайт SpaceFi и коннектим кошелек!
Делаем свапы на сайте, нагоняем объем! Все по аналогии с предыдущим DEX.
Добавляем ликвидность в пулы!
Идем на Layer3 и проходим квест. Заодно, так сказать Х3.
Наш друг из гайда по 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! Переходим к самому сложному…
Такие смарт-контракты мы еще не деплоили. Надо будет немного заморочиться!
Я думаю, что смарт-контракт — не основная активность для дропа, но может выступить жирным мультипликатором, поэтому через силу, но лучше сделать.
Есть два способа деплоя: на арендованном серваке и на своем компе. Для расширения кругозора, сегодня мы будем разворачивать контракт на компе при помощи 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 ^_^