ERC20 :: Передача токенов без газа отправителя

Предположим, у нас есть 50 токенов ERC20, которые мы хотели бы поддерживать (депозиты) на нашем веб-сайте. Люди вносят токены на адреса ETH, которые мы для них сгенерировали.
В конце дня мы хотим собрать токены со всех сгенерированных адресов и отправить их на наш холодный кошелек.

Как мы можем сделать перевод на холодный кошелек, если на вновь сгенерированных адресах нет эфира (это означает, что нет газа), и мы не хотим отправлять туда эфир?

Предпочтительно, я хотел бы оплатить весь ГАЗ, который требуется для транзакций с адреса холодного кошелька - возможно ли это?

Как биржи справляются с такими ситуациями? Они генерируют адреса и каждый раз отправляют туда eth, чтобы хватило на газ? В конце концов, они должны перевести активы на один счет. Звучит... неэффективно.

Вы когда-нибудь узнавали ответ на этот вопрос? Я хочу поиграть и сделать что-то подобное, но я не хочу отправлять газ на 1000 кошельков.
Пожалуйста, задайте новый вопрос, если этот вопрос связан с этим, включите ссылку.

Ответы (3)

В настоящее время это невозможно со стандартом ERC20. Есть несколько предложений, рассматривающих этот вопрос с разных сторон, но ни одно из них пока не принято в качестве стандарта:

  • EIP 865 поддерживаетdelegatedTransfer
  • EIP 965 расширяет ERC777 с помощью «оператора проверки». Вариант использования, о котором вы спрашивали, описан здесь .

Однако оба эти предложения требуют изменений в контракте токена, поэтому они не будут работать для уже существующих токенов ERC20.

Таким образом, очевидное решение, к сожалению, состоит в том, чтобы отправить достаточно эфира на сгенерированные адреса, чтобы покрыть расходы на газ для перемещения токенов.

Если вам посчастливилось обладать значительной мощностью майнинга, чтобы производить блок каждые X часов, и вы готовы ждать X часов, чтобы вывести эти токены, вы можете настроить свое программное обеспечение для майнинга так, чтобы оно включало ваши собственные транзакции с нулевой комиссией в ваши собственные блоки.

спасибо, я видел, что это не стандарт, но каким-то образом биржи должны собирать даже небольшое количество токенов с большого количества адресов, и я почти уверен, что они не отправляют GAS для каждой из этих учетных записей, так как это будет дорого.
Это именно то, что делают большинство (если не все) кастодиальных бирж: генерируют адрес, финансируют его достаточным количеством эфира, чтобы покрыть комиссию за газ для нескольких транзакций с токенами, а затем получают эфир, если пользователь слишком долго неактивен. Они используют один адрес для всех токенов, так что это один адрес для каждого пользователя.

Вместо того, чтобы создавать EAO для пользователей, создайте контрактные кошельки с функцией передачи, которую вы можете вызвать с адреса, на который хотите отправить токен. Тем не менее, система, которую вы предлагаете, немного странная, так как пользователи должны вам доверять. В таком случае вы можете просто иметь контракт с балансами для каждого пользователя, как контракт с токеном.

Надеюсь это поможет

Привет Джейми! Звучит здорово, не могли бы вы объяснить это немного подробнее? Как это должно работать? Что я должен гуглить для каждого шага.
какой из них, контракт кошелька или контракт с балансами для каждого пользователя? Обратите внимание, что если им нужно доверять вам, вы можете просто попросить их отправить вам токены
На самом деле оба. Я предоставляю небольшой местный коммутатор. Я генерирую им адрес и делюсь им на интерфейсе. Люди присылают мне токены для обмена на доллары. Поэтому, в конце концов, я должен собрать его на основной холодный кошелек, но я не хочу отправлять эфир на каждый из этих кошельков, так как суммы иногда очень маленькие, и это неэффективно. Мне интересно, как крупные биржи делают это, потому что стоимость действительно велика в больших масштабах. Из того, что я понял из вашего поста, я могу написать какой-нибудь контракт, который позволит мне, например, перевести токен Tron напрямую на холодный кошелек, и я заплачу комиссию?
Мне просто нужно больше деталей и модных словечек, чтобы я мог найти их в Google, что я могу использовать для покрытия цены на газ с помощью моего кошелька, а не отправлять его в каждый из кошельков, которые я создаю.
Я просто хочу быть уверен, что понимаю, что тебе нужно. Почему бы не попросить их отправить токены напрямую на ваш кошелек?
Я хочу предоставить ту же систему, что и на биржах - каждый получает только что созданную учетную запись eth на моем кошельке. Если я хочу поддерживать несколько известных токенов, будет ли работать контракт кошелька или контракт с остатками?
@susanoo запрашивает настройку хранителя. Ему нужны разные адреса для каждого пользователя, чтобы он мог связать депозиты с соответствующими пользователями.
@ Джейме, ты не мог бы мне помочь с этим?
Извините, я так и не понял, зачем создавать eth адреса, если у людей уже есть свои токены в eth адресах. Вместо этого вы можете просто попросить их отправить токены на основной адрес. Учитывая, что ERC запускает события при передаче, вы можете узнать, кто отправил вам токены в серверной части. Дайте мне знать, если я что-то упустил. Предложенное мной решение по-прежнему будет стоить вам газа за каждую транзакцию, но ничего не будет стоить, если они отправят токены на ваш адрес.

Можно обойтись "флэшботами"

Добро пожаловать на биржу стека Ethereum! Ответы здесь должны быть немного более подробными :) Это было автоматически помечено, и единственный выбор, который у меня есть, - это ответ низкого качества или нет, и он не соответствует планке последнего... РЕДАКТИРОВАТЬ: по-видимому Я могу оставить этот комментарий, и система не удалит ваш ответ.