Estoy tratando de crear billeteras aleatorias a través de la función Ethers.Wallet.createRandom con una conexión a una red específica (como Ropsten, por ejemplo). Los documentos especifican que puedo pasar un objeto de options opcionales.
Intenté pasar una conexión a la red de esta manera:
const networkProvider = await new Ethers.getDefaultProvider(process.env.NETWORK); const wallet = Ethers.Wallet.createRandom({ provider: networkProvider });Desafortunadamente, eso no funcionó.
¿Hay alguna opción para pasar la red al crear la billetera o hay que hacerlo más tarde?
El objeto Wallet devuelto ( docs ) contiene la clave privada y la dirección de la billetera. Sin embargo, el algoritmo de generación de direcciones es universal en todas las redes. Entonces, si una clave privada 0x123 genera una dirección 0x456 , siempre puede usar la misma clave privada 0x123 para firmar transacciones desde la dirección 0x456 en todas las redes: la red principal, Ropsten, Rinkeby, etc.
La red en la que transmite la transacción depende de a qué red esté conectado su proveedor . Entonces, si desea limitar las redes en las que la aplicación puede enviar transacciones, debe validar el valor devuelto getNetwork() del proveedor ( docs ).
Agregue el parámetro de options : en el código fuente de createRandom() , solo usa el parámetro para afectar la pseudoaleatoriedad de cómo se genera la clave privada. Pero, de nuevo, no está relacionado con la(s) red(es) en las que va a usar la billetera.