Инструмент разработки смарт-контрактов Remix
Инструмент разработки смарт-контрактов Remix

Не так давно я был на сайте Б, видеоаккаунте и YouTube последовательно выпустили новый набор бесплатных видеокурсов «Инструмент» разработки смарт-контрактов Remix》, разделенный на 9 Видео из нескольких разделов, вот такие: 9 раздел в B Ссылка на видео на веб-сайте. Если вы хотите посмотреть видео напрямую, вы можете перейти B Станция для просмотра:

  1. Обзор:https://www.bilibili.com/video/BV1iS2WYSENu/?spm_id_from=333.999.0.0
  2. Браузер файлов:https://www.bilibili.com/video/BV16n2VYfEke/?spm_id_from=333.999.0.0
  3. remixd:https://www.bilibili.com/video/BV1aq21YMEV1/?spm_id_from=333.999.0.0
  4. Плагин Git:https://www.bilibili.com/video/BV1XZ22YkE3U/?spm_id_from=333.999.0.0
  5. Редактор:https://www.bilibili.com/video/BV1q92tYYEdU/?spm_id_from=333.999.0.0
  6. компилятор&AIинструмент:https://www.bilibili.com/video/BV1c22tYuEoy/?spm_id_from=333.999.0.0
  7. развертывать&отправить транзакцию:https://www.bilibili.com/video/BV1tp2YYFEHi/?spm_id_from=333.999.0.0
  8. отладчик:https://www.bilibili.com/video/BV17A2dYGEW9/?spm_id_from=333.999.0.0
  9. Модульное тестирование:https://www.bilibili.com/video/BV1KcmPY1E1b/?spm_id_from=333.999.0.0

Вы также можете напрямую выполнить поиск по запросу «Киган Сяоган» на станции B, чтобы найти меня, и вы можете просмотреть все видеокурсы, которые я опубликовал на данный момент. На данный момент мною выпущено 5 видеосборников:

  • Первый урок по трансформации разработки Web3
  • Трансформация Web3-разработки. Урок 2.
  • Дорожная карта обучения разработке веб3-приложений
  • Стандарты кодирования Solidity
  • Инструмент разработки смарт-контрактов Remix

И для Инструмента разработки смарт-контрактов RemixЭтот набор курсов,Ниже я рассмотрю видео каждого раздела.,Перечислите некоторые ключевые моменты.

1. Обзор

В этом разделе в основном представлен базовый обзор Remix.

Во-первых, помните, что правильное доменное имя для Remix — https://remix.ethereum.org, чтобы избежать фишинга.

Во-вторых, единственными официально поддерживаемыми браузерами являются Firefox, Chrome, Brave Это всего лишь три модели. Другие браузеры могут работать, но нет гарантии, что во время использования возникнут проблемы.

Макет всей страницы Remix в основном разделен на:

  • панель значков:Размещайте различныеплагиникона
  • боковая панель:плагин Отображаемая панель содержимого
  • Основная панель:Домашняя страницаи Редакторпанель
  • Терминал:Вывод записей транзакцийибревнождать信息

默认плагиниметь:Браузер файлов、Полнотекстовый поиск、компилятор、развертывать&отправить транзакцию、Git。может пройтиплагин Менеджердобавить viУдалите другие плагины, среди них часто используемые: Remixd, отладчик, плагин модульного тестированияждать。

При переключении между различными плагинами на боковой панели отображается страница содержимого соответствующего плагина.

2. Файловый браузер

Плагин файлового браузера, как следует из названия, управляет файлами.

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

Существует несколько способов создать новое рабочее пространство. Вы можете создать пустое рабочее пространство или создать его на основе шаблона. Remix предоставляет множество шаблонов. Его также можно создать путем клонирования репозитория Git.

Вы можете создать несколько разных рабочих пространств и переключаться между разными рабочими пространствами.

Также играл пространстворуководитьПереименование, загрузка, удаление, резервное копирование, восстановлениеждатьдействовать。возвращатьсяможет пройти Remixd Плагин подключается к локальной файловой системе, примерно Remixd Часть находится в 3 Подробности представлены в подразделе.

