Как оценить L1 data fee OP Fjord по размеру неподписанной транзакции
Кошелёк может определить длину сериализованной транзакции до получения подписи. GasPriceOracle после Fjord использует её для практической верхней оценки платы за данные L1.
Посчитайте всю неподписанную транзакцию
В совместимой OP-сети передайте oracle длину в байтах сериализованной неподписанной транзакции. В примере это 180 байт. Поправку на подпись контракт добавляет сам. Для команды нужен Foundry cast и RPC нужной L2.
cast call 0x420000000000000000000000000000000000000F \
"getL1FeeUpperBound(uint256)(uint256)" 180 --rpc-url "$L2_RPC"
У вызова с calldata длиной 100 байт вся неподписанная транзакция может быть длиннее. Включите поля транзакции и её типизированную оболочку. Результат трактуйте как сумму комиссии в минимальных единицах.
Отделите оценку от полной стоимости
Oracle использует параметры выбранного состояния L2 и модель сжатия. К моменту включения цены могут измениться. Для полного бюджета добавьте исполнение и другие включённые в этой сети виды комиссий. specs.optimism.io OP Stack specification