Pontos-chave
- JavaScript conecta a interface do navegador com wallets e serviços de rede.
- Também é usado fora do navegador por meio de ambientes como Node.js.
- A integração precisa gerenciar estados assíncronos, erros e validação de dados.
O que é JavaScript?
JavaScript executa a lógica interativa de muitas aplicações web e também pode ser usado em servidores por meio de runtimes como Node.js. Em uma dApp, conecta formulários, wallets e serviços de dados para que uma pessoa entenda e autorize uma operação. O contrato aplica as regras on-chain; JavaScript organiza a experiência e as integrações ao seu redor.
Compartilhar a linguagem entre navegador e backend facilita reutilizar validações e formatos, embora cada ambiente mantenha responsabilidades diferentes. As credenciais de infraestrutura e as chaves de assinatura do servidor não devem fazer parte do código enviado ao navegador.
Como funciona
As consultas RPC e as solicitações a uma wallet são assíncronas. Promises e async/await permitem representar seu resultado, mas a aplicação precisa distinguir rejeição do usuário, falha de conexão e transação revertida. Receber um hash indica que uma transação foi enviada; não comprova que a operação tenha sido concluída corretamente.
As wallets podem ser expostas por meio de provedores compatíveis com EIP-1193 e mecanismos de descoberta como EIP-6963. A integração deve reagir a mudanças de conta e de rede. Ethers e Viem oferecem abstrações diferentes para esses provedores; suas classes e métodos não são intercambiáveis.
O que o JavaScript oferece
Em uma compra com tokens, a interface pode ler saldo e autorização, explicar a permissão solicitada e preparar a chamada ao contrato. Depois, mostra as etapas de assinatura, envio e confirmação, conserva a referência da operação e permite recuperar seu estado ao recarregar a página. Isso evita que um atraso visual seja interpretado como um convite a pagar de novo.
Os valores de contratos são tratados como inteiros, usando bigint quando apropriado. A conversão para unidades legíveis ocorre em um ponto controlado e respeita as casas decimais do ativo. Converter indiscriminadamente para Number pode perder precisão em quantidades perfeitamente válidas on-chain.
Limitações e critérios de escolha
A tipagem dinâmica exige disciplina nas fronteiras entre componentes. Um endereço recebido de um formulário ou de uma resposta de API precisa de validação; uma string que parece correta não demonstra que o contrato exista na rede selecionada. TypeScript pode adicionar verificações durante o desenvolvimento sem substituir essas checagens em tempo de execução.
A escolha de bibliotecas inclui revisar manutenção, suporte a wallets e tratamento de erros. Web3.js e Truffle têm anúncios de descontinuação que importam na manutenção de projetos legados. Para código novo, avaliam-se alternativas mantidas e testam-se os fluxos completos com cancelamentos, reconexões e trocas de rede.
Também conhecido como
- JS
- ECMAScript
- ES6+





