Как я могу подписать сообщение (не транзакцию) из dApp?
При создании dApp с использованием Elrond Network мне нужно аутентифицировать пользователя без фактической отправки транзакции.
Для других блокчейнов, таких как Ethereum, это достигается с помощью MetaMask, который может подписывать сообщение, и вы можете быть уверены, что пользователь является тем, кем он себя называет.
Я заметил, что в кошельке Elrond есть функция «Подписать», но я не уверен, как это будет использоваться извне и как я могу предложить пользователю подписать сообщение и отправить его обратно.
Могу ли я использовать расширение Maiar или кошелек Elrond для подписи сообщения?
2 ответа
Если вы еще этого не сделали, я предлагаю вам использовать erdjs или пакет dapp (который включает erdjs) для создания вашего dapp.
Используя их, вы получите различных поставщиков подписи, которые сделал elrond. Это включает:
- WalletConnectProvider , который используется для входа в систему через приложение maiar.
- ExtensionProvider , который используется для входа в систему через метамаску, такую как расширение браузера, называемое кошельком maiar defi.
- , который используется для входа в систему через аппаратное обеспечение HWProviderледжера.
Все эти провайдеры позволяют вам входить в систему, подписывать транзакции, отправлять транзакции, а также подписывать собственные сообщения.
Пример кода для входа через ExtensionProvider:
let provider = ExtensionProvider.getInstance();
await provider.init();
let walletAddress = await provider.login();
let message = new SignableMessage({message: "Sign this message to make sure you are logged in"});
let signedMessage = await provider.signMessage(message);
Конечно, использование подписанного сообщения в этом случае необязательно, но может быть полезно, если вы планируете реализовать некоторый поток аутентификации на стороне сервера.
Содействие ответу Мартина В.:
пакет dapp устарел. Вместо этого используйте dapp-core