Estoy usando trufa, ganache y web3. Estoy inicializando la identificación de usuario en el contrato inteligente mientras implemento el contrato inteligente. A partir de ahora, todo se hace por cuenta[0] de Ganache.
Ahora, quiero una funcionalidad como, si ## Encabezado ## Estoy creando una identificación de usuario en un contrato inteligente, entonces debe asignarse con un hash único proporcionado por blockchain.
Para eso, no tengo idea de cómo podemos integrar un usuario recién creado a la cuenta de ganache.
¿Hay alguna otra forma de hacerlo o alguien tiene algún enlace de referencia para eso?
Solo necesita un método addUser(name)
que agregue un usuario recién creado.
Luego, el hash se puede calcular para keccak256()
generar un bytes32
hash. Ahora depende del caso de uso cómo le gustaría almacenarlo. Tal vez una estructura de detalles de usuario o mapeo con uint
id => string
hash.
A partir de ahora, todo se hace por cuenta[0] de Ganache.
Sí, eso es predeterminado. Si menciona esto, supongo que solo desea account[0]
que el implementador del contrato pueda agregar usuarios. En ese caso, solo necesita tener un require(msg.sender==admin)
administrador donde el tipo asignado durante la implementación del contrato.
Editar
Leí tu pregunta de nuevo. Si está pensando que cada usuario con contrato tendrá directamente una cuenta mapeada... ¡No! Necesitas explicar más lo que quieres lograr.
Actualizar
Después de su comentario, parece que necesita asignar una dirección al usuario. TestRPC/Ganache
funciona de manera diferente.
Estas son las cuentas creadas por defecto bajo SU control. Puede revelar fácilmente la dirección pública de las cuentas, pero eso no soluciona ningún propósito. ¿Por qué? Porque el usuario debe tener su propia clave privada para realizar algún tipo de transacciones.
Para esto, depende totalmente ahora. Los usuarios deben y deben crear sus propias cuentas y darle la dirección pública. Esta dirección ahora debe permanecer con el contrato.
Pero si aún desea hacerlo de esa manera y servir como administrador para el usuario, simplemente elija una cuenta, digamos account[5]
. Colóquelo en una base de datos local (opcionalmente) que account[5]
esté asignada al nombre de usuario 123user
. Cree una asignación en el contrato, llame a la función para asignar la dirección. cuando llame a la función, simplemente pase la dirección account[5]
y el nombre de usuario. Descansa todo sigue.
Una mejor manera será generar bip39
/ bip44
wallets.
Riya Soni
rohan sethi
Riya Soni
rohan sethi
web3
, llame al método de contrato que actualiza un mapeouint userId => address account
. Eso es. Descansa hay mucho que explicar.Riya Soni
rohan sethi
web3.eth.accounts[2]
e Id. Entonces este método hará los cambios en la solidez.rohan sethi
Riya Soni
rohan sethi