May 1, 2023

Инструкция Scroll Testnet

Scroll — это zkRollup на основе zkEVM на Ethereum, который обеспечивает нативную совместимость с существующими приложениями и инструментами Ethereum.

В подписчиках есть Виталик Бутерин — основатель Ethereum. Так же следят крупные фонды — a16z, Paradigm, Delphi Digital. Scroll уже закрыли инвестиционный раунд на 30M$ и вполне могут добрать денег в новых раундах.

Награды нам не обещают, но скипать не советуем! Хорошая новость в том, что тестнет не требует никаких финансовых вложений, только несколько минут вашего времени.

Что же делать для прохождения Alpha тестнета?!

  1. Для начала нужно добавить сеть Scroll Alpha Testnet в свой метамаск. Переходим по ссылке https://scroll.io/alpha, коннектим кошелек и добавляем сети

2. Для дальнейшего прохождения нам нужны тестовые ETH, получить можно тут:

https://goerlifaucet.com/ (нужно пройти регистрацию)

https://faucet.quicknode.com/ethereum/goerli(дроп с крана может занять какое-то время)

https://testnetbridge.com/ (можно купить за реальные эфирки, внимательно следите за ценой газа)

3. Бриджим тестовый ETH из сети Goerli Testnet в Scroll Alpha Testnet https://scroll.io/alpha/bridge

4. Отправьте токены через мост в любую сеть и обратно https://rinkeby.orbiter.finance/(отправляйте минимальную сумму, мост может очень долго проводить транзакцию и заморозить тестовые токены)

5. Как в случае с Base, не будет ошибкой задеплоить контракт

Может показаться, что сейчас будет сложно, но не переживай, дорогой друг, если придерживаться инструкции, то через несколько минут ты постигнешь блокчейн дзен!

Для деплоя контракта нам нужен сервер на Ubuntu (подойдет даже Cloud VPS S 6 евро/месяц на Contabo)

Для входа используем Termiusлибо другой удобный терминал.

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

Выполняем каждую команду по отдельности:

sudo apt update
sudo apt install git
git clone https://github.com/scroll-tech/scroll-contract-deploy-demo.git
cd scroll-contract-deploy-demo
curl -L https://foundry.paradigm.xyz | bash
source /root/.bashrc
foundryup
forge build --use 0.8.17

Следующий кусок кода вставляем полностью, НО обязательно заполните параметры: “Количество эфира для блокировки в контракте”(0.0000001ether), “Время разблокировки”(https://www.unixtimestamp.com/, копируем код в таком формате ‭1682935989‬), “Твой приватный ключ” (найдете в метамаске)

forge create --rpc-url https://alpha-rpc.scroll.io/l2 \  --value <Количество эфира для блокировки в контракте> \  --constructor-args <Время разблокировки> \  --private-key <Твой приватный ключ> \  --legacy \  contracts/Lock.sol:Lock --use 0.8.17

Должно получиться так:

forge create --rpc-url https://alpha-rpc.scroll.io/l2 \  --value 0.0000001ether \  --constructor-args 1685691493 \  --private-key 54cieu4y8hr7f4984cf398h4cf89fcnv8i4f3ff1f8finh78iyb8ihb7c458d \  --legacy \  contracts/Lock.sol:Lock --use 0.8.17

Результат должен выглядеть так:

Для проверки можно скопировать Transaction Hash и поискать его в Scroll Explorer

6. Перходим к деплою Токена. Мы создадим токен CryptoSoftTools, а вы можете подставить любое название.

cd $HOME
sudo apt update
sudo apt install git
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
mkdir DeployToken
cd DeployToken
sudo npm init     #Нажимайте Enter для подтверждения вплоть до вопроса Is this OK?
sudo npm install --save-dev hardhat
sudo npx hardhat       #Нажимайте Enter для подтверждения, пока не увидите, что следующая команда начала выполняться автоматически
npm install --save-dev "@nomicfoundation/hardhat-toolbox@^2.0.0"
npm i @openzeppelin/contracts
cd contracts
nano <Имя Вашего Токена>.sol.      Пример:# nano CryptoSoftTools.sol. Вы увидите пустой файл

Следующий кусок кода копируем полностью, изменяя данные на свои:

// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import "@openzeppelin/contracts/token/ERC20/ERC20.sol";contract <Имя Вашего Токена> is ERC20 {    constructor() ERC20("<Имя Вашего Токена>", "<Сокращенное Имя Вашего Токена>") {        _mint(msg.sender, 1000000000 * 10 ** decimals());    }}

Копируем весь кусок кода:

cd $HOME/DeployToken/scriptsrm -rf deploy.jsnano deploy.js

Копипаст всего кусочка кода, поменяйте данные на свои

const { ethers } = require("hardhat");async function main() {  const token = await ethers.getContractFactory("ИМЯ ТВОЕГО ТОКЕНА!");  const deployedToken = await token.deploy();     await deployedToken.deployed();  console.log(`The smart contract was deployed at: ${deployedToken.address} on Scroll L2!`);}main().catch((error) => {  console.error(error);  process.exitCode = 1;});

Используем комбинацию клавиш “ctrl+x” для сохранения — кликаем Y — кликаем Enter

Дальше вводим команды по одной:

npm i dotenv
cd $HOME/DeployToken
nano .env
PRIVATE_KEY="ТВОЙ ПРИВАТНЫЙ КЛЮЧ"         #вставьте свой приватный ключ без скобочек, "ctrl+x" для сохранения - кликаем Y - кликаем Enter
rm -rf hardhat.config.js
nano hardhat.config.js

Следующий кусочек копируем без модификаций

require("@nomicfoundation/hardhat-toolbox");require("dotenv").config({ path: ".env" });const PRIVATE_KEY = process.env.PRIVATE_KEY;/** @type import('hardhat/config').HardhatUserConfig */module.exports = {  solidity: "0.8.17",  networks: {    scrollL2: {      url: `https://alpha-rpc.scroll.io/l2`,      accounts: [PRIVATE_KEY]    }  }};

Используем комбинацию клавиш “ctrl+x” для сохранения — кликаем Y — кликаем Enter

npx hardhat run scripts/deploy.js --network scrollL2