Construir el frontend de la dApp

Para construir interfaces web, necesitarás el arch3.js npm packagearrow-up-right 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 Keplrarrow-up-right.

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.

circle-info

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 interactivaarrow-up-right preferNoSetFee en true, como se muestra en el ejemplo anterior. Puede encontrar más información sobre estas opciones de anulación aquíarrow-up-right.

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:

  1. userAddress - la dirección que emite la transacción

  2. ContractAddress - la dirección del contrato con el que el usuario está realizando una transacción.

  3. entrypoint - argumentos a ejecutar que coinciden con un punto de entrada en el contrato

  4. 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.arrow-up-right

Optimizacion de la funcionalidad de la Dapp con indexadores

Después de completar esta guía, integre SubQueryarrow-up-right 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