SCROLL. Testnet + Deploy Contract + Deploy Token.
TESTNET
ШАГ 1
- Переходим на страницу, где добавляем в MetaMask сеть Goerli и Scroll Alpha Testnet
ШАГ 2
- Запрашиваем тестовый эфир в сети Goerli (кран можно использовать любой) - ТЫК
ШАГ 3
- В разделе Bridge пересылаем токены из сети Goerli в сеть Scroll Aplha
Проводим бридж несколько раз с разными токенами в обе стороны. Обязательно оставьте эфир в Scroll Aplha для деплой контракта и токена :)
Текущие транзакции можно посмотреть нажав на адрес кошелька.
DEPLOY CONTRACT
Для деплоя контракта и токена необходим сервер на Ubuntu.
Тестирование гайда проводилось на самом дешевом сервере Contabo за 6 евро, OC Ubuntu 20.04. На серверах слабее получалось не с первого раза!
Поехали! Каждую команду копируйте по отдельности!
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://alpha-rpc.scroll.io/l2 \ --value <Количество эфира для блокировки в контракте> \ --constructor-args <Время разблокировки> \ --private-key <Твой приватный ключ> \ --legacy \ contracts/Lock.sol:Lock --use 0.8.17
Самым непонятным параметров является время разблокировки, это время в Unix. Вы можете взять число с примера ниже, а можете сделать своё, для этого переходите на данный сайт, вводите дату и время в конвертере и нажимаете Convert.
forge create --rpc-url https://alpha-rpc.scroll.io/l2 \ --value 0.0000001ether \ --constructor-args 1684740239 \ --private-key e47bc48d582324ced164c60fb892bb0fba7221d9618bffea59918ce071a49cde \ --legacy \ contracts/Lock.sol:Lock --use 0.8.17
- Копируем поле Deployed to, и находим наш контракт в эксплорере Scroll.
DEPLOY TOKEN
В этом пункте гайда мы создадим свой собственный токен, я назову его LabsCrypto, а вы можете задать любое название, главное внимательно читайте!
КАЖДУЮ СТРОЧКУ КОПИРОВАТЬ И ВСТАВЛЯТЬ В ТЕРМИНАЛ ПО ОТДЕЛЬНОСТИ!
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 LabsCrypto.sol Должен открыться пустой файл
// 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 LabsCrypto is ERC20 {
constructor() ERC20("LabsCrypto", "LBSC") {
_mint(msg.sender, 1000000000 * 10 ** decimals());
}
}cd $HOME/DeployToken/scripts rm -rf deploy.js nano 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;
});const { ethers } = require("hardhat");
async function main() {
const token = await ethers.getContractFactory("LabsCrypto");
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
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]
}
}
};npx hardhat run scripts/deploy.js --network scrollL2
- Получаем адрес контракта. Проверить его можно, найдя в эксплорере
Готово! Поздравляю тебя друг! Ты протыкал тестнет, сдеплоил свой контракт и токен в сети Scroll!