Resumen
En el post anterior, cubrimos como colectar información acerca de bloques en la cadena. Hoy cubriremos como puedes consultar información acerca de una cuenta especifica usando la función account
.
Los dos casos de uso mas comunes, y que tu aprenderás hoy serán:
- obtener el balance actual de una cuenta en FLOW.
- traer una lista de contractos desplegados en la cuenta.
Paso 1 - Instalación
Añade "@onflow/fcl": "1.0.0"
como tu dependencia.
Paso 2 - Configuración
Justo como la última last vez, importaremos los métodos necesarios y configuraremos FCL:
// Importa los métodos de FCL import { account, query, config } from "@onflow/fcl"; // Especifica el endpoint de la API - esta vez usaremos Mainnet const api = "https://rest-mainnet.onflow.org"; // Configura FCL para usar mainnet como el nodo de acceso config().put("accessNode.api", api);
Paso 3 - Copiar el resolvedor
Siempre es bueno aplicar conocimiento previo y practicar. Traigamos de vuelta la función resolvedora de la lección 4 para usarla en nuestro ejemplo:
const resolveName = async (name) => { const cadence = ` import FIND from 0x097bafa4e0b48eef pub fun main(name: String): Address?{ return FIND.lookupAddress(name) } `; const args = (arg, t) => [arg(name, t.String)]; return await query({ cadence, args }); };
Paso 4 - Encontrando la cuenta
Tratemos de resolver la identidad flovatar
y exploremos que tiene para nosotros😊
Usaremos nuestro bloque invocado inmediatamente como siempre:
// Usaremos IIFE para ejecutar nuestro codigo inmediatamente (async () => { console.clear(); const address = await resolveName("flovatar") // es posible que name sea resuelto a "null" // agreguemos algo de protección basica en esta parte if (address){ const accountInfo = await account(address); console.log({ accountInfo }); } })();
Después de que el polvo se asiente, deberías ver el código en la consola:
{ address: "921ea449dffec68a", balance: 13052726819120, code: "", contracts: Object, keys: Array(2), }
Esos 5 valores son respectivamente::
-
address
- dirección de una cuenta (nota el prefijo0x
faltante si deseas usarlo en el futuro) -
balance
- cantidad de tokens FLOW en formato UFix64. Divide porMath.pow(10,8)
para obtener un valor float. -
code
- este es un valor deprecado, previamente fue usado para almacenar código del contrato desplegado a la cuenta. Antes solo era posible almacenar un solo contrato por cuenta. -
contracts
- objeto representando contratos desplegados. Las llaves son los nombres de los contratos y los valores son código en Cadence del respectivo contrato. -
keys
- lista de llaves asociadas a una cuenta.
Puedes encontrar mas información acerca de ellos en la documentación de Flow - https://docs.onflow.org/fcl/reference/api/#blockobject
Otras maneras de explorar una cuenta
Hay formas de explorar una cuenta específica:
- Flow View Source - https://flow-view-source.com/mainnet/account/0x5916e847260714b6 - es un proyecto de la comunidad hecho por el creador original de FCL - James Hunter - https://github.com/orodio
- Flowscan - https://flowscan.org/account/0x5916e847260714b6 - la página de Flowscan te mostrará mas información acerca de transacciones y transferencias gracias a que procesa los bloques detrás de escenas para acumular esa información.
Hasta la próxima 👋
Recursos
- Código del ejemplo - https://codesandbox.io/s/dev-to-fcl-07-get-account-j9rxkm?file=/src/index.js
Otros recursos que podrías encontrar útil:
- Documentación de Flow - https://docs.onflow.org/ - más información de tallada acerca de Flow blockchain y como interactuar con ella.
- Flow Portal - https://flow.com/ - tu punto de entrada a Flow.
- FCL JS - https://github.com/onflow/fcl-js - Código fuente y la habilidad de contribuir a la librería FCL JS.
- Cadence - https://docs.onflow.org/cadence/ - Introducción a Cadence
- Codesandbox - https://codesandbox.io - Un asombroso IDE en el navegador para prototipar.
Esta es una traducción al español del séptimo artículo de la serie Build on Flow | Learn FCL escrito por Maksimus Starka.
Top comments (0)