@@ -250,6 +250,7 @@ type TxPool struct {
250
250
eip2718 bool // Fork indicator whether we are using EIP-2718 type transactions.
251
251
eip1559 bool // Fork indicator whether we are using EIP-1559 type transactions.
252
252
odysseus bool // Fork indicator whether we are in the Odysseus stage.
253
+ antenna bool // Fork indicator whether we are in Antenna stage.
253
254
254
255
currentState * state.StateDB // Current state in the blockchain head
255
256
pendingNonces * txNoncer // Pending state tracking virtual nonces
@@ -653,7 +654,17 @@ func (pool *TxPool) validateTx(tx *types.Transaction, local bool) error {
653
654
654
655
// Contract creation transaction
655
656
if tx .To () == nil && pool .chainconfig .Consortium != nil {
656
- whitelisted := state .IsWhitelistedDeployer (pool .currentState , from )
657
+ var whitelisted bool
658
+ if pool .antenna {
659
+ whitelisted = state .IsWhitelistedDeployerV2 (
660
+ pool .currentState ,
661
+ from ,
662
+ pool .chain .CurrentBlock ().Time (),
663
+ pool .chainconfig .WhiteListDeployerContractV2Address ,
664
+ )
665
+ } else {
666
+ whitelisted = state .IsWhitelistedDeployer (pool .currentState , from )
667
+ }
657
668
if ! whitelisted {
658
669
return ErrUnauthorizedDeployer
659
670
}
@@ -1333,6 +1344,7 @@ func (pool *TxPool) reset(oldHead, newHead *types.Header) {
1333
1344
pool .eip2718 = pool .chainconfig .IsBerlin (next )
1334
1345
pool .eip1559 = pool .chainconfig .IsLondon (next )
1335
1346
pool .odysseus = pool .chainconfig .IsOdysseus (next )
1347
+ pool .antenna = pool .chainconfig .IsAntenna (next )
1336
1348
}
1337
1349
1338
1350
// promoteExecutables moves transactions that have become processable from the
0 commit comments