April 22, 2023

Деплоим смарт контракт Scroll

Полный гайд по тестнету Scroll в группе https://t.me/SultanVCrypte

Заходим на сайт и жмем Accept

нажимаем создать новый файл - и вводим любое имя

далее вставляем код в созданный нами файл

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

contract Lock {
    uint public unlockTime;
    address payable public owner;

    event Withdrawal(uint amount, uint when);

    constructor(uint _unlockTime) payable {
        require(
            block.timestamp < _unlockTime,
            "Unlock time should be in the future"
        );

        unlockTime = _unlockTime;
        owner = payable(msg.sender);
    }

    function withdraw() public {
        require(block.timestamp >= unlockTime, "You can't withdraw yet");
        require(msg.sender == owner, "You aren't the owner");

        emit Withdrawal(address(this).balance, block.timestamp);

        owner.transfer(address(this).balance);
    }
}

далее жмем Compile - если все правильно - появиться зеленая галочка

Далее переходим в раздел ENVIRONMENT и вводим там следующие данные

ENVIRONMENT - injected provider

Value - 1 Gwei

Время лока - 1696118400

Жмём Deploy и подтверждаем транзакцию в Метамаск

успешное завершение деплоя

Далее нужно верифицировать наш контракт

переходим в последнюю транзакцию в нашем Метамаске - открываем смотреть в проводнике

там находим адрес контракта и открываем его

далее находим на странице вкладку Code и жмем кнопку - Verify & Publish

на следующей странице жмем кнопку Next

Вводим следующие данные в поля

Contract Name вводим - Lock
Compiler выбираем компилятор версии - v0.8.18

Optimization выбираем - NO

Enter the Solidity Contract Code вставляем код контракта

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

contract Lock {
uint public unlockTime;
address payable public owner;

event Withdrawal(uint amount, uint when);

constructor(uint _unlockTime) payable {
require(
block.timestamp < _unlockTime,
"Unlock time should be in the future"
);

unlockTime = _unlockTime;
owner = payable(msg.sender);
}

function withdraw() public {
require(block.timestamp >= unlockTime, "You can't withdraw yet");
require(msg.sender == owner, "You aren't the owner");

emit Withdrawal(address(this).balance, block.timestamp);

owner.transfer(address(this).balance);
}
}

После нажимаем кнопку - Verify & publish

Готово!


Больше гайдов на канале https://t.me/SultanVCrypte