February 5, 2023

Scroll. Testnet

Обновление 13.06.2023:

Квест на Layer3

🔻🔻🔻
https://layer3.xyz/quests/aave-on-scroll

Обновление 12.06.2023:

Квест с тестовыми токенами

🔻🔻🔻
https://layer3.xyz/quests/swap-on-scroll

Обновление 02.06.2023:

Взаимодействуем с Syncswap

Где взять тестовый ETH и как перевести его в сеть Scroll мы писали гайде ранее

Переходим к взаимодействию с Syncswap:

▪️На SyncSwap подключаем кошелек в сети Scroll Alpha
▪️Во вкладке Trade делаем различные свапы
▪️Во вкладке Pool добавляем ликвидность (на данный момент доступны пары USDC/ETH и USDT/ETH):
Выбираем Wizard ⏩ выбираем токены ⏩ Enter Pool ⏩ Deposit ⏩ вводим желаемую сумму ⏩ нажимаем Deposit
▪️Забираем ликвидность полностью или частично во вкладке Withdraw

Обновление 16.05.2023:

Выполняем активность от протокола Aave в сети Scroll.

Aave — это децентрализованная платформа займов, при помощи которой мы имеем возможность получить криптовалюту в долг. Недавно проект анонсировал поддержку тестовой сети Scroll. Для тех, кто не успел приступить к тестированию сети Scroll это прекрасная возможность нагнать активность.

Подготовка

Переходим на страницу AAVE и подключаем MetaMask:

Затем нам необходимо немного тестового эфира на комиссию. Соответственно этот шаг выполняют те, у кого нет тестового эфира в сети Scroll.

Получить тестовые токены можно через кран или купить goerli Eth за настоящий Eth в сети Arbitrum или Optimism здесь.

Шаг 1

Бриджим тестовый $ETH в сеть Scroll:

  • Нажимаем Connect Wallet, ставим необходимую сумму тестовых токенов и подтверждаем транзакцию:

Шаг 2

Ждем минут 10-30 и после завершения перевода через мост переходим к тестированию AAVE. В верхнем правом углу выбираем Testnet mode:

В MetaMask выбираем тестовую сеть Scroll на Chainlist, а на странице Aave выбираем тестовую сеть Scroll Alpha:

Далее пробуем получить тестовые токены, кликнув на верхней панели на Faucet:

В настоящее время краны AAVE работают некорректно и, если тестовые токены не были получены, выполняйте тестнет без них.

Шаг 3

Переходим в AAVE протокол, и тестируем все доступные функции. Поскольку у нас лишь один токен, нажимаем supply и отправляем в залог часть эфира:

Подписываем транзакцию:

У нас открылась возможность забрать назад залог, а также взять различные токены в долг:

Шаг 4

Протестируем сначала функцию займа и одолжим немного токенов DAI. Нажимаем Borrow, указываем сумму займа и подписываем транзакцию:

Теперь мы можем вернуть DAI и погасить заем через кнопку Repay:

Указываем сумму, которую хотим вернуть, и подписываем две транзакции в кошельке:

Шаг 5

Аналогично тестируем другие токены. Можно погашать заем лишь частично, можно оставить заемный токен также в качестве залога. Как заработают краны, нужно протестировать функции платформы с другими токенами.

Шаг 6

В конце тестирования мы заберем свой эфир из залога (можно забрать лишь часть):

  • Нажимаем Withdraw:
  • Указываем сумму и подписываем три транзакции в кошельке:
  • У меня на последней подписи вышла ошибка и мне удалось вывести лишь обернутый эфир:

Если та же ошибка вывода эфира будет присутствовать у вас при прохождении тестнета, выведите в обернутый эфир лишь незначительную сумму, чтобы протестировать эту функцию. Когда вы вернетесь к повторению тестнета, ошибка может быть уже исправлена.

Можно пройти тестирование не со всеми токенами сразу, а периодически возвращаться и делать активность с новыми токенами.

Подписываемся на Discord проекта.

Обновление подготовлено экспертом COIN SIDE — Милой @Mila_Lab

Обновление 07.04.2023:

1. В Discord необходимо пройти верификацию в ветке #verify

