Construir el frontend de la dApp
Para construir interfaces web, necesitarás el arch3.js npm package para conectar tu página web a la Red Archway.
Conexión con Archway
Necesitaremos que nuestra dapp se conecte a los monederos de los usuarios con una extensión de navegador como Keplr.
Tras instalar la extensión, observará que Keplr se expone a las páginas web como una propiedad del objeto ventana de JavaScript.
Keplr también necesita metadatos específicos sobre la cadena a la que se está conectando. A continuación se indican los parámetros necesarios para establecer una conexión con la red de prueba Constantine de Archway.
Ahora podemos utilizar ChainInfo para configurar Keplr para Constantine testnet.
Información
Una cosa a tener en cuenta es que, por defecto, Keplr anula las tarifas establecidas por el frontend. Para evitar que Keplr anule estas tarifas, establezca el valor de la opción interactiva preferNoSetFee en true, como se muestra en el ejemplo anterior. Puede encontrar más información sobre estas opciones de anulación aquí.
Consultando el contador
En el paso anterior guardamos una referencia a CosmWasmClient.queryContractSmart. La utilizaremos para consultar nuestro punto de entrada QueryMsg::GetCount del contrato Increment.
Al igual que cuando consultamos desde CLI, necesitamos convertir los argumentos de entrada a minúsculas y mayúsculas. En JavaScript los argumentos se convierten en {get_count: {}}.
Incrementar el contador
Para emitir transacciones llamamos a la función execute usando nuestra referencia anterior CosmWasmClient. Llamamos a esta función con los siguientes parámetros:
userAddress - la dirección que emite la transacción
ContractAddress - la dirección del contrato con el que el usuario está realizando una transacción.
entrypoint - argumentos a ejecutar que coinciden con un punto de entrada en el contrato
Fee - con arch3.js las tasas de transacción se pueden calcular automáticamente usando "auto".
Convertimos las mayúsculas y minúsculas de los argumentos del punto de entrada y las volvemos a repetir, de modo que ExecuteMsg::Increment {} de nuestro contrato Rust se convierte en {increment: {}} en nuestro JavaScript.
Clonalo y prueba tu mismo!
En el repositorio de ejemplos de dapp encontrarás ejemplos de dapp frontends para la plantilla de código Increment starter.
Optimizacion de la funcionalidad de la Dapp con indexadores
Después de completar esta guía, integre SubQuery para una recuperación de datos eficiente y una funcionalidad mejorada. Este indexador de blockchain va más allá de los datos históricos, permitiendo consultas rápidas, soportando contratos inteligentes y proporcionando datos en tiempo real para aplicaciones. Mejore las experiencias de usuario y libere todo el potencial de su dapp en diversos casos de uso aprovechando estos potentes indexadores.
Last updated