diff --git a/core/types/l2trace.go b/core/types/l2trace.go index cb52d75b8..cf8fbf703 100644 --- a/core/types/l2trace.go +++ b/core/types/l2trace.go @@ -138,6 +138,8 @@ type TransactionData struct { GasPrice *hexutil.Big `json:"gasPrice"` GasTipCap *hexutil.Big `json:"gasTipCap"` GasFeeCap *hexutil.Big `json:"gasFeeCap"` + FeeTokenID *uint16 `json:"feeTokenID,omitempty"` + FeeLimit *hexutil.Big `json:"feeLimit,omitempty"` From common.Address `json:"from"` To *common.Address `json:"to"` ChainId *hexutil.Big `json:"chainId"` @@ -192,6 +194,18 @@ func NewTransactionData(tx *Transaction, blockNumber uint64, blockTime uint64, c R: (*hexutil.Big)(r), S: (*hexutil.Big)(s), } + + // Set FeeTokenID and FeeLimit for AltFeeTx + if tx.Type() == AltFeeTxType { + feeTokenID := tx.FeeTokenID() + if feeTokenID != 0 { + result.FeeTokenID = &feeTokenID + } + if feeLimit := tx.FeeLimit(); feeLimit != nil && feeLimit.Sign() > 0 { + result.FeeLimit = (*hexutil.Big)(feeLimit) + } + } + return result } diff --git a/rollup/tracing/tracing.go b/rollup/tracing/tracing.go index 3f3e4b2ff..f0667cfb6 100644 --- a/rollup/tracing/tracing.go +++ b/rollup/tracing/tracing.go @@ -536,7 +536,13 @@ func (env *TraceEnv) fillBlockTrace(block *types.Block) (*types.BlockTrace, erro rcfg.IsCurieSlot, }, rcfg.SequencerAddress: {rcfg.SequencerSetVerifyHashSlot}, - // rcfg.L2ERC20RegistryAddress: {}, // TODO + rcfg.L2TokenRegistryAddress: { + rcfg.AllowListEnabledSlot, + rcfg.TokenRegistrySlot, + rcfg.TokenRegistrationSlot, + rcfg.PriceRatioSlot, + rcfg.AllowListSlot, + }, } for addr, storages := range intrinsicStorageProofs {