Diferencia entre eth.newAccount y personal.newAccount

¿Alguien puede explicar la diferencia entre

`eth.accounts.create()` and `eth.personal.newAccount()`

y ¿cuál debemos usar y por qué? Como soy nuevo en ethereum, es muy confuso para mí. Gracias

Respuestas (2)

De la documentación, la definición de ambos es un poco diferente.


cuentas.eth

El web3.eth.accounts contiene funciones para generar cuentas Ethereum y firmar transacciones y datos.

Sólo hay un parámetro que es

  • entropía - Cadena (opcional): un fuerte aleatorio para aumentar la entropía. Si se proporciona, debe tener al menos 32 caracteres. Si no se proporciona ninguna, se generará una cadena aleatoria usando randomhex.

También eth.accounts.create()devolverá un objeto que contiene

  • dirección - cadena: La dirección de la cuenta.
  • privateKey - cadena: La clave privada de la cuenta.
  • signTransaction(tx [, callback]) - Función: La función para firmar transacciones.
  • sign(data) - Función: La función para firmar transacciones

eth.personal

El paquete web3.eth.personal le permite interactuar con las cuentas del nodo Ethereum.

También hay un solo parámetro, pero le permite establecer la contraseña

  • contraseña - Cadena: La contraseña para cifrar esta cuenta.

Y solo obtienes una cadena como retorno que es

  • Promesa devuelve Cadena: La dirección de la cuenta recién creada.

No hay mucha más información al respecto, pero supongo que usarías el que más se adapte a tus necesidades. En la mayoría de los casos, probablemente debería usarlo eth.accountsporque le brinda mucha más información.

Fuente: web3.js - Ethereum JavaScript API

cuenta creada usando eth.accounts.create(), que no se muestra en la lista de eth.accounts. También, ¿hay alguna necesidad de desbloquear esa cuenta recién creada (usando eth.accounts.create())?
@AmitSharma El getAccountsmétodo devuelve una promesa, ¿estás seguro de que lo estás esperando?

Por lo general, el personalmódulo le permite interactuar con cuentas "bloqueadas" que requieren una contraseña para realizar una acción. El eth.accountsmódulo le permite interactuar con cuentas ya desbloqueadas, que no requieren una contraseña para realizar una acción.