Привет, Энди ![]()
По этой теме есть некоторая история на Meta (см., например,).
Во-первых, существует плагин discourse-ethereum (скорее всего, устаревший, но он существует):
Он покрывает пункты 1 и 2 из вашего списка (хотя и с немного иной интерпретацией пункта «2»). Он хранит адреса Ethereum вместе с учётными записями пользователей, использует web3.js для взаимодействия с MetaMask на стороне клиента и Etherscan для получения деталей транзакций.
Во-вторых, я ранее разрабатывал плагин для входа в Discourse с использованием криптовалюты (также с участием MetaMask) для одного клиента. Этот клиент впоследствии переключился на другие проекты. К сожалению, открыть исходный код этого решения невозможно (к тому же оно в какой-то степени специфично для конкретного провайдера). Кстати (поскольку это технически не входит в ваш список), главное препятствие при входе через MetaMask — это возможность создать учётную запись пользователя без привязанного адреса электронной почты.
Ваши следующие шаги зависят от того, чего вы пытаетесь достичь. Если ваша цель просто позволить пользователям подключать криптокошельки, то плагин discourse-ethereum решает эту задачу. Вам, вероятно, потребуется лишь обновить часть кода для совместимости с последней версией Discourse. Это относительно простая задача, с которой справится любой, кто знаком с Discourse.
Однако, если вы планируете создать более универсальный плагин для интеграции криптовалют с Discourse, вам сначала нужно детально описать проект, учитывая различные сценарии его применения: вход в систему, доступ к группам или категориям, а также возможность работы без расширения браузера, такого как MetaMask.
Такой анализ изменит архитектуру плагина: больше логики Ethereum будет перенесено на бэкенд, что обеспечит большую гибкость в будущем при добавлении новых функций.