Introdução ao Waves Signer

A demonstração de trabalho do aplicativo com base Waves Signer pode ser visto no https://vlzhr.github.io/waves-signer-example/src/. Neste artigo sobre a tecnologia vou descrever o processo de sua criação passo-a-passo após uma curta introdução. A documentação oficial do Waves Signer está disponível aqui.

Qual é o problema?

A experiência do usuário é uma das partes mais desafiadoras do desenvolvimento em dApps. Na minha opinião, uma das principais razões para a falta de adoção da tecnologia é um nível de entrada bastante alto. É difícil começar a usar blockchain! Parcialmente, devido à abordagem inconveniente de autorização do usuário..

Por um longo tempo, a única maneira confiável de um desenvolvedor implementar autorização em seu aplicativo Web baseado na Waves era uma extensão do navegador – Waves Keeper.

https://wavesplatform.com/technology/keeper

Waves Keeper é uma tecnologia que ajuda o usuário a armazenar contas de dados e usá-lo para criar transações e autorização em aplicações de terceiros. É seguro, mas também tem uma importante desvantagem: é necessário instalar a extensão antes de usá-lo.

Isto significa que a funcionalidade completa do dApp não pode ser fornecido para o visitante do site se ele não tem o Waves Keeper instalado. Uma boa razão para dizer que o nível de entrada do blockchain é demasiado elevado para a adoção em massa, certo?🙂

O que é Waves Signer?

O novo produto chamado Waves Signer é criado para resolver parcialmente o problema e remover uma barreira para os usuários em um ecossistema Waves.🎉

Desde já, os desenvolvedores podem usar a funcionalidade Waves Signer para permitir aos usuários autorizar ações usando qualquer forma preferível – usando qualquer provedor de assinatura.

Os seguintes produtos podem ser usados ​​como um provedor:

  • Cliente waves.exchange
  • Cliente Waves Desktop
  • Waves Keeper
  • Ledger… ou qualquer outro armazenamento de chave privada

Por enquanto, o provedor Waves.Exchange está pronto. Isso significa,🔷os usuários podem autorizar nas aplicações de terceiros usando a conta Waves.Exchange em qualquer navegador🔷 sem baixar qualquer extensão.

Logo após a imagem seguinte vou descrever os passos que os desenvolvedores precisam fazer para implementar este recurso para seus dApps.

janela de confirmação da transação ondas Signer //

Como usar Waves Signer?

Vamos descobrir a funcionalidade que os desenvolvedores podem implementar para seus dApps através do Waves Signer. Nós vamos construir uma aplicação JS fácil passo-a-passo. O exemplo também está publicado em github.

Nosso plano será:

  1. Setup do nosso ambiente
  2. Criação de UI simples (interface de usuário)
  3. Preparando Waves Signer para uma integração harmoniosa
  4. Usando todo o poder do Waves Signer 💥

Vamos ao código !!!

Ambiente

Nós vamos usar um simples JavaScript com Webpack bundler. Para configurar o ambiente, por favor:

  1. Prepare o arquivo webpack.config
  2. Instale as bibliotecas de assinantura e provedor usando npm
    npm i @waves/signer @waves.exchange/provider-web

Interface de usuário

Vamos iniciar a codificação através da criação de interface do usuário. nada especial, apenas uma página HTML simples com quatro botões: index.html

Mais tarde vamos adicionar manipuladores para estes 4 botões.

Preparando Waves Signer

Agora vamos usar as bibliotecas Waves Signer e o provedor da Waves.Exchange para criar as ondas objeto no novo arquivo JS vamos: index.js

O provedor de SEED é a opção para outro provedor. Aqui é a maneira que você pode usá-lo em seus projetos:

Desde já temos o objeto waves que pode ser usado para criar e transacionar tokens utilizando o perfil na Waves.Exchange. Vamos adicionar alguma funcionalidade básica para manipular os botões!😃

Autorização do usuário

O Waves Signer pode ser usado para obter os dados públicos de uma conta de usuário ativa no cliente Waves.Exchange.

Como resultado desta função o endereço da conta é exibido em um botão. A Waves.Exchange fornece essas informações sem revelar a chave privada ou frase semente do proprietário da conta.

O provedor pode usar uma frase semente para transações de token, bem como, para que possamos fazer o Waves Signer enviar as transações! 👍

Chamar Script Transação

As operações de invocação de script são usadas ​​para chamar os contratos inteligentes criados usando RIDE. Vamos adicionar a função que chama um faucet que irá completar o saldo de uma conta ativa.

Você pode ver que o objeto waves tem o método invoke() que cria a transação de invocação que está sendo enviada para o blockchain utilizando o método de broadcast(). O broadcast() retorna uma um objeto promise que pode ser tratado como de costume.

A propósito, a grande vantagem de uma nova biblioteca Waves Signer é que os desenvolvedores não precisam adicionar o valor de comissão no objeto de transação: o valor mínimo da tarifa é contado por padrão..

Se o script é chamado pelo usuário com sucesso, a sua conta terá saldo diferente de zero. Isso significa que o usuário agora pode pagar tarifas e mais transmitir mais transações!

Transação de dados

Um dos propósitos da Blockchain era inicialmente o armazenamento de dados dos usuários. O Waves Signer torna este processo mais fácil. Os desenvolvedores podem adicionar a funcionalidade de envio de dados para a blockchain de uma maneira muito simples:

Como resultado deste manipulador, a hora atual será enviada para a blockchain.

A única coisa que foi mudada no código em comparação com a função anterior é o nome do método. Você pode usar waves.data() para criar objeto de transação de dados.

Transação transferência

O último botão será usado para enviar uma quantidade mínima de tokens para um endereço codificado usando transação de transferência:

Extremamente fácil e código previsível, certo? 🙂

Por favor, dê uma olhada no arquivo completo JS no repositório: https://github.com/vlzhr/waves-signer-example/blob/master/src/index.js

Conclusão

O Waves Signer é um novo produto desenvolvido para remover a barreira de entrada para os usuários do ecossistema Waves, facilitando muito a autorização por meio de fornecedores. Existem 2 provedores atualmente – provedor de frases sementes (para testes em sua maioria) e provedor do cliente Waves Exchange, mas muitos outros serão adicionados no futuro.

Implementar a funcionalidade Waves Signer é bastante simples para os desenvolvedores de terceira parte. Eu espero que este artigo lhe ajude a obter a compreensão básica do processo de implementação!👏

Links

Documentação Waves Signer
docs.wavesplatform.com

Código fonte do Waves Signer
https://github.com/wavesplatform/signer

Código-fonte do provedor da Waves.Exchange
https://gitlab.waves.exchange/we-public/storage-provider

Exemplo Waves Signer “Olá Mundo”
https://github.com/vlzhr/waves-signer-example

Por favor, compartilhe seus comentários e faça todas as perguntas da tecnologia!
desenvolvedores bate-papo🎁
https://t.me/waves_ride_dapps_dev_br

1 Comentários