Как я могу подписать сообщение (не транзакцию) из 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

Другие вопросы по тегам