@@ -219,6 +219,18 @@ func New(root common.Hash, db Database, snaps *snapshot.Tree) (*StateDB, error)
219219 return sdb , nil
220220}
221221
222+ func (s * StateDB ) FilterTx () {
223+ s .arbExtraData .arbTxFilter = true
224+ }
225+
226+ func (s * StateDB ) ClearTxFilter () {
227+ s .arbExtraData .arbTxFilter = false
228+ }
229+
230+ func (s * StateDB ) IsTxFiltered () bool {
231+ return s .arbExtraData .arbTxFilter
232+ }
233+
222234// SetLogger sets the logger for account update hooks.
223235func (s * StateDB ) SetLogger (l * tracing.Hooks ) {
224236 s .logger = l
@@ -736,6 +748,7 @@ func (s *StateDB) Copy() *StateDB {
736748 recentWasms : s .arbExtraData .recentWasms .Copy (),
737749 openWasmPages : s .arbExtraData .openWasmPages ,
738750 everWasmPages : s .arbExtraData .everWasmPages ,
751+ arbTxFilter : s .arbExtraData .arbTxFilter ,
739752 },
740753
741754 db : s .db ,
@@ -1220,6 +1233,9 @@ func (s *StateDB) GetTrie() Trie {
12201233// The associated block number of the state transition is also provided
12211234// for more chain context.
12221235func (s * StateDB ) Commit (block uint64 , deleteEmptyObjects bool ) (common.Hash , error ) {
1236+ if s .arbExtraData .arbTxFilter {
1237+ return common.Hash {}, ErrArbTxFilter
1238+ }
12231239 // Short circuit in case any database failure occurred earlier.
12241240 if s .dbErr != nil {
12251241 return common.Hash {}, fmt .Errorf ("commit aborted due to earlier error: %v" , s .dbErr )
0 commit comments