Как посчитать фактическое участие создателя контракта TRON в оплате Energy
В контракте может быть указана доля пользователя 30 процентов, но фактический расход окажется выше. Вклад создателя ограничен его ресурсами и лимитом контракта.
Примените три ограничения к доле создателя
Для вызова на 100 000 Energy при consume_user_resource_percent, равном 30, плановая доля создателя составляет 70 000. Пусть origin_energy_limit равен 45 000, а доступный ресурс создателя — 60 000. Используйте минимум трёх величин.
required = 100_000
deployer_target = required * 70 // 100
deployer_used = min(deployer_target, 45_000, 60_000)
caller_used = required - deployer_used
assert (deployer_used, caller_used) == (45_000, 55_000)
Разложите долю пользователя на ресурс и сжигаемые TRX
Пользователю остаётся оплатить 55 000 Energy. Собственные доступные единицы покроют часть или весь расход, за недостающее возможно сжигание TRX. При расхождении изучите квитанцию исполнения и fee_limit отправителя. Bandwidth учитывается дополнительно и в эту формулу не входит.