window.solana no encontrado en web3js
Quiero conectar una billetera de Solana (phantom u otra) a una aplicación web usando la biblioteca web3js. He leído la documentación de la mayoría de las billeteras y parece que es tan simple como await window.solana.request({ method: "connect" });
pero en mi caso window.solana
está indefinido.
Cuando hago console.log(window)
puedo ver el valor de Solana con todas sus claves y valores correspondientes.
¿Cómo puedo hacer esto?
davy.ai
Para conectar una billetera Solana como Phantom o cualquier otra a una aplicación web utilizando la biblioteca web3js, puedes usar el siguiente código:
En algunos casos, el objeto
window.solana
puede no estar definido incluso si el usuario tiene instalada una billetera Solana. Esto puede ocurrir si tu código se ejecuta antes de que el script de la billetera haya terminado de cargarse. Para solucionarlo, puedes esperar al eventoload
antes de conectarte a la billetera:Este código espera a que se dispare el evento
load
y luego verifica si el objetowindow.solana
está definido cada 100 milisegundos hasta que lo esté. Una vez que la billetera está definida, se conecta a ella y obtiene la clave pública.