* feat: add EIP-7702
* fix goimport
* add unit tests
* add api test
* sync txpool update
* update generated code
* make code readable
* fix goimport
* fix TestAsyncChecker unit test
* add AuthorizationList in fuzz tests for completeness sake
* add EuclidV2 test, EIP-7702 transaction in TestT8n
* clean up logs
* bump version
* fix TestAsyncChecker
* Revert "fix TestAsyncChecker"
This reverts commit 314478303d4a504a3948bd6595568916ba7d82f0.
* accept eip-7702 txns only after enabling eip-7702
* revert IntrinsicGas param name from setCodeAuthorizations to authList
* fix a bug
* align upstream implementation in Encoding Receipts
* fix one test case
* fix tracer
* return precode copy
* support setcode tx in EstimateGas and add unit tests
* add TestValidateAuthorizations
* poseidon hash fix
* migrate a fix before the fix pr is merged
* support setcode type transactions in TransactionData
* chore: auto version bump [bot]
* add a nonce-gapped-auth-does-not-block-pending-tx unit test
* make the auth invalid
* Apply suggestions from code review
* change usedAndLeftSlots and knownConflicts to util functions
* add comments about different return of applyAuthorization
* remove gencodec:required in transaction signatures
* fix goimport
* update StructLogger and AccessListTracer
* fix a bug
* fix flaky test
---------
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* feat(tx pool): fast reject transactions that cannot fit into a block
* add a TestValidateTxBlockSize unit test
* chore: auto version bump [bot]
---------
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
* feat(txpool): add more logs to `runReorg`
* chore: auto version bump [bot]
* improve
* chore: auto version bump [bot]
---------
Co-authored-by: HAOYUatHZ <HAOYUatHZ@users.noreply.github.com>
* feat(tx-pool): fast reject known skipped txs (#1001)
* feat(tx-pool): fast reject known skipped txs
* fix make lint
* add miner flag to tx pool
* bump version
* feat(txpool): implement StatsWithMinBaseFee
* feat(gpo): use StatsWithMinBaseFee to filter out tx below the current blocks base fee
* feat(les/txpool): implement StatsWithMinBaseFee
* use flatten() (lowercase) to avoid copying of tx list
* chore: auto version bump [bot]
---------
Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
* update fee calculation
* add missing GPO slots to trace
* add placeholder for contract update logic
* nit
* update fee calculation
* update formula
* update GPO slots
* update L1GPO bytecode
* apply Curie in new worker
* move bytecode to config
* create an empty block for curie hard fork
* initialize L1GasPriceOracle storage slots
* add comments
* add test
* add IsCurie to traces and tests
* group GPO storage slots into a struct
* update unit test
* chore: auto version bump [bot]
* trigger ci
* update bytecode
* remove leading 0x
* update comments
* include rollup fee tests in CI
---------
Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
* Check L1DataFee in txpool promoteExecutables
* bump version
* implement L1 data fee in demoteUnexecutables as well
* Update core/tx_list.go
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
* Update core/tx_pool.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* feat: consider l1 data fee in txpool costcap (#681)
* feat(txpool): consider l1 data fee in costcap
* fix CI
* simplify logic
* remove one db read op
* bump version
---------
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: georgehao <haohongfan@gmail.com>
* feat: re-enable EIP-1559 in Banach hard fork
* enable BASEFEE opcode
* do not double gas limit on Banach fork block
* do not burn base fee
* update base fee calculation logic
* fix gas price oracle
* fix ethapi backend
* typo
* reorder worker code
* update genesis base fee
* add MaximumL2BaseFee
* add base fee metrics
* handle nil base fee
* revert state-transition change
* bump version
* remove TODO
* update test
* fix typo
* fix typo
* update traces
* fix test
* update london to banach
* handle error
* bump version
* bump version
* Revert "fix(tx-pool): consider L1 data fee in validateTx"
This reverts commit 0a5c04b85d0f8b509542306894c03bd3feff65bd.
* simplify veriftfee
* bump version
* address comments
* keep the original behavior
* fix again
* nit
* tweak comments
* squash
* improve comments
* Remove tx (#493)
* force drop
* minor
* store skipped L2 tx for `circuitcapacitychecker.ErrUnknown`
* Update miner/worker.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* add lock
* use mu
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* core/vm: implement EIP-3860: Limit and meter initcode (#23847)
Implementation of https://eips.ethereum.org/EIPS/eip-3860, limit and meter initcode. This PR enables EIP-3860 as part of the Shanghai fork.
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
* add ishanghai
* fix test
* fix
---------
Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
The price limit is supposed to exclude transactions with too low fee
amount. Before EIP-1559, it was sufficient to check the limit against
the gas price of the transaction. After 1559, it is more complicated
because the concept of 'transaction gas price' does not really exist.
When mining, the price limit is used to exclude transactions below a
certain effective fee amount. This change makes it apply the same check
earlier, in tx validation. Transactions below the specified fee amount
cannot enter the pool.
Fixes#23837
This adds support for EIP-2718 typed transactions as well as EIP-2930
access list transactions (tx type 1). These EIPs are scheduled for the
Berlin fork.
There very few changes to existing APIs in core/types, and several new APIs
to deal with access list transactions. In particular, there are two new
constructor functions for transactions: types.NewTx and types.SignNewTx.
Since the canonical encoding of typed transactions is not RLP-compatible,
Transaction now has new methods for encoding and decoding: MarshalBinary
and UnmarshalBinary.
The existing EIP-155 signer does not support the new transaction types.
All code dealing with transaction signatures should be updated to use the
newer EIP-2930 signer. To make this easier for future updates, we have
added new constructor functions for types.Signer: types.LatestSigner and
types.LatestSignerForChainID.
This change also adds support for the YoloV3 testnet.
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
fixes an issue where local transactions that were included in the chain before a SetHead were rejected if resubmitted, since the txpool had not reset the state to the current (older) state.