!!!Установите аватарку в Discord, без нее не пустит на сервер проекта.

Переходим в Discord. Сначала нажимаем Выполнить, ставим галочку и жмем Отправить:

В ветке #verify жмем на Verify, снова на Verify, в появившемся окне жмем Ага:

Нас перекидывает на сайт, где жмем LOGIN:

Далее жмем Авторизовать, затем ставим галочку, чтобы пройти проверку:

Подробнее тут

2. В гильдии забираем mystery role. Роль могут получить только те, у кого Twitter создан до 1 октября 2022

🔻🔻🔻
https://guild.xyz/scrollzkp

Обновление 17.03.2023:

Деплоим смарт-контракт. Новая активность в Scroll.

Шаг 1

Для начала в кошельке подключаемся к сети Scroll Alpha. Только после этого приступаем к следующим действиям:

Шаг 2

Переходим на этот сайт и нажимаем Accept:

Шаг 3

Дальше в панели слева находим значок, который выделен на скриншоте. Нажимаем на него и создаем файл:

Шаг 4

После того, как нажали на значок папки, увидите поле ввода. Туда пишем название:

Шаг 5

Дальше нужно вставить этот код:

// 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;
    }
}

Вставляем этот код в поле, которое посередине изначально было пустое и в появившемся сообщении жмем ОК:

Шаг 6

  • Дальше нажимаем значок, который на скриншоте отмечен цифрой 1. После чего нам откроется кнопка
  • Нажимаем кнопку Compile Scroll.sol

Шаг 7

  • Дальше нажимаем самый последний значок
  • Когда нам откроется панель, в самой первой строке жмем и выбираем MetaMask
  • Подтверждаем транзакцию

После того, как выбрали MetaMask нажимаем красную кнопку Deploy и подтверждаем транзакцию:

Зеленая галочка означает, что мы сделали все правильно:

На этом мы задеплоили контракт.

Деплоим токен

Шаг 1

НЕ ЗАБЫВАЕМ БЫТЬ В СЕТИ SCROLL ALPHA

  • Снова переходим сюда и прокликиваем сообщения: Next, Next, Done
  • Нажимаем значок, отмеченный на скриншоте, и вписываем желаемое название токена:

Шаг 2

Вставляем этот код в поле:

// SPDX-License-Identifier: MIT
// WTF Solidity by 0xAA

pragma solidity ^0.8.4;

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);
}

