You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As the first transaction in every block, Monomer gets L1 block attributes from Optimism's L1 Attributes Deposited Tx. This is a system-initiated transaction that is considered to be part of state-transition processing, and therefore, these transactions are not charged any ETH for gas.
We need to design a way to exempt them from consuming block gas and paying fees on the L2.
On the Comsos SDK side, the AnteHandler is in charge of performing validity checks on transactions -- during both CheckTx and DeliverTx -- and is also responsible for deducting fees from the sender account.
In order to exempt the L1AttributesDepositedTx from being charged fees, we should either
Design a custom decorator for detecting these transactions and subverting the rest of the ante chain, or
Construct two different ante chains that represent unique paths; one for native L2 txs and user-initiated L1 deposits (essentially, this would be the default x/auth/ante chain), and another for system-initiated L1 deposits.
The meaningful difference here is that (1) might carry security affects (wrt to skipping all other validity checks -- still working on formalizing these concerns; ref: #106), whereas (2) supports the possibility of creating custom decorators specifically tuned for system-initiated txs. Since the system-initiated path would essentially be operating at an elevated privilege level, it could reject any user-initiated transactions (similar to how Evmos rejects specific messages in their RejectMessagesDecorator).
Both of these solutions can effectively exempt these transactions from paying a fee in the AnteHandler chain, however, there is still the concern that block gas can be consumed outside of the AnteHandler chain as well. One place I've spotted this occurring is in baseapp/baseapp.go.(runTx). I'm not yet sure how to reconcile this, but I am exploring our options.
The text was updated successfully, but these errors were encountered:
As the first transaction in every block, Monomer gets L1 block attributes from Optimism's L1 Attributes Deposited Tx. This is a system-initiated transaction that is considered to be part of state-transition processing, and therefore, these transactions are not charged any
ETH
for gas.We need to design a way to exempt them from consuming block gas and paying fees on the L2.
On the Comsos SDK side, the
AnteHandler
is in charge of performing validity checks on transactions -- during bothCheckTx
andDeliverTx
-- and is also responsible for deducting fees from the sender account.In order to exempt the
L1AttributesDepositedTx
from being charged fees, we should eitherx/auth/ante
chain), and another for system-initiated L1 deposits.The meaningful difference here is that (1) might carry security affects (wrt to skipping all other validity checks -- still working on formalizing these concerns; ref: #106), whereas (2) supports the possibility of creating custom decorators specifically tuned for system-initiated txs. Since the system-initiated path would essentially be operating at an elevated privilege level, it could reject any user-initiated transactions (similar to how Evmos rejects specific messages in their
RejectMessagesDecorator
).Both of these solutions can effectively exempt these transactions from paying a fee in the AnteHandler chain, however, there is still the concern that block gas can be consumed outside of the AnteHandler chain as well. One place I've spotted this occurring is in
baseapp/baseapp.go.(runTx)
. I'm not yet sure how to reconcile this, but I am exploring our options.The text was updated successfully, but these errors were encountered: