Scroll — это zkRollup на основе zkEVM на Ethereum, который обеспечивает нативную совместимость с существующими приложениями и инструментами Ethereum.
Инвесторы : Проект собрал $33 млн инвестиций от Polychain Capital, Bixin Ventures, Maple Leaf Capital, Santiago Santos и других.
На данный момент проходит вторая фаза, в которой может поучаствовать каждый. Многие просто выполняют обыкновенный тестнет и забывают, но сегодня мы сделаем все возможные активности в надежде на получения хороших подарков от проекта.
Testnet :
1. Переходим на страницу, подключаем кошелёк Метамаск и добавляем обе сети Scroll (L1 + L2) + все доступные токены.
2. В разделе Faucet запрашиваем токены.
3. В разделе Bridge переводим токены из сети L1 в сеть L2.
Дополнения : переводим с L1 на L2 и обратно, не только ЕТН, но и другие токены. Но обязательно оставьте ЕТН в сети L2 для будущих активностей.
4. Переходим в раздел swap и обмениваем токены в L2 + закидываем в pool.
Дополнения : добавляем ликвидность + делаем remove.
Scroll тестнет в интерфейсе Uniswap.
Все действия повторяем на данном сайте, вы знакомы с интерфейсом UniSwap, поэтому всё быстро сделаете.
Deploy Contract
Для данной активности мы покупали сервер на Contabo ( самый дешевый подойдёт ). Если Вы с нами открывали ноду Shardeum, то знакомы с этой процедурой.
После покупки сервера заходим на свой сервер и вводим команды. Обязательно каждую команду вводим по отдельности.
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
На следующем этапе нам нужно будет скопировать и вставить весь блок, только уже с нашими данными, мы покажем на своём примере, а вы добавите свои данные.
forge create --rpc-url https://prealpha-rpc.scroll.io/l2 \
--value "Количество эфира для блокировки в контракте" \
--constructor-args "Время разблокировки" \
--private-key "Ваш приватный ключ" \
--legacy \
contracts/Lock.sol:Lock --use 0.8.17
Важно : Время разблокировки — это время в Unix. Вы можете сгенерировать время на данном сайте. Время нужно писать будущее: например 05.06.2023.
Блок должен выглядеть следующим образом :
forge create --rpc-url https://prealpha-rpc.scroll.io/l2 \
--value 0.0000001ether \
--constructor-args 1685983984 \
--private-key 6d.....f925c3f1b24 \
--legacy \
contracts/Lock.sol:Lock --use 0.8.17
Конечный результат должен выглядеть следующим образом :
Копируем поле Deployed to, и находим наш контракт в эксплореле Scroll.
На этом Deploy Contracta закончен. Переходим к следующему разделу.
Deploy Token
В данном разделе мы создадим свой собственный токен в сети Scroll. Название можете выбрать любое, мы назовём токен HareCrypta.
Каждую строку мы вставляем отдельно ! Будьте внимательны.
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 до самого конца.
sudo npm install --save-dev hardhat
sudo npx hardhat # Нажимаем Enter до самого конца. (JavaScript Project)
npm install --save-dev "@nomicfoundation/hardhat-toolbox@^2.0.0"
npm i @openzeppelin/contracts
cd contracts
nano <Имя Вашего Токена>.sol # Придумываем имя токена. Пример: # nano Harecrypta.sol
- Должен открыться пустой файл
Копируем и вставляем в пустой файл весь блок кода ( ниже ), изменяя данные на свои. Сохранить файл после вставки можно комбинацией ctrl+X, далее нажимаем Y + Enter.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract <Имя Вашего Токена> is ERC20 {
constructor() ERC20("Имя Вашего Токена", "Сокращение вашего Токена") {
_mint(msg.sender, 1000000000 * 10 ** decimals());
}
}
Пример нашего блока :
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract Harecrypta is ERC20 {
constructor() ERC20("Harecrypta", "HC") {
_mint(msg.sender, 1000000000 * 10 ** decimals());
}
}
Копируем весь блок кода ниже, должен открыться пустой файл.
cd $HOME/DeployToken/scripts
rm -rf deploy.js
nano deploy.js
Нам открывается пустой файл, сейчас вставляем весь блок ниже, меняя данные на свои, сохраняем комбинацией клавиш ctrl+x, далее Y и Enter.
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;
});
На следующем этапе вводим команды по очередности.
npm i dotenv
cd $HOME/DeployToken
nano .env
PRIVATE_KEY="ВАШ ПРИВАТНЫЙ КЛЮЧ" # Не забудьте изменить ключ на свой #
Сохраняем комбинацией клавиш ctrl+x, далее Y и Enter.
rm -rf hardhat.config.js
nano hardhat.config.js
После последней команды, нам открывается файл, в который мы должны вставить целый блок ( показанный ниже ) ничего не меняя ! Сохраняем комбинацией клавиш ctrl+x, далее Y и Enter.
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://prealpha.scroll.io/l2`,
accounts: [PRIVATE_KEY]
}
}
};
После этого вводим последнею команду :
npx hardhat run scripts/deploy.js --network scrollL2
Если видим такой скрин, значит мы сделали всё правильно и получаем адрес контракта, который можно проверить в эксплорере и добавить в кошелёк Метамаск.
На этом мы выполнили все возможные активности в сети Scroll. Если у Вас что-то не вышло, советую очистить сервер через cantabo и повторить все действия.