Комиссия для пользователя будет браться в incent, при этом incent будет автоматически обмениваться на DEX на волны, для оплаты комиссии. Вроде так я читал где-то.
Такой механизм возможен, но как вы сами видите в конечном итоге тратятся чьи-то волны. Однако я не вижу способа разрешить подобные транзакции для пользовательских токенов, которые никто в здравом уме не будет менять на волны чтобы оплатить транзакцию. Иначе говоря, для предотвращения спам-атак и последующего раздутия блока бесполезными операциями, каждая транзакция с пересылкой пользовательских токенов должна тратить волны с баланса. Поправьте, если я не прав.
Вот пример, как это работает у Ethereum:
Контракты взаимодействуют друг с другом посредством деятельности, которая по-другому называется «вызов» или «отправка сообщений». «Сообщение» — это объект, содержащий некоторое количество ether (особая внутренняя валюта, используемая в Ethereum с основной целью оплаты транзакций)
Gas и стоимости транзакций
Так как же вы платите за все это? За кулисами транзакция определяет gas-предел, и gas-цену, которые могут быть определены напрямую в объекте транзакции. Gas-предел присутствует, чтобы защитить вас от кода, содержащего ошибки, работающего до тех пор, пока не закончатся ваши финансы. Продукт gasPrice и gas представляет максимальное количество Wei, которое вы хотите заплатить за выполнение транзакции. То, что вы определяете как gasPrice используется майнерами для упорядочения транзакций для включения в блокчейн. Это цена в Wei одной gas-единицы, в которых оцениваются VM –операции. Расходование gas, вызванное работой вашего контракта, будет покупаться ether , имеющиеся на вашем аккаунте, по цене, которую вы установили в транзакции при помощи gasPrice. Если у вас действительно достаточно ether , чтобы покрыть все требования gas для завершения работы кода , обработка прерывается, и промежуточное состояние изменяет отмену транзакции на предварительный снепшот. Gas, используемый в месте остановки выполнения, все равно используется, поэтому ether-баланс вашего аккаунта сократится. Эти параметры можно настроить на поля объектов транзакций gas и gasPrice. Поле value используется так же, как и транзакции перевода ether между номральными аккаунтами. Другими словами, перевод средств доступен между двумя аккаунтами, либо нормальным (т.е., контролируемым извне), либо контрактом. Если ваш контракт функционирует без наличия средств, вы будете наблюдать ошибку недостатка средств.