Как отделить надбавку за популярность контракта TRON от базовой Energy
Два вызова с одинаковым путём исполнения могут стоить разное количество Energy в разные периоды обслуживания сети. Динамическая модель меняет стоимость популярных контрактов.
Проверьте коэффициент контракта для нужного периода
Вызовите wallet/getcontractinfo для контракта и изучите contract_state. Сохраните цикл обслуживания и коэффициент с фактической квитанцией. В упрощённом примере вся работа относится к одному контракту, а 2500 означает надбавку 25 процентов к базовому расходу.
base = 40_000
factor_in_ten_thousandths = 2500
penalty = base * factor_in_ten_thousandths // 10_000
assert base + penalty == 50_000
Отличайте единицы Energy от списания TRX
Получается 50 000 Energy, из них 10 000 — надбавка. Для цепочки вызовов изучите реальное исполнение: коэффициенты у вложенных контрактов могут различаться. Фактическое сжигание TRX зависит от распределения расходов, доступных ресурсов и цены Energy. Изменение надбавки не означает изменения цены в sun за единицу Energy.