ERC20 :: Transferencia de tokens sin gas emisor

Supongamos que tenemos 50 tokens ERC20 que nos gustaría respaldar (depósitos) en nuestro sitio web. Las personas están depositando tokens en las direcciones ETH que hemos generado para ellos.
Al final del día, queremos reunir tokens de todas las direcciones generadas y enviarlos a nuestra billetera fría.

¿Cómo podemos hacer la transferencia a la billetera fría si las direcciones recién generadas no tienen ningún éter (esto significa que no hay gas) y no queremos enviar allí ningún éter?

Preferiblemente, me gustaría pagar todo el GAS que se requiere para las transacciones desde la dirección de la billetera fría, ¿es posible?

¿Cómo están manejando los intercambios tales situaciones? ¿Generan las direcciones y cada vez que envían allí eth para tener suficiente para el gas? Al final del día, tienen que mover activos a una cuenta. Eso suena... poco eficiente.

¿Alguna vez encontraste una respuesta a esta pregunta? Estoy buscando jugar y hacer algo similar, pero no quiero enviar gasolina a 1000 billeteras.
Haga una nueva pregunta, si esta pregunta está relacionada, incluya un enlace.

Respuestas (3)

Esto no es posible actualmente con el estándar ERC20. Hay algunas propuestas que abordan este tema desde diferentes ángulos, pero ninguna de ellas se acepta como estándar todavía:

  • Soportes EIP 865delegatedTransfer
  • EIP 965 amplía ERC777 con un "Operador de cheques". El caso de uso sobre el que preguntó se describe aquí .

Sin embargo, ambas propuestas requieren cambios en el contrato del token, por lo que no funcionarán para los tokens ERC20 ya existentes.

Entonces, la solución obvia, desafortunadamente, es enviar suficiente éter a las direcciones generadas para cubrir los costos de gas para mover los tokens.

Si posee un poder de minería significativo para producir un bloque cada X horas y está listo para esperar X horas para sacar esos tokens, puede configurar su software de minería para incluir sus propias transacciones de tarifa cero en sus propios bloques.

gracias, vi que no es un estándar, pero de alguna manera los intercambios tienen que recolectar incluso pequeñas cantidades de tokens de una gran cantidad de direcciones y estoy bastante seguro de que no están enviando GAS para cada una de estas cuentas, ya que será costoso
Eso es precisamente lo que están haciendo la mayoría (si no todos) los intercambios de custodios: generar una dirección, financiarla con suficiente éter para cubrir las tarifas de gas para algunas transacciones de fichas, luego sacar el éter si el usuario permanece inactivo durante demasiado tiempo. Usan una sola dirección para todos los tokens, por lo que es una dirección por usuario.

En lugar de hacer EAO para los usuarios, haga carteras de contratos con una función de transferencia a la que pueda llamar desde la dirección a la que desea enviar el token. Dicho esto, el sistema que propones es un poco extraño, ya que los usuarios tienen que confiar en ti. En tal caso, solo puede tener un contrato con saldos para cada usuario, al igual que el contrato de token.

Espero que esto ayude

¡Hola, Jaime! Eso suena genial, ¿podrías explicarlo un poco más? ¿Cómo debería funcionar? ¿Qué debo buscar en Google para cada paso?
¿cuál, el contrato de billetera o el contrato con saldos para cada usuario?, fíjate que si necesitan confiar en ti, solo puedes pedirles que te envíen los tokens
Acualmente ambos. Estoy proporcionando el pequeño intercambio local. Les estoy generando la dirección y la comparto en la interfaz. La gente me está enviando tokens para cambiar a USD. Por lo tanto, al final tengo que recolectarlo en la billetera fría principal, pero no quiero enviar ether a cada una de estas billeteras ya que las cantidades a veces son muy pequeñas y no es eficiente. Me pregunto cuán grandes lo hacen los intercambios porque el costo es realmente grande en gran escala. Por lo que descubrí de su publicación, puedo escribir un contrato que me permitirá, por ejemplo, transferir el token Tron directamente a la billetera fría y pagaré la tarifa.
Solo necesito más detalles y palabras de moda para poder buscarlo en Google. ¿Qué puedo usar para cubrir el precio del combustible con mi billetera en lugar de enviarlo a cada billetera que genero?
Solo quiero estar seguro de que entiendo lo que necesitas. ¿Por qué no pedirles que envíen los tokens a su billetera directamente?
Quiero proporcionar el mismo sistema que en los intercambios: todos obtienen la cuenta eth recién generada en mi billetera. Si quiero admitir múltiples tokens conocidos, ¿funcionaría el contrato de billetera o el contrato con saldos?
@susanoo está solicitando una configuración de custodia. Necesita direcciones diferentes para cada usuario para poder asociar los depósitos con los usuarios correspondientes.
@Jaime me podrías ayudar con eso?
Lo siento, todavía no entiendo por qué necesita crear direcciones éticas si las personas ya tienen sus tokens en direcciones éticas. En su lugar, puede pedirles que envíen los tokens a la dirección principal. Dado que el ERC activa eventos en la transferencia, puede saber quién le envió tokens en el back-end. Avísame si me estoy perdiendo algo. La solución que propuse aún le costará gasolina por cada transacción, pero no le costará nada si le envían los tokens a su dirección.

Puedes hacerlo con "flashbots"

¡Bienvenido a Ethereum Stack Exchange! Las respuestas aquí deben ser un poco más detalladas :) Esto se marcó automáticamente y la única opción que tengo es si esta respuesta es de baja calidad o no, y no cumple con la barra de este último ... EDITAR: aparentemente Puedo dejar este comentario sin que el sistema borre tu respuesta.