* 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
* chore: auto version bump [bot]
* chore: auto version bump [bot]
* adjust to renaming in CodecV7
* implement carrying forward of L1 MessageQueue index
* fix issue after upgrading from old storage to new format where batchIndex was 0 and all batches would be skipped
* add new RevertBatch event
* add commitBatches to be able to read calldata of CodecV7/EuclidV2 committed batches
* implement finding of L1 message queue height for initial batch in recovery mode
* add sanity checks for computed batches from events and batch hashes given via calldata from commit transaction
* update ScrollChain ABI
* chore: auto version bump [bot]
* remove initial batch form DAQueue
* go mod tidy
* fix underflow bug when l1DeploymentBlock==0
* fix bug with wrong parentBatchHash of first batch of batches submitted in a single tx
* update to latest da-codec
* address review comments
* address review comments
* fix bug when l1MessageV2StartIndex==0 serialized to [] (empty slice) which would always be decoded to non-existing instead of 0
* chore: auto version bump [bot]
* cache go dependencies in Dockerfile.mockccc
* chore: auto version bump [bot]
* add INFO log when reverting rollup events in L1 follower mode
* change LastProcessedMessageQueueIndex of finalize event to totalL1MessagesPoppedOverall
* cleanup
* 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>
* 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>
* 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
* chore: auto version bump [bot]
* chore: auto version bump [bot]
* goimports
---------
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>
* 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
* chore: auto version bump [bot]
* address review comments
* 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: 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
* Allow using MPT
* fix issues after merge
* bump version
---------
Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* enable p256Verify in euclid v2
* try enabling all test cases under ./core
* add secp256r1 precompile test in CI
* remove unused export
* Update params/config.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* add EuclidV2Time in ChainConfig
* fix a typo
---------
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* fix(GPO): increase min suggested tip to 100 wei
* chore: auto version bump [bot]
* make DefaultGasTip configurable
* revert a comment change
* fix unit tests
* rename GasTip to GasTipCap, more consistent with geth naming conventions
* yet another comment tweak
* tweak
* address comments
* another
* make defaultGasTipCap.Int64 >0
---------
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
* fix-async-ccc-print-whole-block-hash-and-tx-hash
* chore: auto version bump [bot]
* chore: auto version bump [bot]
---------
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
* internal/ethapi: eth_call block parameter is optional (#28165)
So apparently in the spec the base block parameter of eth_call is optional.
I agree that "latest" is a sane default for this that most people would use.
* chore: auto version bump [bot]
---------
Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
* feat: update L2 base fee formula
* update 1559 unit test
* use current block's base fee in txpool
* fix unit test
* Revert "use current block's base fee in txpool"
This reverts commit 8a7d7ff87d6a9fb5124d72767c9ca24302673752.
* feat: allow changing L1 synced height via RPC/CLI
* chore: auto version bump [bot]
* fix typos
* add height validity check
* change implementation
* moved hotfix apis from ScrollAPI to PrivateAdminAPI
* change namespace from scroll to admin
* fix bugs
* add locks
* add a lock to protect latestProcessedBlock and db state
* revert some changes
* remove lock and use atomic in latestProcessedBlock
* fix CI
* tweak
* use cas in updating latestProcessedBlock
* renaming
* also update sync height in error paths
* fix a bug
* use mutex lock
---------
Co-authored-by: colinlyguo <colinlyguo@users.noreply.github.com>
* 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>
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.
* ++
* upgrade go lint version
* lint
* remove a useless "`"
* Update l2geth_ci.yml
---------
Co-authored-by: Ömer Faruk Irmak <omerfirmak@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>