Flow 구성: Aprende FCL - 4. Como resolver identidades en .find a direcciones en Flow

13374 단어 fclweb3flowjavascript
Esta es una traducción al español del cuarto artículo de la serie Build on Flow | FCL escrita por 를 배우십시오.

이력서

En este artículo, aprenderemos como usar un contrato desplegado e interactuar con él. Interactuar Contractos Existentes en la Blockchain es un parte esencial de lo que hace a la Web3 especial.

En este tutorial específico:
  • Resolveremos un identificador de nombre en .find a una dirección 0x en Flow (.find → 0x)
  • Busca el nombre .find para una cuenta para una dirección 0x en Flow (0x0 → .find

  • "Aprende FCL"소개

    Si trabajaste a través de alguno de nuestros post previos deberías saber como pasar argumentos a scripts en Cadence. Necesitaremos este conocimiento ya que en este 튜토리얼 pasaremos valoresString yAddress .

    엠페세모스! 💪

    준비

    Cuando quieras interactuar con algún contrato desplegado, Primero necesitas descubrir donde esta desplegado 😅. En nuestro ejemplo específico, .find es un servicio conocido y con la ayuda de su creador Bjarte fuimos capaces de encontrar la dirección del repositorio en GitHub en https://github.com/findonflow/find .

    💡 Pro Tip: puedes encontrar cualquier contrato que quieras, mientras tengas un hash de la transacción o una dirección de una cuenta que haya interactuado con el contrato en el pasado. Solo visita su historia en flowscan.org!



    De vuelta a .find! Excavando un poco, puedes encontrar toda la información que necesitas dentro del archivo integration.md . 특히 Cadence que usaremos como nuestros resolveores에 코드를 작성하십시오. Este método para encontrar un nombre a través de una dirección:

    import FIND from 0x097bafa4e0b48eef
    
    pub fun main(name: String): Address?{
      return FIND.lookupAddress(name)
    }
    
    


    Y este otro para el proceso reverso:

    import FIND from 0x097bafa4e0b48eef
    
    pub fun main(address: Address) : String?{
      return FIND.reverseLookup(address)
    }
    
    


    파소 1 - 인스탈라시온



    Agrega "onflow/fcl": "1.0.0"는 의존성입니다.

    파소 2 - 설정



    Como la última vez importaremos los métodos necesarios para configurar FCL:

    //Importamos métodos de FCL
    import { query, config } from "@onflow/fcl";
    
    // Especifica el endpoint de la API - esta vez usaremos Mainnet
    const api = "<https://rest-mainnet.onflow.org>";
    
    // Configurar FCL para usar Testnet como el nodo de acceso
    config().put("accessNode.api", api);
    
    


    Paso 3 - Resolver una Alias ​​de Identidad a una dirección



    Ahora crearemos una función llamadaresolveName . Esta función aceptará un parametro String , pasa este a la blockchain junto con nuestro código resolveor e imprime el resultado:

    const resolveName = async (name) => {
      // El codigo Cadence que podemos obtener del script "resolve.cdc":
      // <https://github.com/findonflow/find/blob/main/scripts/resolve.cdc>
      // El contrato de .find está deployado en la Mainnet de Flow en la dirección "0x097bafa4e0b48eef"
        // usaremos esta direccion en la declaración de importación
      const cadence = `
        import FIND from 0x097bafa4e0b48eef
    
        pub fun main(name: String): Address?{
          return FIND.lookupAddress(name) // we'll use .find's native lookupAddress method.
        }
      `;
    
      const args = (arg, t) => [arg(name, t.String)];
    
        // "query" es usado para operaciones de sólo lectura en la blockchain.
        // lee más acerca del método "query" en la pagina web de la documentación de Flow:
        // <https://docs.onflow.org/fcl/reference/api/#query>
      const address = await query({ cadence, args });
    
      console.log(
        `${name} identity has address %c${address}`,
        "color: #36ad68; font-weight: bold"
      );
    };
    
    


    Paso 4 - Alias ​​de Identidad의 리졸버 방향



    Hagamos algo 유사한 para revertir el proceso. Crearemos una función llamadaresolveAddress que acepta una dirección pasada comoString .

    const resolveAddress = async (address) => {
        // El código Cadence para resolver una direccion como argumento 
        // a una Address lo podemos obtener del script "name.cdc"
        // <https://github.com/findonflow/find/blob/main/scripts/name.cdc>
        // El contrato de .FIND esta deployado en la dirección "0x097bafa4e0b48eef" - usaremos esa dirección en la declaración de importación.
      const cadence = `
        import FIND from 0x097bafa4e0b48eef
    
        pub fun main(address: Address) : String?{
          return FIND.reverseLookup(address) // nota la nueva función
        }
      `;
    
      const args = (arg, t) => [arg(address, t.Address)];
        // "query" pasara código en Cadence para acceder al nodo para su ejecución y nos retornará un resultado
        // lee más acerca del método "query" en la documentación de Flow.
        // <https://docs.onflow.org/fcl/reference/api/#query>
      const name = await query({ cadence, args });
    
      console.log(
        `${address} address is aliased to %c${name}`,
        "color: #36ad68; font-weight: bold"
      );
    };
    
    


    마무리



    Llamemos las funciones que creamos al final del archivo usando algunos parametros de prueba.

    ❕Nota: Estamos llamando a esos métodos dentro de una IIFE por simplicidad. Uno puede imaginar ejecutándolos con un botón o como parte de un procedimiento más complejo.



    Ejecutar este código debería emitir esto a la consola:

    bjartek identity has address 0x886f3aeaf848c535
    0x886f3aeaf848c535 address is aliased to bjartek
    


    Puedes encontrar el código completo en este Codesandbox .

    이제 곧! 👋

    재귀



  • Código del ejemplo: https://codesandbox.io/s/dev-to-fcl-resolve-find-name-9tbo8e

  • Cadence Imports - https://docs.onflow.org/cadence/language/imports/ - Cadence에서 선언문import을 문서화합니다.

  • .find GitHub 리포지토리 - https://github.com/findonflow/find - .find에 대한 완전한 문서화 및 문서화.

  • Otros recursos que podrías encontrar útil:

  • Flow 문서 - https://docs.onflow.org/ - Flow와 상호 작용하는 블록체인에 대한 자세한 정보를 제공합니다.

  • Flow Portal - https://flow.com/ - Flow를 입력하는 포털입니다.

  • FCL JS - https://github.com/onflow/fcl-js - Código fuente y la habilidad de contribuir a la libreria de FCL JS.

  • 케이던스 - https://docs.onflow.org/cadence/ - 케이던스를 소개합니다.

  • Codesandbox - https://codesandbox.io - 프로토타입에 대한 일반 텍스트 편집기가 탐색되지 않습니다.
  • 좋은 웹페이지 즐겨찾기