Как я могу использовать резервную функцию для принятия платежа?

Я не могу найти ответ, который я ищу.

Предел газа для резервной функции составляет 2300. Независимо от того, вызываю ли я другой метод или устанавливаю переменную, я НАМНОГО превышаю предел 2300, что делает его бесполезным.

Я видел, как люди предлагают разные способы совершения звонка и отправки газа вместе со звонком и т. д., НО я хочу, чтобы кто-то просто использовал кошелек.

Человек А использует кошелек для отправки монеты (предположительно эфира). Функция Fallback принимает эфир и возвращает несколько токенов.

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

Это возможно или я зря качаю колеса?

Спасибо!

Есть ли какой-то конкретный инструмент/приложение, которое вы тестируете, и которое не дает достаточного количества газа? (Где/как вы видите этот провал?)
Я использую remix.ethereum.org. При компиляции это одно из предупреждений. Я не эксперт по Solidity и тестирую какой-то базовый код, но это немного сводит с ума.
Я бы проигнорировал предупреждение и провел бы самостоятельное тестирование популярных инструментов (кошельков). Я предполагаю, что большинство посылают нужное количество газа.
Я публикую контракты, но они не работают. Ничто в отправленной сумме не говорит о том, что она идет на газ, так что это просто не работает. :/
«Они не работают» — не очень хорошее описание проблемы. :-) Если вы видите сообщение об ошибке или неудачные транзакции, пожалуйста, дайте ссылку на транзакции (если в общедоступной сети), поделитесь исходным кодом, опишите, как вы воспроизводите ошибку и т. д.

Ответы (1)

Я думаю, вы крутите колеса.

Резервная функция и простая отправка ограничены 2300, поэтому по замыслу она не может делать очень много.

Если вы хотите, скажем, установить переменную состояния, вы должны создать оплачиваемую функцию, которая вызывается явно.

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

Спасибо. Я думаю, что это ответ, который мне нужен, даже если это не тот ответ, который я хочу.