Scroll - альфа тестнет . Тотальный ГАЙД
Автор: https://t.me/cryptogavan
Scroll - это zkRollup решение, созданное для масштабирования сети Ethereum с целью предоставления пользователям практически мгновенных и экономически эффективных транзакций при сохранении высоких свойств безопасности, предлагаемых сетью Ethereum.
Текущая архитектура состоит из трех инфраструктурных компонентов:
- Scroll Node: Конструирует блоки L2 из транзакций пользователя, фиксирует их на базовом уровне Ethereum и передает сообщения между L1 и L2.
- Roller Network: Генерирует доказательства валидности zkEVM для подтверждения правильности выполнения транзакций.
- Rollup and Bridge Contracts: Обеспечивают доступность данных для транзакций Scroll, проверяют доказательства достоверности zkEVM и позволяют пользователям перемещать активы между Ethereum и Scroll.
Команда привлекла $ 30,000,000 еще 21 Apr, 2022 от Polychain Capital, Bain Capital Crypto, Robot Ventures и пары частных инвесторов. 6 Mar, 2023 были привлечены повторные инвестиции в размере $ 50,000,000 от Polychain Capital, Bain Capital Crypto, Variant, IOSG, Sequoia Capital China, Moore Capital Management, Newman Capital, Qiming Venture Partners. На данный момент компания оценивается в $ 1,800,000,000.
Шанс на дроп есть, но он небольшой, т.к. высокая конкуренция. Но все активности полностью бесплатные и не займут сильно много времени. Больше времени у меня ушло на написание этого гайда 😁
Начнем!
1. Переходим на сайт проекта и в кошелек metamask добавляем сети Goerli и Scroll Alpha.
2. Берём тестовые токены Goerli здесь (нужна регистрация), если не дают, берем здесь.
3. Далее идем в мост и отправляем тестовые ETH с Goerli в тестовую сеть Scroll Alpha. Подписываем транзакцию в метамаск. Токены идут минут 10-15, но статус Pending может показываться и дольше, хотя токены уже дошли. Проверяем в самом метамаске.
4. Затем, когда токены дошли в сеть Scroll, возвращаемся в мост и нажимаем синюю стрелку, подтверждаем подпись в метамаске и перекидываем большую часть токенов уже из сети Scroll обратно в Goerli. Транзакция также идет какое-то время.
5. Теперь делаем отправку токенов из метамаск в сети Scroll на любой другой адрес метамаск. Пересылаем минимальную сумму. Если некому скинуть, кидайте мне 0x5EDBFDA8b21F29D05782264152BA9f52cD0e5C15 . Это делается для увеличения активности. С мостом закончили.
Следующий этап. Тестируем сеть Scroll на UNISWAP
1. Идем в Uniswap и подключаем метамаск. Сначала за ETH покупаем 5-10 USDC. Для этого жмем Выберите токен
и сюда вставляем адрес контракта USDC - 0xA0D71B9877f44C744546D649147E3F1e70a93760
Отобразится USDC, выбираем, принимаем
вводим сколько хотим USDC и нажимаем обмен, подтверждаем в метамаске.
2. Далее переходим в пул и выбираем новую позицию
3.Выбираем USDC, комиссию 1%, полный диапазон и подтверждаем, и 5 USDC или сколько вы покупали.
Далее: Одобрить - подтверждаем в метамаске - предпросмотр - и добавить.
3. Теперь можно забирать половину токенов из пула, но это необязательно. Для этого возвращаемся в пул, выбираем то, что создали
50% - удалить - подтверждаем транзакцию в метамаске.
Следующий этап. Создаваем смарт-контракт
1. Идем сюда https://remix.ethereum.org/, нажимаем New File и даем ему любое_имя.sol
2. Жмем на свой файл, открывается пустое окно, куда вставляем этот код:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
contract FunctionTypes{
uint256 public number = 5;
constructor() payable {}
// 函数类型
// function (<parameter types>) {internal|external} [pure|view|payable] [returns (<return types>)]
// 默认function
function add() external{
number = number + 1;
}
// pure: 纯纯牛马
function addPure(uint256 _number) external pure returns(uint256 new_number){
new_number = _number+1;
}
// view: 看客
function addView() external view returns(uint256 new_number) {
new_number = number + 1;
}
// internal: 内部
function minus() internal {
number = number - 1;
}
// 合约内的函数可以调用内部函数
function minusCall() external {
minus();
}
// payable: 递钱,能给合约支付eth的函数
function minusPayable() external payable returns(uint256 balance) {
minus();
balance = address(this).balance;
}
}
3. Жмем ok и нажимаем ctrl+s если у вас винда или cmd+s если мак и переходим на зеленую галочку:
4. Выбираем последний доступный компилятор, у меня был такой как на скрине и жмем Compile. Снова должна загореться зеленая галочка. Переходим на иконку под ней (цифра 4):
5. Во вкладке ENVIRONMENT выбираем MetaMask (но перед этим убеждаемся, что в метамаске выбрана сеть Scroll) и жмем Deploy. Подтверждаем транзакцию в метамаске. После подтверждения транзакции внизу должна загореться зеленая галочка. Поздравляю, контракт готов!
Следующий этап. Создаем свой токен
1. Возвращаемся в эксплорер (1), жмем New File и придумываем название_своего_токена.sol , жмем enter:
2. В отрывшемся пустом файле вводим код ниже и нажимаем ctrl+s если у вас винда или cmd+s если мак и переходим на зеленую галочку:
// SPDX-License-Identifier: MIT
// WTF Solidity by 0xAA
interface IERC20 {
/**
* @dev 释放条件:当 value 单位的货币从账户 (`from`) 转账到另一账户 (`to`)时.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev 释放条件:当 value 单位的货币从账户 (`owner`) 授权给另一账户 (`spender`)时.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev 返回代币总供给.
*/
function totalSupply() external view returns (uint256);
/**
* @dev 返回账户`account`所持有的代币数.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev 转账 amount 单位代币,从调用者账户到另一账户 to.
*
* 如果成功,返回 true.
*
* 释放 {Transfer} 事件.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev 返回`owner`账户授权给`spender`账户的额度,默认为0。
*
* 当{approve} 或 {transferFrom} 被调用时,`allowance`会改变.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev 调用者账户给`spender`账户授权 `amount`数量代币。
*
* 如果成功,返回 true.
*
* 释放 {Approval} 事件.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev 通过授权机制,从`from`账户向`to`账户转账`amount`数量代币。转账的部分会从调用者的`allowance`中扣除。
*
* 如果成功,返回 true.
*
* 释放 {Transfer} 事件.
*/
function transferFrom(
address from,
address to,
uint256 amount
) external returns (bool);
}
mapping(address => uint256) public override balanceOf;
mapping(address => mapping(address => uint256)) public override allowance;
uint256 public override totalSupply; // 代币总供给
string public name; // 名称
string public symbol; // 符号
uint8 public decimals = 18; // 小数位数
address public owner;
// @dev 在合约部署的时候实现合约名称和符号
constructor(string memory name_, string memory symbol_){
name = name_;
symbol = symbol_;
owner = msg.sender;
}
// @dev 实现`transfer`函数,代币转账逻辑
function transfer(address recipient, uint amount) external override returns (bool) {
balanceOf[msg.sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(msg.sender, recipient, amount);
return true;
}
// @dev 实现 approve 函数, 代币授权逻辑
function approve(address spender, uint amount) external override returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
// @dev 实现`transferFrom`函数,代币授权转账逻辑
function transferFrom(
address sender,
address recipient,
uint amount
) external override returns (bool) {
allowance[sender][msg.sender] -= amount;
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
// @dev 铸造代币,从 0 地址转账给 调用者地址
function mint(uint amount) external {
require(owner == msg.sender);
balanceOf[msg.sender] += amount;
totalSupply += amount;
emit Transfer(address(0), msg.sender, amount);
}
// @dev 销毁代币,从 调用者地址 转账给 0 地址
function burn(uint amount) external {
balanceOf[msg.sender] -= amount;
totalSupply -= amount;
emit Transfer(msg.sender, address(0), amount);
}
3. Далее выбираем последний компилятор, жмем Compile и переходим в deploy (цифра 3):
4. Во вкладке ENVIRONMENT снова выбираем metamask (1), разворачиваем Deploy (2), придумываем имя своего токена (3) и его тикер (4), жмем transact (5), и подтверждаем в метамаске (6). Внизу снова отобразится зеленая галочка.
5. Теперь минтим наши токены. Разворачиваем Deploy Contracts (1), вводим эту цифру: 1800000000000000000000 в mint (2) и жмем mint (3), подтверждаем тразу в метамаске (4). Копируем адрес (5) и идем дальше.
Создаем пул со свои токеном
1. Переходим в usniswap, выбираем Новая позиция
2. Жмем Выберите токен и вставляем контракт, который копировали в предыдущем шаге. Отобразится на созданный токен, выбираем его:
3. Соглашаемся с тем, что предлагают, выбираем 1% (1), устанавливаем цену 100 (2), в минимальной цене пишем 5 (3), в максимальной 10 (4), баланс выбираем 1000 (5), нажимаем одобрить (6), подтверждаем в метамаске, и жмем предпросмотр (7). Откроется окно, жмем Добавить и подтверждаем транзу в метамаске.
Поздравляю! Мы добавили ликвидность в свой пул:
Почти финал
1.Получаем роль в guild. Для этого переходим сюда guild и, подписываемся на указанный твиттер, подключаем кошелек metamask и жмем Join Guild to get roles. Готово! Также добавляемся в discord канал и верифицируемся (на данном этапе это не обязательно, но в дискорде тоже лучше быть)
2.Можно также сделать активность на сайте MUX, где нужно подключить свой кошелек, купить/продать токены и добавить ликвидность. Но на момент написания гайда, сайт лежит, поэтому пробуйте позже.
3.И напоследок. Переходим сюда подключаем метамаск и минтим любую NFT. Все это тоже происходит за тестовые токены.
Это конец!
Поздравляю тебя! Если ты добрался до конца, ты уже сделал больше, чем 95% других, а если еще и прошел тестнет полностью, то больше чем 99% других! Желательно чуть позже еще повзаимодействовать с сетью scroll и проделать что-то из гайда повторно, т.к. часто проекты сбривают тех, кто только единоразово проявлял активность и с наградами могут пробросить.
Все! Надеюсь этот тестнет не пройдет даром и нас щедро вознаградят.
Я не часто пишу такие длинные гайды, но практически ежедневно публикую разные активности, новости и свои эксперименты у себя в тг канале.
Поэтому если было полезно - лучшее вознаграждение для меня, будет твоя подписка на мой канал https://t.me/cryptogavan
Ну а если тебе все это очень интересно, но ничего непонятно, ты можешь прийти ко мне на консультацию, где за час-два мы разберем интересующую тебя тему, либо пройти тотальное обучение по крипте под моим наставничеством. За этими делами обращайся в личку, буду рад помочь: https://t.me/antonybrasko