Как отделить надбавку за популярность контракта 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.

Источники