Не так давно я был на сайте Б, видеоаккаунте и YouTube последовательно выпустили новый набор бесплатных видеокурсов «Инструмент» разработки смарт-контрактов Remix》, разделенный на 9 Видео из нескольких разделов, вот такие: 9 раздел в B Ссылка на видео на веб-сайте. Если вы хотите посмотреть видео напрямую, вы можете перейти B Станция для просмотра:
Вы также можете напрямую выполнить поиск по запросу «Киган Сяоган» на станции B, чтобы найти меня, и вы можете просмотреть все видеокурсы, которые я опубликовал на данный момент. На данный момент мною выпущено 5 видеосборников:
И для Инструмента разработки смарт-контрактов RemixЭтот набор курсов,Ниже я рассмотрю видео каждого раздела.,Перечислите некоторые ключевые моменты.
В этом разделе в основном представлен базовый обзор Remix.
Во-первых, помните, что правильное доменное имя для Remix — https://remix.ethereum.org, чтобы избежать фишинга.
Во-вторых, единственными официально поддерживаемыми браузерами являются Firefox, Chrome, Brave Это всего лишь три модели. Другие браузеры могут работать, но нет гарантии, что во время использования возникнут проблемы.
Макет всей страницы Remix в основном разделен на:
默认плагиниметь:Браузер файлов、Полнотекстовый поиск、компилятор、развертывать&отправить транзакцию、Git。может пройтиплагин Менеджердобавить viУдалите другие плагины, среди них часто используемые: Remixd, отладчик, плагин модульного тестированияждать。
При переключении между различными плагинами на боковой панели отображается страница содержимого соответствующего плагина.
Плагин файлового браузера, как следует из названия, управляет файлами.
Первое, с чем следует ознакомиться, это Workspace,Прямо сейчасрабочее пространство,каждыйрабочее пространство — это проект.
Существует несколько способов создать новое рабочее пространство. Вы можете создать пустое рабочее пространство или создать его на основе шаблона. Remix предоставляет множество шаблонов. Его также можно создать путем клонирования репозитория Git.
Вы можете создать несколько разных рабочих пространств и переключаться между разными рабочими пространствами.
Также играл пространстворуководитьПереименование, загрузка, удаление, резервное копирование, восстановлениеждатьдействовать。возвращатьсяможет пройти Remixd Плагин подключается к локальной файловой системе, примерно Remixd Часть находится в 3 Подробности представлены в подразделе.
В рабочей области также поддерживаются различные операции. Помимо непосредственного создания файлов и папок, вы также можете загружать и загружать файлы и папки из локальной файловой системы в текущую рабочую область, а также импортировать файлы из IPFS или https. . Наконец, вы также можете инициализировать текущую рабочую область как проект Git.
По умолчанию Ремикс Добавленные сюда файлы хранятся в базе данных, поставляемой вместе с браузером. IndexedDB , а хранилище базы данных браузера не является постоянным хранилищем, поэтому рекомендуется добавить другие решения для резервного копирования и хранения файлов. использовать Remixd Хранение файлов в локальной файловой системе является одним из рекомендуемых решений.
Чтобы использовать remixd, вам необходимо установить инструмент командной строки remixd в вашей локальной системе. Вы можете установить его, выполнив следующую команду npm:
npm install -g @remix-project/remixd
подключиться локально к Remix , чтобы обеспечить нормальное использование, убедитесь, что remixd Уже обновился до последней версии. Сносно remixd -v
или remixd --version
Представление команд remixd версия. Если версия не самая последняя, вы можете напрямую обновить ее до последней версии с помощью приведенной выше команды установки.
После установки remixd следующим шагом будет запуск remixd, выполнив следующую команду:
remixd -s<absolute-path-to-the-shared-folder>-u https://remix.ethereum.org</absolute-path-to-the-shared-folder>
в,<absolute-path-to-the-shared-folder>Вам необходимо изменить его на локальный каталог, к которому вы хотите подключиться.,например,Я хочу подключиться к ./shared_project
Оглавление,Фактическая выполненная команда выглядит следующим образом:</absolute-path-to-the-shared-folder>
remixd -s ./shared_project -u https://remix.ethereum.org
После успешного запуска вы можете нажать «Подключиться к локальной файловой системе» в Remix, чтобы открыть всплывающее окно с подтверждением подключения к локальной, а затем нажать кнопку «Подключиться», чтобы установить соединение.
После успешного подключения в том же каталоге, что и локальное подключение, будет создано новое рабочее пространство. Любые операции в рабочей области Remix будут синхронизированы с локально подключенным каталогом. Аналогично, изменения файлов в локальном каталоге также будут синхронизированы с рабочей областью в Remix.
Выполнить локально remixd В окне терминала используйте ctrl-c
ты можешь закрыть remixd , также означает отключение от Remix связь.
Использование подключаемого модуля Git для синхронизации изменений файлов в рабочей области Remix с удаленным репозиторием Git также является еще одним рекомендуемым решением для хранения файлов.
Затем используйте Git, сначала необходимо настроить первый шаг Github счет. Входить Git Панель плагинов, открытая GITHUB SETUP вкладке есть два варианта настройки: один Login with GitHub,Научит вас трем шагам для подключения вашего Github Номер счета, второй — вручную ввести свой; Git Имя пользователя, адрес электронной почты и Github token。
Настраивать Github После создания учетной записи вы можете передать текущий Git подключаемая панель Initialize repository кнопка инициализирует текущую рабочую область Git проект. Вы также можете создать новый проект и проверить ”Initialize workspace as a new git repository“。
После того как текущая рабочая область станет проектом Git, на панели подключаемого модуля Git появится гораздо больше вкладок. Все вкладки:
После завершения инициализации на предыдущем шаге следующим шагом будет установка адреса удаленного склада. Git в панели плагинов REMOTES Произведите настройки во вкладке.
После настройки вы можете внести изменения в код проекта. После завершения изменений. Сносно SOURCE CONTROL добавить в Commit
После выполнения Sync Changes
,На этом передача кода на удаленный склад завершена.
Редактор Remix — это тот же редактор, который используется в VS Code. Он поддерживает подсветку кода на трех языках: Solidity, JS и TS.
По умолчанию полезны три функции:
При кодировании будут функции автоматического завершения и подсказки для ключевых слов, объявленных переменных и имен функций.
Для каждой функции бюджет газа функции отображается в правой части функции.
Ошибки и предупреждения в коде будут отмечены волнистыми линиями разного цвета.
Эти функции можно включить или отключить в настройках, они включены по умолчанию.
Кроме того, когда вы открываете контекстное меню в редакторе, вы также можете увидеть опцию «Форматировать код», которая позволяет отформатировать текущий код в стиле кода, чтобы он соответствовал спецификациям кода, что тоже очень удобно.
Компилятор можно использовать совместно с инструментами ИИ, что более удобно.
Панель компилятора очень проста. Во-первых, вы можете выбрать версию компилятора. 0.1.1 Доступны все последние версии. Во-вторых, рекомендуется проверить "'Auto compile" вариант, код будет автоматически скомпилирован после изменений. Затем откройте ”Advanced Configuration“,Рекомендуется ”Enable optimization“ Также проверьте его и установите значение по умолчанию. 200 Вот и все.
Когда он появляется в коде error
и warning
, эти сообщения об ошибках также будут отображаться на панели компилятора, и под каждым сообщением об ошибке будет сообщение. ”Ask RemixAI“ кнопка, нажмите ее, RemixAI Соответствующий ответ будет дан на подсказку об ошибке и отображен на панели терминала.
Кроме того, в левом верхнем углу главной панели есть небольшой значок робота. Чтобы включить его, нажмите кнопку переключателя справа от маленького значка. RemixAI Copilot。После включения,Возможность повышения Автодополнения функция кода. Например, включите RemixAI Copilot После этого продолжайте import Когда контракты, которые можно импортировать, будут автоматически отображаться, включая сторонние библиотеки, такие как @openzeppelin
и @uniswap
,Это очень удобно. снова, например,Если вы хотите определить функцию,Завершен ввод function
Наконец, вам также будет предложено ввести объявления функций, которые вы, возможно, захотите реализовать. Нажмите. tab
Вы можете автоматически завершить весь оператор Function, нажав клавишу, а затем настроить его в соответствии с фактическим кодом, который вы хотите реализовать. и все.
На панели компилятора есть две кнопки компиляции: кнопка с синим фоном компилирует только файлы контракта, а кнопка с серым фоном. “Compile and Run script” Кнопка автоматически выполнит указанный файл сценария после завершения компиляции. Предполагается, что в заголовке файла контракта должно быть указание. @custom:dev-run-script
аннотацию и укажите файл сценария, который будет выполнен. Например, в примере Storage
Аннотация к договору@custom:dev-run-script ./scripts/deploy_with_ethers.ts
,заявил deploy_with_ethers.ts
Файл сценария, этот файл использует ethers
Написал развертывание Storage
Скрипт договора. Этот щелчок “Compile and Run script” После нажатия кнопки компиляция завершается. Storage
После подписания договора он будет автоматически исполнен deploy_with_ethers.ts
Скрипт, готово Storage
При развертывании контракта адрес успешно развернутого контракта будет напечатан в терминале.
В конце панели компилятора есть ABI и Bytecode Два варианта копирования текущего контракта ABI и Bytecode,Это необходимо, когда передняя и задняя части должны взаимодействовать с контрактами.
развертывать&отправить транзакциюплагин,Давайте сначала поговоримразвертывать。
Первым шагом является выбор среды развертывания, то есть сетевой среды, в которой будет развернут контракт. В раскрывающемся списке по умолчанию есть несколько вариантов. Нажмите на последний элемент в списке. “Customize this list..." Можно открыть список всех сетевых сред. Ниже мы представим только наиболее часто используемые из них.
GAS LIMIT Для некоторых частей значение по умолчанию обычно выбирается напрямую. Estimated Gas
Вот и все, не нужно настраивать значение.
VALUE То есть количество нативных токенов, которое необходимо передать в контракт, то есть msg.value
ценить.
CONTRACT Вы можете выбрать контракт для развертывания. Обычно по умолчанию используется текущий контракт.
Deploy Это кнопка развертывания. Если в конструкторе контракта есть параметры, рядом с кнопкой развертывания будет отображаться поле ввода для ввода параметров.
После успешного развертывания внизу Deployed Contracts встречавыставкаисточникразвертывать Вкладка «Контракт»,Откройте его, чтобы взаимодействовать с контрактом. в,Кнопки с синим фоном читабельны.,На кнопке с оранжевым фоном написано Функция.
Есть еще один At Address кнопку, которую также можно использовать для загрузки контрактов в Deployed Contracts Взаимодействуйте с контрактами в списке. использовать At Address,Есть два способа,Один из нихCONTRACT Выберите код контракта для загрузки. Не обязательно указывать полный код контракта, даже если это только один. interface
Это нормально; другой способ — загрузить. abi
Используются файлы и видео IERC20.abi
Продемонстрировано на примере.
Плагин отладчика, как следует из названия, используется для отладки.
Есть два способа начать Отлаживать. Первый способ — ввести хэш транзакции прямо в панели отладчика, если код есть. verify Если да, то ремикс Попробую начать с Sourcify или Etherscan Получить исходный код。Второй способ,Это также наиболее часто используемый метод,Это черезразвертывать&отправить транзакциюплагин Транзакция инициирована,При показе каждой транзакции в Терминале,правая сторонаиметьиндивидуальный Debug кнопка, нажмите эту кнопку, чтобы начать Debug .
Основные операции при отладке:
На панели появится много информации,Ядро — это панель кода действия.,Будет отображен код операции, соответствующий текущему этапу выполнения.
Дополнительно имеются следующие подпанели:
Во время моего фактического тестирования информация, обычно отображаемая на этих панелях, не была полной. Например, на панели Solidity State не отображались переменные состояния, Solidity State не отображал все локальные переменные, а Return Value не отображало возвращаемое значение.
Последний плагин — плагин модульного тестирования.
Remix Плагин модульного тестирования поддерживает solidity Код модульного теста, написанный на этом языке. Файл библиотеки, используемый для объявления точек останова: remix_tests.sol
,в определенном Asset
библиотека, и есть несколько equal
、notEqual
、greaterThan
、lessThan
функция. Кроме того, существует remix_accounts.sol
файл, который определяет TestsAccounts
библиотека, благодаря которой getAccount
Функция получения тестового аккаунта.
Функции модульного теста обычно начинаются с checkXXX
назван. Кроме того, есть четыре специальные функции:
beforeEach()
- Будет в каждом Модульное обсуждение выполнения перед вариантом использованияbeforeAll()
- Будет во всех Модульное обсуждение выполнения перед вариантом использования,Выполнять только один разafterEach()
- Будет в каждом Модульное тестирование Вариант использования После выполненияafterAll()
- Будет во всех Модульное тестирование Вариант использования После выполнение, выполняется только один разписать Модульное Кстати, вы также можете использовать добавление в аннотации #sender: account-{N}
и #value: {N}
указать msg.sender
и msg.value
,Как показано ниже:
/// #sender: account-0
/// #value: 10
function checkSenderIs0AndValueis10 () public payable {
Assert.equal(msg.sender, TestsAccounts.getAccount(0), "wrong sender in checkSenderIs0AndValueis10");
Assert.equal(msg.value, 10, "wrong value in checkSenderIs0AndValueis10");
}
На панели плагина модульного тестирования вы также можете нажать Generate Кнопка для автоматического создания тестовых файлов.
Нажмите Run кнопку, он начнет выполнять Модульное Если имеется несколько файлов, вы также можете проверить, какие тестовые файлы следует выполнить.