contract ERC20 is IERC20 {

    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

После того как вставили код нажимаем значок под цифрой 1 и затем нажимаем кнопку Compile VMK.sol:

Шаг 4

  1. Выбираем последний значок
  2. Снова выбираем MetaMask
  3. Вписываем название и абривиатуру токену. У КАЖДОГО ИНДИВИДУАЛЬНО
  4. Нажимаем кнопку Transact и подтверждаем транзакцию

Шаг 5

В этой же панели скроллим чуть ниже и видим Deployed Contracts. Нажимаем маленькую стрелочку:

После чего нам откроется панель:

  1. Видим Mint и снова нажимаем маленькую стрелочку
  2. Дальше в поле вводим количество монет 18000000000000000000000000
  3. Нажимаем кнопку Transact и подтверждаем транзакцию

Шаг 6

Тут копируем контракт созданного нами токена:

  • Дальше идем на Uniswap, коннектимся к сети Scroll Alpha. Идем во вкладку Пулы и выбираем токен:

Дальше вставляем в поле ввода наш адрес токена, который копировали ранее:

  1. Далее выбираем комиссию для пула
  2. Вписываем цену монеты к ETH
  3. Выбираем диапазон цены, в котором будет работать пул
  4. Аппрувим
  5. Подтверждаем транзакцию

На этом все действия окончены!

Вот еще активности в сети Scroll, на самостоятельное тестирование, так как там не сложно. Это игры:

Некоторые игры могут не работать, поэтому следим, и проявляем дополнительную активность в сети!!!

Обновление от 01.03.2023:

Scroll Alpha на Goerli

💥 Заключительный этап перед майннетом. Проделываем действия в новом альфа-пространстве Goerli опираясь на гайд. Дополнительно добавили только пункт «перевести токены друг другу».

❓Что делаем:

1. Дергаем кран в Goerli
2. Переходим на сайт тестнета подключаем MetaMask (Connect Wallet) и добавляем сети (Goerli если уже добавлена, то не нужно снова):


3. Переводим монеты из сети Goerli в сеть Scroll Alpha Testnet:

У меня перевод шел около 10 минут, может идти и дольше. В итоге видим такое сообщение:

4. После того как скинули токены в сеть Scroll, нам нужно отправить их другу (делаем обычный перевод по адресу), и чтобы вам их отправили обратно.

5. Идем на Uniswap, подключаем ММ, там нужно обернуть ETH:

6.Теперь нам нужно свапнуть эфир на USDC, нажимаем на стрелочку вниз рядом с WETH, чтобы выбрать другой токен.

В поисковой строке вставляем Контракт токена 👉0xA0D71B9877f44C744546D649147E3F1e70a93760

Нажимаем на USDC и подтверждаем (жмем Я понимаю):

Теперь свапаем немного эфира на USDC, нажимаем Обменять и подтверждаем обмен:

7. Далее кидаем монеты в пул ликвидности. Нажимаем на выбор токена и выбираем USDC (если в списке нет, то добавляем так же как и ранее по адресу контракта):

Далее:

(1) Выбираем процент комиссии

(2) Ставим диапазон цены

(3) Указываем количество USDC, количество эфира установится автоматом

(4) Одобряем транзакцию

Далее нажимаем Предпросмотр и Добавить:

8. Видим нашу позицию, нажимаем на нее:

Нажимаем Удалить ликвидность, далее забираем полностью или частично:

Можно добавить и забрать ликвидность также используя WETH.

9. Снова переходим на мост и переводим небольшую часть эфира обратно в Goerli

* Не забываем тестировать платформу регулярно и желательно делаем на несколько аккаунтов!

Scroll — это аналог Zksync, Arbitrum, Optimism и т.д. Простыми словами — очередной Layer 2. Проект поднял раунд финансирования в $30кк. В ряды инвесторов входят: Polychain, известные ребята из Ethereum Foundation и другие фонды.

Сейчас есть возможность протестировать проект на ранней стадии, но нужно учитывать то, что сеть постоянно сбрасывается, поэтому активность будем выполнять периодически.

Переходим к тестированию🔻🔻🔻

Подключаем кошелек

Переходим на сайт и подключаем кошелек к L1 и L2, чтобы добавить сеть:

Дергаем кран

Переходим на кран и запрашиваем тестовые токены через оранжевую кнопку:

Внимание! Кран периодически не работает

Тестируем мост

Переходим во вкладку Bridge. Нам нужно перегнать токены из L1 в L2. Для этого вписываем нужное количество, нажимаем кнопку и подтверждаем транзакцию:

Делаем свапы

Переходим во вкладку Swap:

  • Вбиваем нужное количество токенов
  • Нажимаем кнопку и аппрувим транзакцию
  • Делаем несколько свапов

Кидаем токены в пул

В той же вкладке выбираем Вложить, и нажимаем кнопку Add Liquidity:

Выбираем нужное количество токенов, аппрувим транзакцию и подтверждаем депозит:

Также можем забрать или добавить ликвидность:

Тестируем Uniswap

Переходим на Uniswap и подключаем кошелёк.

Выбираем другой токен и вставляем этот адрес контракта TSUSDC в поле 0x38BA9a208F34Ddc9332f6DfC0E9d567f098958A4

Затем вбиваем нужное количество токенов, свапаем и подтверждаем транзакцию:

Кидаем токены в пул

Переходим во вкладку Пулы и открываем новую позицию. Для этого нажимаем кнопку Выберите токен:

  1. Выбираем торговую пару
  2. Выбираем процент комиссии
  3. Ставим диапазон цены
  4. Указываем количество токенов
  5. Одобряем транзакцию

Также тут мы можем увеличить или удалить ликвидность:

Ребята, на этом мы закончили тестирование:)

Следим за анонсами в Twitter и подписываемся на Discord

Материал подготовлен экспертом Coin Side — Виолеттой @vi_lola044

Обучение по криптоинвестированию https://coin-side.com