¿Cómo enviar un token con Ether? (varias variantes)

Quiero vender mi token a usuarios que pagan con Ether.

  • ¿Es una buena idea solicitar al usuario que pase su billetera (para recibir) Ether como carga útil de EVM?

  • ¿O es necesario cargar mi clave privada en el servidor que realiza las ventas (con la billetera receptora pasada a través de HTTP (S)) y hacer la lógica en el código del servidor?

  • ¿O tal vez debería enviar tokens a la misma dirección desde la que recibo Ether?

Enumere todas las variantes posibles viables (entre las enumeradas anteriormente u otras) con sus ventajas y desventajas para hacerlo (implementando la venta automática del token con Ether).

Un código de Solidity completo o incompleto para hacer la tarea sería bueno.

Creo que programtheblockchain.com/posts/2018/02/02/… debería responder a su pregunta.

Respuestas (1)

El enfoque habitual es poner los tokens bajo la custodia de un contrato inteligente con una función que intercambia los tokens por éter. No es necesario pedirle al usuario su dirección porque el contrato sabrá quién firmó la transacción, es decir, quién envió el ether.

Es cierto que esta respuesta solo es útil para los desarrolladores de Solidity. Si no está familiarizado con los contratos inteligentes, no es especialmente fácil.

P1: No es necesario. Ya sea que reciba su contrato o billetera (proceso manual), cualquiera de los dos siempre "verá" quién lo envió.

P2: Nunca cargue su clave privada. Ese camino conduce al lado oscuro.

P3: Sí. En cualquier caso, manual o automatizado, la lógica más simple es enviar ether a la fuente de los fondos en una operación simple.

Espero eso ayude.