Construye en Flow: Aprende FCL - 7. Como consultar una cuenta en Flow por su dirección

brunogonzales

Bruno Gonzales

Posted on June 13, 2022

Construye en Flow: Aprende FCL - 7. Como consultar una cuenta en Flow por su dirección

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);
Enter fullscreen mode Exit fullscreen mode

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 });
};
Enter fullscreen mode Exit fullscreen mode

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 });
    }
})();
Enter fullscreen mode Exit fullscreen mode

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),
}
Enter fullscreen mode Exit fullscreen mode

Esos 5 valores son respectivamente::

  • address - dirección de una cuenta (nota el prefijo 0x faltante si deseas usarlo en el futuro)
  • balance - cantidad de tokens FLOW en formato UFix64. Divide por Math.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:

Hasta la próxima 👋

Recursos

Otros recursos que podrías encontrar útil:

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.

💖 💪 🙅 🚩
brunogonzales
Bruno Gonzales

Posted on June 13, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related