В рабочей области также поддерживаются различные операции. Помимо непосредственного создания файлов и папок, вы также можете загружать и загружать файлы и папки из локальной файловой системы в текущую рабочую область, а также импортировать файлы из IPFS или https. . Наконец, вы также можете инициализировать текущую рабочую область как проект Git.

3. remixd

По умолчанию Ремикс Добавленные сюда файлы хранятся в базе данных, поставляемой вместе с браузером. 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 связь.

4. Плагин Git

Использование подключаемого модуля 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 появится гораздо больше вкладок. Все вкладки:

  • SOURCE CONTROL:В основном для подачиисинхронныйдействовать
  • COMMANDS:Может быть выполнено pull、push и fecth действовать
  • COMMITS:выставкакаждое представление
  • BRANCHES:для создания ветвей、Переключить ветки и т. д.
  • REMOTES:Управление адресами удаленных складов
  • CLONE:клонироватьдействовать
  • GITHUB SETUP:настраиватьGithub
  • LOG:бревно

После завершения инициализации на предыдущем шаге следующим шагом будет установка адреса удаленного склада. Git в панели плагинов REMOTES Произведите настройки во вкладке.

После настройки вы можете внести изменения в код проекта. После завершения изменений. Сносно SOURCE CONTROL добавить в Commit После выполнения Sync Changes,На этом передача кода на удаленный склад завершена.

5. Редактор

Редактор Remix — это тот же редактор, который используется в VS Code. Он поддерживает подсветку кода на трех языках: Solidity, JS и TS.

По умолчанию полезны три функции:

  • Автодополнение кода
  • Показать бюджет газа
  • Показать сообщение об ошибке

При кодировании будут функции автоматического завершения и подсказки для ключевых слов, объявленных переменных и имен функций.

Для каждой функции бюджет газа функции отображается в правой части функции.

Ошибки и предупреждения в коде будут отмечены волнистыми линиями разного цвета.

Эти функции можно включить или отключить в настройках, они включены по умолчанию.

Кроме того, когда вы открываете контекстное меню в редакторе, вы также можете увидеть опцию «Форматировать код», которая позволяет отформатировать текущий код в стиле кода, чтобы он соответствовал спецификациям кода, что тоже очень удобно.

6. компилятор&AIинструмент

Компилятор можно использовать совместно с инструментами ИИ, что более удобно.

Панель компилятора очень проста. Во-первых, вы можете выбрать версию компилятора. 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,Это необходимо, когда передняя и задняя части должны взаимодействовать с контрактами.

7. развертывать&отправить транзакцию

развертывать&отправить транзакциюплагин,Давайте сначала поговоримразвертывать。

Первым шагом является выбор среды развертывания, то есть сетевой среды, в которой будет развернут контракт. В раскрывающемся списке по умолчанию есть несколько вариантов. Нажмите на последний элемент в списке. “Customize this list..." Можно открыть список всех сетевых сред. Ниже мы представим только наиболее часто используемые из них.

  • Injected Provider - MetaMask:Подключитесь напрямую к вашему браузеру MetaMask кошелек, твой MetaMask Кошелек будет использовать любую сетевую среду, к которой он в данный момент подключен, а учетная запись кошелька также будет напрямую использовать вашу. MetaMask счет.
  • Remix VM(Cancun):Сеть-песочница для встроенного браузера по умолчанию,и предоставил 15 учетные записи по умолчанию, каждая учетная запись имеет 100 ether。
  • Remix VM - Mainnet fork:fork Сеть-песочница браузера автономной сети также обеспечивает 15 учетные записи по умолчанию, каждая учетная запись имеет 100 ether。
  • WalletConnect:проходить WalletConnect Подключить кошелек

GAS LIMIT Для некоторых частей значение по умолчанию обычно выбирается напрямую. Estimated Gas Вот и все, не нужно настраивать значение.

VALUE То есть количество нативных токенов, которое необходимо передать в контракт, то есть msg.value ценить.

CONTRACT Вы можете выбрать контракт для развертывания. Обычно по умолчанию используется текущий контракт.

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

После успешного развертывания внизу Deployed Contracts встречавыставкаисточникразвертывать Вкладка «Контракт»,Откройте его, чтобы взаимодействовать с контрактом. в,Кнопки с синим фоном читабельны.,На кнопке с оранжевым фоном написано Функция.

