Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
¿Puedo generar una transacción en el servidor y enviarla al cliente para el pago?

He creado un método de contrato inteligente al que paso algunos datos confidenciales que deben almacenarse en la cadena de bloques y alterar el estado del contrato. Yo, el creador del contrato, no quiero ser el que pague los honorarios de esa transacción. Quiero que el usuario del navegador lo apruebe y pague.

Sin embargo, no quiero generar el objeto de transacción en el navegador porque quiero que algunos de los datos que se pasarán al contrato se oculten al cliente. Si entiendo la sintaxis de web3 correctamente, en el siguiente código, estoy haciendo exactamente eso

 web3.eth.sendTransaction({ from: walletAddressOfTheUserThatWillPayForTheTransaction, data: myContract.methods.changeState(..sensitive data...).encodeABI() })

Sin embargo, no quiero que suceda lo anterior en el navegador. En mi cabeza, la secuencia de eventos debería verse así ( pseudocódigo ):

 // server let transactionObject = { from: walletAddressOfTheUserThatWillPayForTheTransaction, data: myContract.methods.changeState(..sensitive data...).encodeABI() } sendToClient(encrypt(transactionObject)) // client let encryptedTransactionObject = await fetchEncryptedTransactionObjectFromServer() // this should open up Metamask for the user so that they may approve and finalise the transaction on the browser web3.eth.sendTransaction(encryptedTransactionObject)

Es posible ? ¿Hay alguna otra forma de lograr esto? ¿Podría proporcionarme algunas sugerencias sobre la sintaxis real que se utilizará?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sin embargo, no quiero generar el objeto de transacción en el navegador porque quiero que algunos de los datos que se pasarán al contrato se oculten al cliente.

Entonces, en primer lugar, no debería usar cadenas de bloques públicas, ya que todos los datos en las cadenas de bloques públicas, por definición, son públicos. Cualquiera puede leerlo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda