* feat: add system config consensus to deprecate poa
* fix: check extra field lens
* Finish implementation with one signer only
* Implement unit tests
* Only check signature if block not requested
* Remove Extra from rlp encoding (and hashing)
* Implement UpgradableEngine as middleware for Clique/SystemContract
* Use isEuclid, add json tag to Requested, make go idiomatic
* Changes post integration test
* Remove comment
* Address comments
* Merge
* New field BlockSignature (not used in hashing/JSON)
* Enforce .Extra to be an empty slice
* replace header.Requested for header.IsNewBlock
* mark new block as IsNewBlock
* Make new RLP optional fields always default for legacy/reth compatibility
* Placing new fields as last non-zero rlp:optional values used by Scroll
* Penalize nodes that send non-zero Euclid V2 header field values
* Bring back .Requested to downloader instead of .IsNewBlock
* Replace IsNewBlock for Requested
* Address comments
* merge
* prevent timing issues in tests
* fix ci
* chore: auto version bump [bot]
* Update consensus/system_contract/consensus.go
Co-authored-by: Morty <70688412+yiweichi@users.noreply.github.com>
* chore: auto version bump [bot]
* Update consensus/system_contract/consensus.go
Co-authored-by: Jonas Theis <4181434+jonastheis@users.noreply.github.com>
* Remove whitespaces and merge version number
* chore: auto version bump [bot]
* validate that the read address from L1 is not empty and improved error handling when fetching address
* Fix indentation issue
* Fix test
* goimports fix
* goimports
---------
Co-authored-by: Alejandro Ranchal-Pedrosa <a.ranchalpedrosa@gmail.com>
Co-authored-by: jonastheis <4181434+jonastheis@users.noreply.github.com>
Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
Co-authored-by: ranchalp <ranchalp@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* port changes from #1013
* port changes from #1068
* go.mod tidy
* fix compile error
* fix goimports
* fix log
* address review comments
* upgrade golang.org/x/net to 0.23.0
* port changes from #1018
* fix tests and linter errors
* address review comments
* refactor rollup sync service / verifier to use CalldataBlobSource to retrieve data from L1
* add configuration and initialize blob clients
* fix unit tests
* remove unused code
* address review comments
* address more review comments
* implement first version of new da-codec and to handle multiple batches submitted in one transaction
* add CommitBatchDAV7 and handle multiple commit events submitted in a single transactions
* fix bug due to previous batch being empty when processing the first batch within a set of batches
* Allow using MPT
* update to latest da-codec
* add field to CommittedBatchMeta to store LastL1MessageQueueHash for CodecV7 batches
* adjust rollup verifier to support CodecV7 batches
* address review comments
* fix issues after merge
* go mod tidy
* fix unit tests
* update da-codec
* add test TestValidateBatchCodecV7
* go mod tidy
* do not log error on shutdown
* add sanity check for version to deserialization of committedBatchMetaV7
* port changes from #1073
* chore: auto version bump [bot]
* address review comments
* add more logs
* disable ENRUpdater if DA sync mode is enabled
* exit pipeline if context is cancelled
* correctly handle override by setting the head of the chain to the parent's height so that created blocks will always become part of canonical chain
* fix error with genesis event being nil
* rebase #1087 to new base branch
* chore: auto version bump [bot]
---------
Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
Co-authored-by: jonastheis <jonastheis@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* 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>
* port changes from #1013
* port changes from #1068
* go.mod tidy
* fix compile error
* fix goimports
* fix log
* address review comments
* upgrade golang.org/x/net to 0.23.0
* port changes from #1018
* fix tests and linter errors
* address review comments
* refactor rollup sync service / verifier to use CalldataBlobSource to retrieve data from L1
* add configuration and initialize blob clients
* fix unit tests
* remove unused code
* address review comments
* address more review comments
* implement first version of new da-codec and to handle multiple batches submitted in one transaction
* add CommitBatchDAV7 and handle multiple commit events submitted in a single transactions
* fix bug due to previous batch being empty when processing the first batch within a set of batches
* Allow using MPT
* implement reading of QueueTransaction from L1MessageQueueV1 and V2
* implement access to V1 and V2 messages and replace usage so that V1 is used before EuclidV2 fork and V2 afterward
* add tests
* update to latest da-codec
* add field to CommittedBatchMeta to store LastL1MessageQueueHash for CodecV7 batches
* adjust rollup verifier to support CodecV7 batches
* address review comments
* consume all L1 messages before EuclidV2 fork
* address review comments
* address review comments
* fix issues after merge
* go mod tidy
* fix unit tests
* update da-codec
* add test TestValidateBatchCodecV7
* go mod tidy
* do not log error on shutdown
* add flag to explicitly disable L1MessageQueueV2
* add TestEuclidV2HardForkMessageQueue to scroll worker
* add sanity check for version to deserialization of committedBatchMetaV7
* add mechanism for nodes to retrieve V2 messages even if they upgrade after L1MessageQueueV2 is deployed
* chore: auto version bump [bot]
* address review comments
* Update core/rawdb/accessors_l1_message.go
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
* address review comments
---------
Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
we assume that same height wont trigger multiple reorgs to be able
to put an upper bound on the reorg depth. We rely on the fact that
AsyncChecker executes transactions one-by-one and tells worker the
safe set of transactions to include in the replacement block that
wont trigger another error on the same block. If worker changes the
timestamp and that causes significant changes to the execution flow
of included transactions; we might have a height where multiple
reorgs happen.
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Xi Lin <zimpha@gmail.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
* fix: account for the artificially added delay in commit stage
* linter
* chore: auto version bump [bot]
---------
Co-authored-by: omerfirmak <omerfirmak@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>
* fix: prioritized tx not being cleared after skipping it
* fix nonce in comment
* chore: auto version bump [bot]
* chore: auto version bump [bot]
---------
Co-authored-by: omerfirmak <omerfirmak@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: Thegaram <Thegaram@users.noreply.github.com>
* feat: implement relaxed period in clique
and enable it on Sepolia
* simplify if check
* chore: auto version bump [bot]
* Update clique.go
---------
Co-authored-by: omerfirmak <omerfirmak@users.noreply.github.com>
* all: implement EIP-1153 transient storage (#26003)
Implements TSTORE and TLOAD as specified by the following EIP:
https://eips.ethereum.org/EIPS/eip-1153https://ethereum-magicians.org/t/eip-1153-transient-storage-opcodes/553
Co-authored-by: Sara Reynolds <snreynolds2506@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
* core/vm: move TSTORE,TLOAD to correct opcode nums (#27613)
* core/vm: move TSTORE,TLOAD to correct opcode nums
* core/vm: cleanup
* fix tests, rename
* goimports
* enable 1153 at Curie
* bump version
* comment fix
* improve test
* version
* testchainconfig
* fix another test that affects newly added
* fix previous test to clenaup after
---------
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
Co-authored-by: Sara Reynolds <snreynolds2506@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>