Есть еще один At Address кнопку, которую также можно использовать для загрузки контрактов в Deployed Contracts Взаимодействуйте с контрактами в списке. использовать At Address,Есть два способа,Один из нихCONTRACT Выберите код контракта для загрузки. Не обязательно указывать полный код контракта, даже если это только один. interface Это нормально; другой способ — загрузить. abi Используются файлы и видео IERC20.abi Продемонстрировано на примере.

8. Отладчик

Плагин отладчика, как следует из названия, используется для отладки.

Есть два способа начать Отлаживать. Первый способ — ввести хэш транзакции прямо в панели отладчика, если код есть. verify Если да, то ремикс Попробую начать с Sourcify или Etherscan Получить исходный код。Второй способ,Это также наиболее часто используемый метод,Это черезразвертывать&отправить транзакциюплагин Транзакция инициирована,При показе каждой транзакции в Терминале,правая сторонаиметьиндивидуальный Debug кнопка, нажмите эту кнопку, чтобы начать Debug .

Основные операции при отладке:

  • Step into:Шаг вперед к следующемудействоватькод,Если есть вызов подфункции, она войдет в подфункцию.
  • Step back:Один шаг назад к предыдущемудействоватькод
  • Step over forward:Шаг вперед к следующемудействоватькод,Если есть вызов подфункции, он не войдет в подфункцию.
  • Step over back:Один шаг назад к предыдущемудействоватькод,Если есть вызов подфункции, он не войдет в подфункцию.
  • Jump to next breakpoint:перейти к следующей точке останова
  • Jump to brev breakpoint:перейти к предыдущей точке останова
  • Jump out:Выпрыгнуть
  • Stop debuging:Остановить отладку

На панели появится много информации,Ядро — это панель кода действия.,Будет отображен код операции, соответствующий текущему этапу выполнения.

Дополнительно имеются следующие подпанели:

  • Function Stack:функциякуча
  • Solidity State:Отобразить переменные состояния контракта
  • Solidity Locals:локальные переменные,Включает функциональный параметр
  • Step details:текущийдействоватькод Подробности
  • Call Stack:вызовкуча
  • Full Storage Changes:показыватьфункция Постоянное хранение в конце
  • Stack:EVM куча
  • Call Data:Содержитфункцияпараметрический calldata
  • Memory:Памятьпанель
  • Storage:постоянное хранилищепанель
  • Return Value:возвращаемое значение
  • Global Variables:глобальные переменные

Во время моего фактического тестирования информация, обычно отображаемая на этих панелях, не была полной. Например, на панели Solidity State не отображались переменные состояния, Solidity State не отображал все локальные переменные, а Return Value не отображало возвращаемое значение.

9. Модульное тестирование

Последний плагин — плагин модульного тестирования.

Remix Плагин модульного тестирования поддерживает solidity Код модульного теста, написанный на этом языке. Файл библиотеки, используемый для объявления точек останова: remix_tests.sol,в определенном Asset библиотека, и есть несколько equalnotEqualgreaterThanlessThan функция. Кроме того, существует remix_accounts.sol файл, который определяет TestsAccounts библиотека, благодаря которой getAccount Функция получения тестового аккаунта.

Функции модульного теста обычно начинаются с checkXXX назван. Кроме того, есть четыре специальные функции:

  • beforeEach() - Будет в каждом Модульное обсуждение выполнения перед вариантом использования
  • beforeAll() - Будет во всех Модульное обсуждение выполнения перед вариантом использования,Выполнять только один раз
  • afterEach() - Будет в каждом Модульное тестирование Вариант использования После выполнения
  • afterAll() - Будет во всех Модульное тестирование Вариант использования После выполнение, выполняется только один раз

писать Модульное Кстати, вы также можете использовать добавление в аннотации #sender: account-{N} и #value: {N} указать msg.sender и msg.value,Как показано ниже:

Язык кода:javascript
копировать
/// #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 кнопку, он начнет выполнять Модульное Если имеется несколько файлов, вы также можете проверить, какие тестовые файлы следует выполнить.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.