Saltar al contenido principal

Inicio rápido

Requisitos

  • Node.js versión 18.16.1 o superior:
    • Cuando instalas Node.js recomendamos revisar todas tus dependencias y su compatibilidad.

Instalación

Instalamos el paquete desde npm

pnpm install @alfabc/sdk
note

Se puede utilizar el gestor de paquetes deseado, npm, pnpm o yarn.

Módulos

El sdk está compuesto de diferentes módulos o paquetes que están a disposición desde la clase Alfa. Esta clase se importa desde el paquete @alfabc/sdk.

import { Alfa } from "@alfabc/sdk"

Para crear una instancia de la clase se le pasará como argumento un objeto con las configuraciones principales. Las cuales se detallan a continuación.

Configuraciones

El objeto de configuraciones tendrá las siguientes opciones:

info

Las opciones apiKey y host son obligatorias.

  • apiKey string

    Esta es la clave api proporcionada por Alfa.

  • host string

    Este es el enlace a los servicios api proporcionados por Alfa.

  • local boolean

    Opcional. Por defecto es false y significa que las transacciones serán enviadas al servidor. En true significa que las transacciones serán enviadas a un proveedor local de Ethereum.

    caution

    Si usas el modo local significa que estás usando el sdk desde el frontend. El sdk intentará conectarse a una wallet Ethereum desde el navegador. Además el módulo de wallet no estará disponible si no está activado el modo local.

  • chainIds number[]

    Un arreglo con los ID de las redes soportadas por su aplicación. Tomar en cuenta que deben ser redes evm. Este arreglo será usado en modo local por la wallet para permitir las operaciones sobre la blockchain. Por ejemplo:

    const chainIds = [1,5,80001];
  • wallets Map<string, string>

    caution

    Obligatorio si se usa modo local en false

    Mapa de claves con direcciones Ethereum, esto es lo que llamaremos caller. Se utilizará para determinar que cuenta es la que ejecuta las transacciones en la red. Se necesita mínimo una dirección y su clave puede ser cualquiera.

    Ejemplo:

    const wallets = new Map<string, string>();
    const myWalletAddress = '0xa73a3b8ACa335855EeaC2f9Fb505BB0360A1B703';

    wallets.set('default', myWalletAddress);

    Si usas en tu aplicación clientes con diferentes cuentas de Ethereum puedes pasar lo siguiente:

    const user1 = ['Juan', '0xa73a3b8ACa335855EeaC2f9Fb505BB0360A1B703'];
    const user2 = ['Pedro', '0xa73a3b8ACa335855EeaC2f9Fb506BB0360A1B702'];
    const user3 = ['Lucas', '0xa73a3b8ACa335855EeaC2f1Fb505BB0360A1C603'];

    const wallets = new Map<string, string>([user1, user2, user3]);
    info

    Al ser wallets un Mapa de claves y cuentas Ethereum. Podrías usar la referencia a este objeto para agregar o eliminar cuentas dinámicamente en tiempo de ejecución.

  • ipfs object

    • useCache boolean

      Activar la caché de archivos descargados del ipfs o mfs en el frontend.

      caution

      Esta opción solo funciona en modo local

  • logLevel LogLevel

    LogLevel puede ser log | warn | error | debug ;

Inicializar

Para inicializar basta con pasar el objeto con las configuraciones básicas.

const sdk = new Alfa({
apiKey: '96b7ac903dd1b10fd4b14be043e10b64d1e8c525d8e188c559cfc4c1f8c09c99',
host: 'https://web3.alfabc.io',
local: false,
wallets: new Map(['default','0xa73a3b8ACa335855EeaC2f9Fb505BB0360A1B703']),
logLevel: 'warn'
});