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)