Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FEATURE]Morphism geth implementation (#3)
* L2 consensus api auth api * scroll new version adjustment * Introduce L1Message type transaction test fix * add BLS Data add optional rlp tag * add docker-compose and modify entrypoint for dockerfile * Improve oversized block handling (#315) * improve oversized block handling * bump version * Archimedes hard fork: Disable sha2, ripemd, blake2f precompiles (#280) * add placeholder block * add test, more changes * revert aleth changes * typo * typo * precompile switch * change precomiles * rename placeholder to archimedes * fix comment * ScrollAlphaChainConfig * add nil for archimedes block for now * fix test typo * add isShanghai rule based on block number (#319) * add isShanghai rule based on block number * fix lint * nit --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * core: implement EIP-3651, warm coinbase (#317) * core: implement EIP-3651, warm coinbase (#25819) Implements EIP-3651, "Warm Coinbase", for Shanghai hardfork. Specification: https://eips.ethereum.org/EIPS/eip-3651. * improve test * update to shanghai * trigger ci * fix comments --------- Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> * chore(github): Add PR template to ask for rationale and version update (#327) Create pull_request_template.md * cherry-pick commits from ethereum for the further snapshot sync using beacon sync. including commits: c10a0a6 pr: ethereum/go-ethereum#23576 c893488 pr: ethereum/go-ethereum#24032 58d1988 pr: ethereum/go-ethereum#24047 6ce4670 pr: ethereum/go-ethereum#24276 8f66ea3 pr: ethereum/go-ethereum#23982 ...... * writeBlockWithState with head insertion directly * core/vm: implement EIP-3860: Limit and meter initcode (#23847) (#318) * 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> * Add Archimedes hard fork block number for Scroll Alpha (#331) * add Archimedes hard fork block number for Scroll Alpha * bump version * feat(trace): add storage proof about l1fee (baseFee, overhead, scalar) and withdraw root into trace (#314) * add proof for predeployed storages * reverse inneeded code * update for mainbranch merging * add coinbase storage as trace * comment for clarify * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat: enable eip and update check (#335) * enable eip and update check * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(trace): deletion proof missed path terminated by empty node (#330) * fix deletion proof issue on empty node * refine for better implement and fix unittest * Update version.go --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(API): use `hexutil.Big` for `l1Fee` in `GetTransactionReceipt` (#336) * It's not a bug, but if just translate to hexutil.Big can be better. * Revert editor's auto change. * Update version. * Update version. * refactor(config): moved fee vault addr to rollup config (#341) * moved fee vault addr to rollup config * fixed linter issue * added back FeeVaultAddress --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * feat(abigen): add `--contract` flag to specify a given contract (#334) * add contract flag * Use GlobalXX * Update cmd/abigen/main.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * Update cmd/abigen/main.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix txs p2p && testnet scripts * Merge scroll tag v3.2.4 into morphism (#9) * feat(trace): add storage proof about l1fee (baseFee, overhead, scalar) and withdraw root into trace (#314) * add proof for predeployed storages * reverse inneeded code * update for mainbranch merging * add coinbase storage as trace * comment for clarify * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat: enable eip and update check (#335) * enable eip and update check * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(trace): deletion proof missed path terminated by empty node (#330) * fix deletion proof issue on empty node * refine for better implement and fix unittest * Update version.go --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(API): use `hexutil.Big` for `l1Fee` in `GetTransactionReceipt` (#336) * It's not a bug, but if just translate to hexutil.Big can be better. * Revert editor's auto change. * Update version. * Update version. --------- Co-authored-by: Ho <noelwei@gmail.com> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: maskpp <maskpp266@gmail.com> * build(github): update github action yaml (#347) * build(github): update github action yaml * fix * optimize block validation * ci(github): update pull request template (#349) * chore(github): update pull request template * Update pull_request_template.md * Return error for disabled precompile calls (#337) return error for disabled precompile calls * feat: delay Archimedes on Alpha by a week (#342) * delay Archimedes on Alpha by a week * bump version --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Fix transaction DA cost under-estimation (#332) * fix tx DA cost under-estimation * bump version --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat(block_validator): check payload size during block validation (#322) * added block size check in validate body * added payload method to block * Update core/types/block.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * fixed test * fix * bump version * fix test --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * test(zkTrie): add deletion test in account update unit test (#344) feat(zkTrie): extend account update unit tests with account deletion * Merge commits under tag of scroll-v3.3.0 from scroll-tech (#10) * feat(trace): add storage proof about l1fee (baseFee, overhead, scalar) and withdraw root into trace (#314) * add proof for predeployed storages * reverse inneeded code * update for mainbranch merging * add coinbase storage as trace * comment for clarify * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat: enable eip and update check (#335) * enable eip and update check * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(trace): deletion proof missed path terminated by empty node (#330) * fix deletion proof issue on empty node * refine for better implement and fix unittest * Update version.go --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(API): use `hexutil.Big` for `l1Fee` in `GetTransactionReceipt` (#336) * It's not a bug, but if just translate to hexutil.Big can be better. * Revert editor's auto change. * Update version. * Update version. * refactor(config): moved fee vault addr to rollup config (#341) * moved fee vault addr to rollup config * fixed linter issue * added back FeeVaultAddress --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * feat(abigen): add `--contract` flag to specify a given contract (#334) * add contract flag * Use GlobalXX * Update cmd/abigen/main.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * Update cmd/abigen/main.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * build(github): update github action yaml (#347) * build(github): update github action yaml * fix * ci(github): update pull request template (#349) * chore(github): update pull request template * Update pull_request_template.md * Return error for disabled precompile calls (#337) return error for disabled precompile calls --------- Co-authored-by: Ho <noelwei@gmail.com> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: maskpp <maskpp266@gmail.com> Co-authored-by: Richord <rzhang139@gmail.com> * fix: add missing term when merging two deletion proofs (#353) * fix: merge emptyTermPaths * bump version --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * update docker image name * fix(ethclient): support WithdrawalsHash in Scroll Go SDK (#354) * added withdrawalsHash to header * bump version --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * update docker-compose * fix(tracing): fix ZktrieTracer race condition (#356) * fix race condition of zktrie tracer * Update version.go --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat: Sync and relay L1 messages (#350) * add l1 config in genesis config (#249) * add l1 config in genesis config * fix lint * Update params/config.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * extend node configuration (#251) * extend node configuration * use block number instead of hash * accept safe, finalized and numbers for L1Confirmations * fix typos --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * Fix/improve node config parsing (#260) * raise error on failed parsing * default value * add l1-message-type, transaction methods (#252) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * txpool l1 check, pointer change, marhsal test * draft: start implementing l1message gas behavior * draft: start implementing l1message gas behavior * change to gas usage * error comment typo Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * goimports * update nonce, add hash test (fails), marshal test * goimports * target addr cant be nil * change call msg * comment out test * lint --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * Add L1 message database (#255) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * add L1 message store to rawdb * remove comments * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * add range check * fix tests * update comments * nit * support blocks with 0 l1 messages --------- Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> * Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269) * deep copy value field, add tx hash test comment * typo * Rename nonce to queueindex, increment sender nonce on L1 message execution (#271) * change nonce to queueindex, increment nonce on L1 message * fix db acccessors * Update core/types/transaction_marshalling.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * Fix db inspect command (#276) fix db inspect command * Add l1 sync service (#256) * extend node configuration * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * use block number instead of hash * accept safe, finalized and numbers for L1Confirmations * add L1 message store to rawdb * remove comments * fix typos * add L1 message sync service * use l1 contract address and chain ID * use L1DeploymentBlock * add confirmation config * move bridge client to separate file * use uint64 block number * fix bigint comparison * rename constants * add more logs * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * check if config is provided * improve sync service DB batched writes * add range check * fix tests * update comments * nit * fix flush range and improve comments * solve circular dependency * update stress tests * initialize l1 client for geth * start sync service * add more comments * check nil correctly * address comments * fix merge * fix genesis l1config deserialization * add sync progress logs * initial sync * handle leveldb not found error * use errors.Is * address comments * update DefaultPollInterval --------- Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> * Add L1 message validation (#272) * add L1 message validation * add comments and better error handling * handle leveldb not found error * update incorrect condition for genesis block * typo * change inclusion index logic * disable L1 message check for legacy tests * set NumL1MessagesPerBlock to 0 in tests * update default genesis config * Add L1 msg validation tests (#303) add L1 msg validation tests * Update miner include l1 messages (#265) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * add L1 message store to rawdb * add L1 message sync service * remove comments * use l1 contract address and chain ID * extend node configuration * use block number instead of hash * accept safe, finalized and numbers for L1Confirmations * fix typos * use L1DeploymentBlock * add confirmation config * move bridge client to separate file * use uint64 block number * fix bigint comparison * rename constants * add more logs * Fix/improve node config parsing (#260) * raise error on failed parsing * default value * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * check if config is provided * improve sync service DB batched writes * include l1 messages in blocks: part 1 * add l1-message-type, transaction methods (#252) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * txpool l1 check, pointer change, marhsal test * draft: start implementing l1message gas behavior * draft: start implementing l1message gas behavior * change to gas usage * error comment typo Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * goimports * update nonce, add hash test (fails), marshal test * goimports * target addr cant be nil * change call msg * comment out test * lint --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * Add L1 message database (#255) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * add L1 message store to rawdb * remove comments * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * add range check * fix tests * update comments * nit * support blocks with 0 l1 messages --------- Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> * build(docker): auto docker push when pushing git tags (#258) * build(docker): update docker trigger tag prefix (#259) * Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269) * deep copy value field, add tx hash test comment * typo * commitl1messages * lint * Revert "add L1 message sync service" This reverts commit 5305e8a5de14766ed249e1a7d64042c7a72cf5c2. * Revert "move bridge client to separate file" This reverts commit 0b220bee37de93c3250545e23430db2c401a2f90. * update branch * use commitMessages for l1Txs * little fix * fix config * fix test * comment fixes * fix * fix config check --------- Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Add ErrUnknownAncestor tests (#305) add ErrUnknownAncestor tests * worker test include l1 msgs (#306) * worker test include l1 msgs * move L1 message index update next to block insertion --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * exclude l1 messages from transaction count limit in block (#307) * exclude l1 messages from transaction count limit in block * fix comments * trigger ci * nit --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * Expose queueIndex on Transaction (#316) expose queueIndex on Transaction * test that l1msg doesn't count in maxTxPerBlock limit (#312) * test that l1msg doesn't count in maxTxPerBlock limit * fix, comment * retrigger ci * change order inside test --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * reuse trace nonce field for queueIndex * expose scroll APIs on the geth console * add L1 message query APIs * Trigger new block on new l1 messages (#343) * trigger new block on new l1 messages * typo * initialize l1MsgCh * fix worker l1msg tests (#345) --------- Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> * test(worker): ensure that l1 messages are included in the correct order (#346) test that l1msgs added in correct order * rename enqueueIndex --> queueIndex * move QueueIndex into transaction * improve l1 db interface * formatting * bump version * print l1config * add API to query latest included message queue index * clean up tx limit logic * add clarifying comments and todos to ValidateL1Messages * improve db comments and logs * clean up L1MessageTx type handling * format * format * improve L1 message block check * fix missing L1 event handling * fix TestL1MessageValidationFailure * simplify sync height resume logic * make l1Config.l1MessageQueueAddress non-pointer * improve command line flags * remove todo * use abigen tools for log filtering * cache block L1 message count * nit: fix variable name case * improve logs * flush pending writes to DB before shutdown --------- Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: HAOYUatHZ <haoyu@protonmail.com> * enable empty block * add feeVaultAddress into default genesis * update entrypoint and docker-compose conf for devops * update entrypoint and docker-compose conf for devops (#12) * add hash * fix * fix(trace): change l1Fee type from uint64 to *big.Int (#360) * fix: change l1Fee type from uint64 to *big.Int * use hexutil.Big * Integrate with the commits under tag scroll v4.1.0 * feat(trace): add storage proof about l1fee (baseFee, overhead, scalar) and withdraw root into trace (#314) * add proof for predeployed storages * reverse inneeded code * update for mainbranch merging * add coinbase storage as trace * comment for clarify * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat: enable eip and update check (#335) * enable eip and update check * Update version.go --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(trace): deletion proof missed path terminated by empty node (#330) * fix deletion proof issue on empty node * refine for better implement and fix unittest * Update version.go --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix(API): use `hexutil.Big` for `l1Fee` in `GetTransactionReceipt` (#336) * It's not a bug, but if just translate to hexutil.Big can be better. * Revert editor's auto change. * Update version. * Update version. * refactor(config): moved fee vault addr to rollup config (#341) * moved fee vault addr to rollup config * fixed linter issue * added back FeeVaultAddress --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * feat(abigen): add `--contract` flag to specify a given contract (#334) * add contract flag * Use GlobalXX * Update cmd/abigen/main.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * Update cmd/abigen/main.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * build(github): update github action yaml (#347) * build(github): update github action yaml * fix * ci(github): update pull request template (#349) * chore(github): update pull request template * Update pull_request_template.md * Return error for disabled precompile calls (#337) return error for disabled precompile calls * feat: delay Archimedes on Alpha by a week (#342) * delay Archimedes on Alpha by a week * bump version --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Fix transaction DA cost under-estimation (#332) * fix tx DA cost under-estimation * bump version --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat(block_validator): check payload size during block validation (#322) * added block size check in validate body * added payload method to block * Update core/types/block.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * fixed test * fix * bump version * fix test --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * test(zkTrie): add deletion test in account update unit test (#344) feat(zkTrie): extend account update unit tests with account deletion * fix: add missing term when merging two deletion proofs (#353) * fix: merge emptyTermPaths * bump version --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * fix(ethclient): support WithdrawalsHash in Scroll Go SDK (#354) * added withdrawalsHash to header * bump version --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * fix(tracing): fix ZktrieTracer race condition (#356) * fix race condition of zktrie tracer * Update version.go --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * feat: Sync and relay L1 messages (#350) * add l1 config in genesis config (#249) * add l1 config in genesis config * fix lint * Update params/config.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * extend node configuration (#251) * extend node configuration * use block number instead of hash * accept safe, finalized and numbers for L1Confirmations * fix typos --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * Fix/improve node config parsing (#260) * raise error on failed parsing * default value * add l1-message-type, transaction methods (#252) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * txpool l1 check, pointer change, marhsal test * draft: start implementing l1message gas behavior * draft: start implementing l1message gas behavior * change to gas usage * error comment typo Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * goimports * update nonce, add hash test (fails), marshal test * goimports * target addr cant be nil * change call msg * comment out test * lint --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * Add L1 message database (#255) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * add L1 message store to rawdb * remove comments * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * add range check * fix tests * update comments * nit * support blocks with 0 l1 messages --------- Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> * Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269) * deep copy value field, add tx hash test comment * typo * Rename nonce to queueindex, increment sender nonce on L1 message execution (#271) * change nonce to queueindex, increment nonce on L1 message * fix db acccessors * Update core/types/transaction_marshalling.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * Fix db inspect command (#276) fix db inspect command * Add l1 sync service (#256) * extend node configuration * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * use block number instead of hash * accept safe, finalized and numbers for L1Confirmations * add L1 message store to rawdb * remove comments * fix typos * add L1 message sync service * use l1 contract address and chain ID * use L1DeploymentBlock * add confirmation config * move bridge client to separate file * use uint64 block number * fix bigint comparison * rename constants * add more logs * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * check if config is provided * improve sync service DB batched writes * add range check * fix tests * update comments * nit * fix flush range and improve comments * solve circular dependency * update stress tests * initialize l1 client for geth * start sync service * add more comments * check nil correctly * address comments * fix merge * fix genesis l1config deserialization * add sync progress logs * initial sync * handle leveldb not found error * use errors.Is * address comments * update DefaultPollInterval --------- Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> * Add L1 message validation (#272) * add L1 message validation * add comments and better error handling * handle leveldb not found error * update incorrect condition for genesis block * typo * change inclusion index logic * disable L1 message check for legacy tests * set NumL1MessagesPerBlock to 0 in tests * update default genesis config * Add L1 msg validation tests (#303) add L1 msg validation tests * Update miner include l1 messages (#265) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * add L1 message store to rawdb * add L1 message sync service * remove comments * use l1 contract address and chain ID * extend node configuration * use block number instead of hash * accept safe, finalized and numbers for L1Confirmations * fix typos * use L1DeploymentBlock * add confirmation config * move bridge client to separate file * use uint64 block number * fix bigint comparison * rename constants * add more logs * Fix/improve node config parsing (#260) * raise error on failed parsing * default value * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * check if config is provided * improve sync service DB batched writes * include l1 messages in blocks: part 1 * add l1-message-type, transaction methods (#252) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * txpool l1 check, pointer change, marhsal test * draft: start implementing l1message gas behavior * draft: start implementing l1message gas behavior * change to gas usage * error comment typo Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * goimports * update nonce, add hash test (fails), marshal test * goimports * target addr cant be nil * change call msg * comment out test * lint --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> * Add L1 message database (#255) * add l1-message-type, transaction methods * goimports * Update core/types/transaction.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * add L1 message store to rawdb * remove comments * rename to l1_message * rename variables and add comments * write l1 msgs in a batch * add more comments * update tests * allow batched and non-batched writes * rename to accessors_l1_message * handle error * add range check * fix tests * update comments * nit * support blocks with 0 l1 messages --------- Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> * build(docker): auto docker push when pushing git tags (#258) * build(docker): update docker trigger tag prefix (#259) * Fix L1Message Deep Copy, Complete Bridge Tx Hash test (#269) * deep copy value field, add tx hash test comment * typo * commitl1messages * lint * Revert "add L1 message sync service" This reverts commit 5305e8a5de14766ed249e1a7d64042c7a72cf5c2. * Revert "move bridge client to separate file" This reverts commit 0b220bee37de93c3250545e23430db2c401a2f90. * update branch * use commitMessages for l1Txs * little fix * fix config * fix test * comment fixes * fix * fix config check --------- Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Add ErrUnknownAncestor tests (#305) add ErrUnknownAncestor tests * worker test include l1 msgs (#306) * worker test include l1 msgs * move L1 message index update next to block insertion --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * exclude l1 messages from transaction count limit in block (#307) * exclude l1 messages from transaction count limit in block * fix comments * trigger ci * nit --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * Expose queueIndex on Transaction (#316) expose queueIndex on Transaction * test that l1msg doesn't count in maxTxPerBlock limit (#312) * test that l1msg doesn't count in maxTxPerBlock limit * fix, comment * retrigger ci * change order inside test --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * reuse trace nonce field for queueIndex * expose scroll APIs on the geth console * add L1 message query APIs * Trigger new block on new l1 messages (#343) * trigger new block on new l1 messages * typo * initialize l1MsgCh * fix worker l1msg tests (#345) --------- Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> * test(worker): ensure that l1 messages are included in the correct order (#346) test that l1msgs added in correct order * rename enqueueIndex --> queueIndex * move QueueIndex into transaction * improve l1 db interface * formatting * bump version * print l1config * add API to query latest included message queue index * clean up tx limit logic * add clarifying comments and todos to ValidateL1Messages * improve db comments and logs * clean up L1MessageTx type handling * format * format * improve L1 message block check * fix missing L1 event handling * fix TestL1MessageValidationFailure * simplify sync height resume logic * make l1Config.l1MessageQueueAddress non-pointer * improve command line flags * remove todo * use abigen tools for log filtering * cache block L1 message count * nit: fix variable name case * improve logs * flush pending writes to DB before shutdown --------- Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: HAOYUatHZ <haoyu@protonmail.com> * remove syncing L1 messages related, it is migrated to node service --------- Co-authored-by: Ho <noelwei@gmail.com> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: maskpp <maskpp266@gmail.com> Co-authored-by: Richord <rzhang139@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com> Co-authored-by: Max Wolff <max@scroll.io> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: HAOYUatHZ <haoyu@protonmail.com> * feat: update l1fee calculation (#351) * update env for docker compose * update docker compose * feat: return keccak(chainId || height) for BLOCKHASH opcode (#359) * changed blockhash behavior * added patch version * Update core/vm/runtime/runtime_test.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * Update core/vm/runtime/runtime_test.go Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> * lint fix * changed wording * used interpreter.hasher and padded chainId to uint64 * used interpreter.hasher and padded chainId to uint64 * undo changes * bump version --------- Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * execute safe block * add newSafeL2Block to api client * feat(abigen): Add flag let be able to add user tmpl file. (#362) * Add user tmpl file. * Update accounts/abi/bind/template.go Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Update cmd/abigen/main.go Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Update cmd/abigen/main.go Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * Update cmd/abigen/main.go Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix bug --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * fix: improve L1Message RPC encoding (#368) correctly encode L1 messages in RPC response * make baseFee unnecessary * fix block rlp encode issue * add testnet geth config file (#17) Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * Morph testnet deploy v0.0.1 (#18) * add testnet geth config file * add nohub to geth cmd --------- Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * count fix * feat: update contract ABI QueueIndex type to uint64 (#371) * update contract ABI QueueIndex type to uint64 * Update bindings.go * feat(core/vm): revert modexp precompiled contract if input is not u256 (#361) * Revert modexp precompiled contract if input is not u256 * bump version * use specific error * bump version * tests * bump version * fix lint * Update version.go --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * feat(evm): limit ecPairing precompile to use up to 4 inputs (#373) * feat(evm): limit ecPairing precompile to use up to 4 inputs * update test cases * reorder test functions * change the predeploy contract address * fix: include L1MessageTx fields in transaction RPC result (#375) * fix: include L1MessageTx fields in tx RPC result * bump version * Update entrypoint.sh (#19) * fix test compile error * feat(trace): add per_tx_storage_trace (#372) * add proof for predeployed storages * reverse inneeded code * update for mainbranch merging * add pertx storage trace * dummy tx proof * add txstorage trace * add coinbase storage as trace * Update version.go * address comments --------- Co-authored-by: Ho Vei <noelwei@gmail.com> * add new func * fix(trace): fix `statesAffected` in `traceLastNAddressAccount` (#367) * fix(trace): fix * Update version.go * fix(trace): fix storage proof of l1gas price oracle (#376) * fix storage proof of l1gas price oracle * Update version.go * fix(trace): fix --------- Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> * add withdrawTrieRoot * feat(core/vm): modexp precompiled support also less than 32-bytes inputs (#393) * modexp support 32-bytes or less inputs * change revert string * bump version --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * feat(rawdb&rpc): add block row consumption rpc (#388) * add db api for rowconsumption * add rpc api for block row consumption * return nil if rc is is not known * add method to sdk * bump version * small fix * update version --------- Co-authored-by: Péter Garamvölgyi <peter@scroll.io> * change withdrawTrieRootSlot to 45 * add logs for debuging * more logs * more logs * separat entrypoint for testnet (#20) * fix estimateGas issue. similar to ethereum PR:24363 * fix the KnownBlock issue * fix(ethapi): change scroll_getBlockByHash ethapi behaviour (#398) * fix api behaviour * update version * not retrun error in ethclient * add comment * modify rowconsumption struct * fix lint * change naming * fix newL2SafeBlock * make baseFeePerGas not Must * remove parentHash from safeL2Data * update run testnet shell (#22) Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * fix compile error testcase * update run testnet shell (#23) Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * improve * Feature/testnet runner (#24) * update run testnet shell * refine run testnet sh --------- Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * Feature/testnet runner (#25) * update run testnet shell * refine run testnet sh * refine testnet runner --------- Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * blockSize gets length of txHash involved * add script to run testnet sentry geth * update l2node geth command with --nodiscover (#26) Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * fix incompatible block hash (#27) fix * Feature/run testnet update (#28) * update l2node geth command with --nodiscover * add run testnet in validator role * add comment for each script --------- Co-authored-by: Yu Marvel <marvel.yu@bitget.com> * Feature/run testnet update (#29) * update l2node geth command with --nodiscover * add run testnet in validator role * add comment for each script * remove set -u for script --------- Co-authored-by: Yu Marvel <marvel.yu@bitget.com> --------- Co-authored-by: marvelfisher <marvelfisher@gmail.com> Co-authored-by: Péter Garamvölgyi <th307q@gmail.com> Co-authored-by: Max Wolff <max@scroll.io> Co-authored-by: Nazarii Denha <dengaaa2002@gmail.com> Co-authored-by: Péter Garamvölgyi <peter@scroll.io> Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de> Co-authored-by: Orest Tarasiuk <830847+OrestTa@users.noreply.github.com> Co-authored-by: Péter Szilágyi <peterke@gmail.com> 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: Ho <noelwei@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: maskpp <maskpp266@gmail.com> Co-authored-by: Richord <rzhang139@gmail.com> Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com> Co-authored-by: Ubuntu <ubuntu@ip-172-31-14-253.us-west-2.compute.internal> Co-authored-by: Haichen Shen <shenhaichen@gmail.com> Co-authored-by: Max Wolff <maxcwolff@gmail.com> Co-authored-by: HAOYUatHZ <haoyu@protonmail.com> Co-authored-by: Yu Marvel <marvel.yu@bitget.com>
- Loading branch information