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
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:
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.
cautionSi 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>
cautionObligatorio 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]);infoAl 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.
cautionEsta 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'
});