Péter Garamvölgyi
b51736fd3c
fix(worker): set row consumption for genesis and empty blocks ( #428 )
...
* fix: initialize row consumption for genesis and empty blocks
* bump version
2023-08-03 09:48:03 +02:00
Péter Garamvölgyi
96d12015e1
fix: decode subcircuit row usage as integer ( #421 )
...
* fix subcircuit row usage type
* bump version
2023-08-02 06:03:18 +02:00
Ho
11b35cd014
feat: upgrade zktrie to v0.6.0 ( #403 )
...
* add domain-spec poseidon hash
* add warning message for deprecated method
* update goimports
* update zktrie to v0.6
* fixes for upgrade
* resume deletion proof
* update alpha genesis since new hash sch eme
* dump zktrie to 0.6
* induce genesis block for scroll sepolia network
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-02 10:54:41 +08:00
HAOYUatHZ
2f9edf73ca
feat(rollup): add circuits capacity checker ( #321 )
...
* 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
* enable (sync) tracing by default
* basic
* init cgo framework
* fix break loop
* integrate the right zkevm version (#323 )
* finish rust codes
* use dylib (#325 )
* flip
* ?
* use cdylib
* revert
* fix
* apply_tx
* rename
* fixing types
fixing types
fixing types
* clean up
* ExecutionResults (#328 )
* filling
* filling
* more
* clean up
* filling
* coinbase
* add
* MPTWitness
* ExecutionResults WIP
* L1fee
L1fee
* sender
* to
* Failed & ReturnValue
* createdAcc & after
* remove MPTWitness
* txStorageTrace
* add FeeRecipient
* add StorageTrace
* fix FFI types
* better logger
* cargo fmt
* fix
* add build tags
* update Makefile
* fix library
* improve ld path
* correctly deal with circuit_capacity_checker returned result
* fix return value
* update cargo (#333 )
* update cargo
* update
* update go
* refactor
* raname `circuits capacity checker` to `circuit capacity checker`
* some refactorings
* [Fix] storage proof generation in capacity checker (#348 )
* make per-tx storage and deletion proof work
* format
* fix misplaced markdeletion
---------
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
* docker (#363 )
* update Dockerfile
* build: update go version to 1.19
* update
* fix
* fix
* try
* simplify
* revert go version
update l2geth Dockerfiles
* fix
* fix coinbase
* fix (#369 )
* format
* Update version.go
* address comments
* Capacity refactor (#374 )
* init
* id
* support multiple instances
* fix id
* fix conflicts
* refactor to use same codes (#379 )
* re-init
* WIP
* WIP
* refactor
* go
* minor
* fix storage proof of l1gas price oracle
* move 1
* move 2
* move 3
* move 4
* move 5
move 5
* move 6
move 6
* move 7
* move 8
* move 9
* move 10
* clean up
clean up
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
* finish basic
* minor
* config capacity check in block_validator (#380 )
* init
* done
ref
* fix tests
fix tests
fix tests
fix tests
* add more comments
* apply_block
* improve logs
* cargo fmt
* Capacity big refactor (#383 )
* CreateTraceEnv
* WIP
* draft
more
fix
* for test
* fortet
* clean up
* add more comments
* goimports -local github.com/scroll-tech/go-ethereum -w .
* fix typos
* attempt 1
* attempt 2
* attempt 3
* gogogo
* clean up
* fix
* fix
* rename
* minor
* fix
* minor
* minor
* improve doc
* use dedicated `checkCircuitCapacity` flag (#394 )
* refactor
* fix
* add lock
* [feat] capacity checking: upgrade libzkp (#395 )
* upgrade
* upgrade libzkp
* write RowConsumption (#396 )
* write RowConsumption
* name alignments
* revert some formatting
* add lock to CircuitCapacityChecker in BlockValidator
* remove mutex pointer
* improve github workflow
* improve
* store row consumption in mining (#397 )
* prepare
* finish
* add more logs
* mark `ApplyBlock` as ready
* update libzkp (#401 )
* fix
* Capacity detail (#402 )
* fix(block-validation): consider skipping in ValidateL1Messages (#405 )
* fix(block-validation): consider skipping in ValidateL1Messages
* fix(block): consider skipping in L1MessageCount
* fix l1 validation tests
* fix NumL1Messages
* fix impl.go return types
fix
* better error handling (#407 )
* add
add
* add
* add
* add
* add
* cargo fmt
* add
* update
* add
* WIP
* minor
* gogogo
* gogogo
* fix
* fix
* fix
* cargo clippy
* improve
* improve
* creation lock (#408 )
* creation lock
* update
* Debug log (#409 )
* add more logs
* more
* more
* fix
* improve
* Update cmd/utils/flags.go
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
* refactor worker.commit()
* avoid re-calculate
* txpool ccc err handling (#411 )
* more explicit error comments
* add more logs
* fix unnecessary commit
* add more logs
* fix `ineffassign`
* add more comments
* log id for `NewCircuitCapacityChecker` (#414 )
add log to `NewCircuitCapacityChecker`
* Persist skip info for block where all L1 msgs are skipped (#415 )
persist skip info for block where all L1 msgs are skipped
* Update version.go
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: Zhang Zhuo <mycinbrin@gmail.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-08-01 13:52:31 +08:00
Nazarii Denha
a677ee3ccf
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
2023-07-20 00:10:34 +08:00
Nazarii Denha
3943547960
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>
2023-07-11 22:07:09 +08:00
Nazarii Denha
5eac3a73bc
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>
2023-07-10 22:04:14 +08:00
HAOYUatHZ
8c5bf3069f
fix(trace): fix statesAffected in traceLastNAddressAccount ( #367 )
...
* fix(trace): fix
* Update version.go
2023-07-07 10:27:55 +08:00
HAOYUatHZ
3cf5ba882d
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>
2023-07-04 22:21:12 +08:00
Péter Garamvölgyi
38a6a1e964
fix: include L1MessageTx fields in transaction RPC result ( #375 )
...
* fix: include L1MessageTx fields in tx RPC result
* bump version
2023-06-30 15:52:57 +02:00
Péter Garamvölgyi
8c141eb90f
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
2023-06-29 09:22:48 +02:00
Nazarii Denha
e09346ee20
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>
2023-06-28 10:32:26 -07:00
Richord
b5e8d12c06
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>
2023-06-14 13:11:31 -07:00
HAOYUatHZ
f055f50f9d
feat: update l1fee calculation ( #351 )
2023-06-13 10:57:59 +08:00
Péter Garamvölgyi
4e0daeb300
fix(trace): change l1Fee type from uint64 to *big.Int ( #360 )
...
* fix: change l1Fee type from uint64 to *big.Int
* use hexutil.Big
2023-06-09 22:28:40 +08:00
Péter Garamvölgyi
983d630244
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>
2023-06-07 07:24:19 -07:00
Richord
1f167bd730
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>
2023-06-05 09:52:46 -07:00
Richord
ad43d0ea3f
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>
2023-05-24 15:23:57 +02:00
Péter Garamvölgyi
334892ae07
Return error for disabled precompile calls ( #337 )
...
return error for disabled precompile calls
2023-05-24 11:41:33 +02:00
Nazarii Denha
1094569b5b
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>
2023-05-19 21:41:58 +08:00
Nazarii Denha
c5da652c29
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>
2023-05-18 12:11:53 +02:00
Nazarii Denha
29b23f4f5b
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>
2023-05-12 08:46:37 +02:00
Max Wolff
b0b0bf1133
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
2023-05-09 09:04:46 -07:00
Ho
c913b3e2f1
fix(zktrie): fix deletion proofs and collect them in commiting phase ( #263 )
...
* new deletion proof
* complete tracer and test
* extend proof for parallel tracing
* integrating into blocktrace
* lint
* deduplication of deletion proofs
* fix an issue on marking deletion
* fixs since last review
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-2-9-63.us-west-2.compute.internal>
2023-05-08 15:40:54 +08:00
HAOYUatHZ
32aacc3fd6
style: revert some formatting ( #294 )
...
Revert "style: remove blank line & white space formatting"
This reverts commit 349def8d5d78f83c19e899d5d80b1d9f6a5d18c6.
2023-04-20 17:49:35 +08:00
Nazarii Denha
09c69b6076
implement PUSH0 ( #273 )
...
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
2023-04-20 11:39:19 +02:00
HAOYUatHZ
11ff7a0648
refactor: rename L1FeeEnabled to FeeVaultEnabled ( #281 )
...
rename `L1FeeEnabled` to `FeeVaultEnabled`
2023-04-19 22:41:38 +08:00
georgehao
f71fc6794a
fix(api): fix debug_ API oom bug ( #284 )
...
* feat: fix oom bug
* feat: format import
* feat: remove unused code
* Update version.go
---------
Co-authored-by: colin <102356659+colinlyguo@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-04-19 21:26:29 +08:00
Max Wolff
028acecb02
fix return type in tx receipt for l1fee type ( #254 )
...
* edit marshalling override
* goimports
* not required
* encode l1fee
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
2023-04-19 05:12:57 +02:00
Péter Garamvölgyi
49e755e334
Add Scroll bootnode config ( #261 )
...
* add Scroll bootnode config
* expose scroll networks on node CLI
* add alpha genesis config
* fix scroll genesis config
* update default sync mode
* address todos
* remove scroll staging network
* bump version
* update genesis config
* bump version
2023-04-19 04:40:52 +02:00
HAOYUatHZ
df1d37e097
refactor(config): consolidate scroll flags ( #262 )
2023-04-17 18:56:26 +08:00
Max Wolff
a74b35e86f
feat(api): add L1 fee to eth_getTransactionReceipt ( #244 )
...
* Update api.go
* fmt
* revert changes
* add l1fee to receipt in transaction processor
* decoder
* fmt
* fmt
* add encoding, test
* fmt
* removed duplicate l1 fee calc, added gen receipt
* remove dup l1feecalc
* lint
* add omitempty
* bump version
---------
Co-authored-by: Péter Garamvölgyi <th307q@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Péter Garamvölgyi <peter@scroll.io>
2023-03-28 09:08:57 +08:00
Péter Garamvölgyi
4da184ea60
feat(vm): disable EIP-3198 ( #250 )
...
* disable EIP 3198
* bump version
* trigger ci
2023-03-27 17:49:32 +08:00
Ho
8665d3e011
feat(trace): add deletion proof into storage trace ( #245 )
...
* update zktrie, inducde proof with deletion
* Add deletion proof for stateDb
* fill deletionproofs
* lint
* proving more comment for parts prone to be confused
* simplify array appending
Co-authored-by: maskpp <maskpp266@gmail.com>
* bump zktrie version and fix issues
* add delproof into witgen
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-03-20 13:44:09 +08:00
maskpp
03b4de32b7
feat(trace): Add chainID and version fields in trace. ( #227 )
...
* Add ChainID and version.
* fix comments.
* Update params/version.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* fix comments.
* Update version.go
---------
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-03-06 21:19:30 +08:00
maskpp
d1f9523b08
feat(build): Upgrade go version to 1.18 ( #241 )
...
* update go version
* update go version
* format code by goimports
* format code by goimports
* go mod tidy
* update go version
* update go version
* upgrade linter
* add exclude rule
* fix golangci exclude
---------
Co-authored-by: vincent <419436363@qq.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2023-03-06 13:32:39 +08:00
HAOYUatHZ
4588569b63
feat: VerifyFee for sendTx and txpool.add ( #236 )
...
* init
* rework
* handle `LesApiBackend`
* fix tests
* add L1fee even for 0 gasPrice
* update comments
2023-03-02 16:38:43 +08:00
maskpp
15f94b93ea
fix(trace): Fix l1Fee ( #234 )
...
Fix l1Fee
2023-02-24 14:04:25 +08:00
Haichen Shen
3c5f532ef3
fix: Add l1fee to the balanceCheck ( #229 )
...
Add l1fee to the balanceCheck
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2023-02-24 08:31:37 +08:00
Nazarii Denha
310c870c6a
set BaseFee to nil ( #222 )
...
* set BaseFee to nil
* fix lint
* comment fix
* update genesis.go
2023-02-20 22:04:55 -08:00
HAOYUatHZ
ec9254b0b1
feat: compute rollup gas price for StateTransition ( #209 )
...
* init
* more
* more
* add L1BlockContainerAddress
* finish
* add more comments
* rename `UsingSVM` to `UsingScroll`
* update logic
* refactor(rollup): add UsingScroll into ChainConfig
* update
* update comments
* fee=l2fee+l1fee (#221 )
add l1fee into calc
* improve
* format note content.
* feat(l1Fee): Add l1Fee in trace. (#223 )
* Add l1fee in trace.
* Delete comment.
---------
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-02-20 16:28:43 +08:00
HAOYUatHZ
8a78c736a5
feat(trace): add withdraw trie root ( #217 )
...
* init rollup/rcfg/config.go
minor
* update traces struct
* init withdraw_trie.go
* finish
* fix `L2MessageQueueAddress`
* refactor(rollup): add `UsingScroll` into `ChainConfig` (#218 )
* update comments
* update comments
2023-02-16 10:18:47 +08:00
Péter Garamvölgyi
30f4f57f07
feat: add block transaction count limit ( #216 )
...
* feat: add block transaction count limit
* add tests
* nit
2023-02-15 15:13:03 +08:00
HAOYUatHZ
0854d4bbb1
core, trie, eth, cmd: rework preimage store ( #205 )
...
* core, trie, eth, cmd: rework preimage store
* fix ci
* fix ci
* Update zk_trie_database.go
---------
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: maskpp <maskpp266@gmail.com>
2023-02-10 15:26:57 +08:00
Nazarii Denha
7c3657b61b
feat: make BLOCKHASH return only last blockhash ( #196 )
...
* make BLOCKHASH return only last blockhash
* fix
* small fix
2023-02-10 13:06:42 +08:00
Péter Garamvölgyi
81e7775aa8
feat: dual code hash ( #188 )
...
* add KeccakCodeHash and CodeSize to StateAccount
* update StateAccount marshalling logic
* change emptyCodeHash to poseidon(nil)
* purge StateAccount.hash
* fix/disable failing tests
* change keccak and poseidon hash order in StateAccount
* fix lint
* update l2trace account wrapper
* update eth_getProof response type
* fix eth_getProof response type
* goimports
* update the codehash computation
* update the codehash test cases
* go mod tidy
* fix tests
* use keccak instead of poseidon
* update trace codehash field name
* upgrade zktrie to 4.2
* trigger ci
* update state account marshalling according to spec
* improve generatorStats estimation
* add comment
* upgrade zktrie to 4.3
* go mod tidy
* misc fixes
* fix TestDump
* fix snap sync tests
* handle err in the codehash
* fix tests in snapshot/generate_test.go
* remove prevhash from state journal
* add state_account_marshalling_test.go
* goimports
* add more tests
---------
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
2023-02-08 16:12:41 -08:00
Zhang Zhuo
1fe2d22e29
feat: make eip2718 & eip1559 configurable in txpool ( #206 )
...
* txpool only supports legacy tx
* configurable tx pool EIP-2718 && EIP-1559
* try fix CI
* fix CI
* fix metamask incompatibility
* fix comments
* fix CI
* set basefee as 0 when disable eip2718 or eip1559
* fix typo
---------
Co-authored-by: colinlyguo <colinlyguo@gmail.com>
2023-02-03 14:24:15 +08:00
Péter Garamvölgyi
2891916a0f
feat: Add Scroll fee vault address as fee recipient ( #187 )
...
* feat: add Scroll fee vault address as fee recipient
* log fee vault address if configured
* lint
* disable fee vault in test presets
* add simple test
2023-01-12 10:11:33 +01:00
maskpp
804e7edc23
refactor: rename NewTraceTransaction to NewTransactionData ( #190 )
...
rename NewTraceTransaction to NewTransactionData
2022-12-02 14:12:07 +08:00
maskpp
016b30eb7d
refactor(trace): move TransactionData into l2trace.go ( #189 )
...
combine trace_block.go
2022-12-02 10:46:26 +08:00
maskpp
4ea77a7577
feat(tx): revert tx trace struct ( #186 )
...
revert tx trace struct
2022-11-25 10:56:12 +08:00
maskpp
0bdd2e0575
fix(tx): fix bug in *TransactionData UnmarshalJSON ( #184 )
...
* Fix bug for TransactionData json unmarshal
* clean up
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-11-21 12:37:53 +08:00
maskpp
22963a115d
feat(trace): Add header and upgrade TransactionTrace ( #181 )
...
* Add header and upgrade TransactionTrace
* Add header
* change blockResult struct
* rm chainID from TransactionData
* Rename blockResult to blockTrace in everywhere
* fix comments
2022-11-18 17:11:04 +08:00
Péter Garamvölgyi
61e2bdd05f
feat: return 0 for op DIFFICULTY ( #167 )
2022-10-27 17:31:45 +08:00
Ho
e6500918a0
refactor: adapt to standalone zktrie module ( #165 )
...
* adapt zktrie: zktrie part
* adapt unittests
* pass tests
* refactor for new zktrie module
* run go imports
2022-10-17 14:32:42 +08:00
Ho
4ee7885525
Fix witness generator for failed call/create op and tx ( #146 )
...
* update test examples
* update tests
* solidify account deleting
* update zkwriter for reverting
* solid handling for call, and update test examples
* fix status capture for CREATE issue, update test examples
* add fail case for deploy
* update test example (call non-exist address)
* move test and stuffs to internal path, make required exports
* fix issue in selfdestruct
* update destruct test
* lint
* rename traces
2022-10-10 17:13:24 +08:00
maskpp
3a7da33cd5
fix: fix not using point for sync.Pool recycling ( #158 )
...
fix bug
2022-09-20 15:05:44 +08:00
maskpp
15391eeaf7
feat: add replay blockResult API ( #139 )
...
* replay trace
* replay trace
* add sdk
* fix trace test case
* fix bug
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/tracers/api_blockResult.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* add comments
* fail the rpc call if get error
* adjust channel length
* fix bug
* fix bug
* remove redundant codes in worker
* add test case
* fix bug
* fix goimports
* Update eth/tracers/api_blockResult.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* fix comments
* Update ethclient/ethclient.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update ethclient/ethclient.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* rm coinbase api in miner
* fix comment
* Update eth/tracers/api.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* fix comment
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
2022-09-20 14:30:57 +08:00
Ho
edbb595e66
Trace the account accessed by EXTCODE op ( #157 )
...
add account touch by 'EXTCODE' for storeTrace
2022-09-17 22:44:29 -07:00
maskpp
9182a74334
fix logs error tracing ( #154 )
...
* fix err handle
* fix err handle
* fix err handle
2022-09-13 11:15:31 +08:00
Péter Garamvölgyi
304af60f50
feat: change bytecode hash function from Keccak to Poseidon ( #149 )
...
* feat: change bytecode hash function from Keccak to Poseidon
* fix TestStateProcessorErrors
* rename files
* copy iden3's poseidon package to local
* update poseidon hash
* apply new hash in codehash
* extend hash method, use actual code size as cap
* prune keccak(nil) for empty code
* update empty code hash references to Poseidon
* add TestPoseidonCodeHash
* use keccak for empty code hash
* go mod tidy
* goimports
* use Poseidon code hash in state and sync tests
* run goimports
* run goimports
* remove unnecessary reallocation from CodeHash
* goimports
* move codehash API to separate module
* add missing package
* fix review comments
* improve comments
Co-authored-by: Ho Vei <noelwei@gmail.com>
2022-09-08 06:16:17 +08:00
Péter Garamvölgyi
00ed553a57
feat: disable SELFDESTRUCT opcode in l2geth ( #147 )
...
* feat: disable SELFDESTRUCT opcode in l2geth
* remove deadcode
2022-08-22 14:17:57 -07:00
maskpp
01a0618b02
fix: reset trace Error field when finalizing ( #143 )
2022-08-18 10:22:36 +08:00
maskpp
dd76f3425a
feat: add txHash in blockResult ( #142 )
...
add txHash in blockResult
2022-08-15 16:43:08 +08:00
Ho
f9952a396f
unify byte order in zktrie node's fields being stored ( #133 )
2022-07-28 21:32:42 +08:00
HAOYUatHZ
eb11a84c56
fix(trace): add more opcode handlings ( #128 )
2022-07-24 21:39:33 +08:00
Ho
3682e05f3f
zktrie part3: include zktrie witness in block trace; add demo for generating witness data for mpt circuit ( #123 )
...
* demo for witness generator
* add simple binary for witness generating
* revert the witgen utility
* purge some code
* induce mptwitness argument
* handle case for failed tx, and special block in POA
* mptwitness: refactor for enabling output ops with different order
* induce witness gen with rwtable order
* self-documenting options for mptwitness
* fix trace flag according to review
* fix issue in handling failed tx
* refactor
* update according to reviews
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-07-16 07:00:07 +08:00
Ho
c516a9e477
zktrie part2: add zktrie; allow switch trie type by config; ( #113 )
...
* induce zktrie
* refactoring zktrie
* fix crash issue in logger
* renaming JSON field
* unify hash scheme
* goimport and mod lint
* backward compatible with go 1.17
* lints
* add option on genesis file
* corrections according to the reviews
* trivial fixes: ValueKey entry, key in prove nodes
* fixing for the proof fix ...
* avoiding panic before loading stateDb in genesis setup
* revert ExtraData.StateList json annotation for compatibility
* fix goimports lint
* fix goimports lint
* better encoding for leaf node
* fix proof's printing issue, add handling on coinbase
* update genesis, and rule out snapshot in zktrie mode
* update readme and lint
* fix an issue
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-06-27 11:17:02 +08:00
maskpp
f731427282
fix(trace): change error type to string ( #119 )
...
* Fix bug of error type
* Fix bug of error type
2022-06-23 16:00:36 +08:00
HAOYUatHZ
21b65f4944
core/vm: Make INVALID a defined opcode ( #118 )
...
core/vm: Make INVALID a defined opcode (#24017 )
* core/vm: Define 0xfe opcode as INVALID
* core/vm: Remove opInvalid as opUndefined handles it
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Andrei Maiboroda <andrei@ethereum.org>
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
2022-06-22 17:18:47 +08:00
maskpp
e15d0d35cb
fix: fix codeList type ( #117 )
2022-06-21 18:25:07 +08:00
Zhang Zhuo
d3bc8322dc
zktrie part1: change storage proof from per step to per block ( #102 )
...
* change storage proof from step-wise to block-wise. Step-wise proof will be reconstructed in prover side
* minor
* minor
* Update worker.go
* purge hexInt
* Update l2trace.go
* Refactor l2witness/opt-storage-proof (#112 )
* rename GetStateData to GetLiveStateObject
* revert EvmTxTraces type
* rename GetLiveStateObject to GetLiveStateAccount
* fix typo
* some renamings
* format codes
* fix typo
* fix typos
* format codes
some reverts
some renamings
some renamings
format codes
* update comments
update comments
* update comments
update comments
update comments
* update comments
update comments
update comments
* rename
* rename
* update
* update comments
Co-authored-by: maskpp <maskpp266@gmail.com>
Co-authored-by: Ho Vei <noelwei@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-06-08 12:26:50 +08:00
maskpp
9b99f2e174
fix bug and optimize fill_trace logic for gc ( #104 )
...
* fix bug and upgrade trace code
* minor
* refactor (#105 )
* move
* add comments
* fix typo
* update comments
* rename extraData()
* update comments
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-05-26 10:35:27 +08:00
maskpp
9199413d21
opt: improve trace handling logic to decrease GC pressure. ( #92 )
...
* Upgrade trace code to decrease GC pressure.
* Fix golangci bug
* Add goproxy
* update docker file
* trigger ci
* trigger ci
* Upgrade code
* Upgrade code
* trigger ci
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-05-18 22:38:15 +08:00
HAOYUatHZ
571dcad4be
feat: add to AccountProof to trace ( #98 )
...
* init to
* update
* fix `to` address
* fix
* fix
* refactor
2022-05-18 05:43:43 +08:00
maskpp
0541145fd6
feat: add config for blockResult cache_limit ( #97 )
...
* Let blockResult limit settable
* fix bug
* Update cmd/geth/usage.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-05-16 18:41:40 +08:00
maskpp
a79e72f697
refactor: optimize and improve tps for contract call. ( #83 )
...
* upgrade block trace
* upgrade block trace
* Correct comments
2022-05-04 10:12:17 +08:00
HAOYUatHZ
06190d0642
fix FormatLogs memory ( #75 )
2022-04-02 11:25:07 +08:00
HAOYUatHZ
3d3c9d3edf
fix bigInt encoding ( #74 )
...
* fix bigInt encoding
* fix balance
2022-04-02 10:13:04 +08:00
maskpp
b714e22893
fix bug of null baseFee ( #73 )
...
* fix bug of null baseFee
* Update l2trace_block.go
* Update l2trace_block.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-04-01 20:40:34 +08:00
HAOYUatHZ
33fcd2bf6d
fix(trace): use string for big.Int ( #72 )
2022-04-01 16:56:01 +08:00
maskpp
2329d32409
fix(trace): fix incorrect sender state info. ( #71 )
2022-04-01 16:07:26 +08:00
maskpp
40e8f088b6
opt: upgrade blockResult process flow ( #68 )
...
* upgrade blockResult process flow
* fix format optimization
2022-03-31 18:01:14 +08:00
HAOYUatHZ
a96775b3ff
fix code_hash json annotation ( #64 )
2022-03-31 15:08:04 +08:00
maskpp
fccb5bf6ec
fix bug about get the trace of opcode ( #67 )
2022-03-31 15:00:55 +08:00
HAOYUatHZ
9f1d8552e4
feat: add RefundCounter to StructLogRes ( #66 )
2022-03-31 13:11:34 +08:00
maskpp
e55d05d3ab
optimizate code ( #63 )
2022-03-31 11:37:33 +08:00
HAOYUatHZ
360115e61f
add code_hash to trace
2022-03-30 15:17:57 +08:00
HAOYUatHZ
8ccc10541d
feat(trace): add coinbase account_proof ( #58 )
2022-03-30 13:46:16 +08:00
Steven
5128154925
fix CaptureState ( #56 )
...
* Move code of `captureStateAfter` to `captureState`, and refactor some
code.
* Fix to use the right key in `traceStorageProof`.
* clean up
* Update `capatureStateAfter`.
* fix
* fix
* Get storage key from stack of last log.
* Revert wrong fix.
* minor
Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
2022-03-28 23:02:48 +08:00
Steven
b6cc89fabe
Add goimports lint ( #54 )
...
* Add `goimports` lint.
* Fix `goimports` issue.
* Fix group to `github.com/scroll-tech/go-thereum`.
2022-03-24 16:53:59 +08:00
HAOYUatHZ
f8532484a6
improve doc for OpcodeExecs ( #48 )
2022-03-21 13:10:11 +08:00
maskpp
09a31ccc66
Upgrade txpool module to increase tps ( #43 )
2022-03-21 08:52:13 +08:00
HAOYUatHZ
13ea5c234b
fix(trace): update proofList struct ( #46 )
2022-03-19 13:28:25 +08:00
HAOYUatHZ
9fb413d702
fix(trace): rename BlockTrace.Transaction to BlockTrace.Transactions ( #47 )
2022-03-18 11:24:57 +08:00
HAOYUatHZ
3b4875c0d5
minor: update comments ( #45 )
2022-03-16 20:46:16 +08:00
HAOYUatHZ
a5999cee90
fix(trace): change codeHash to code ( #44 )
2022-03-16 16:17:50 +08:00
maskpp
69c291cf7a
feat: add more data into the execution trace ( #20 )
2022-02-21 10:15:57 +08:00
maskpp
7745fd5840
Extract execution trace from EVM execution and provide subscription API ( #19 )
...
* Create go.yml
* Merge from zkrollup and fix conflict
* go mod tidy
* fix worker_test test case
* fix worker_test test case
* Delete go.yml
* add log content, enable memory trace
* add tracer pool handler
* Add comments and format code
* add evmTrace subscribe api
* Move the evmTrace struct.
* Fix miner bug.
* upgrade evmTrace api
* fix bug about evmTracesByHash api
* Fix the bug about block.timestamp and remove unnecessary copy.
* Update eth/filters/api.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Upgrade comments.
* Delete useless code in test file
* Update miner/worker.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Change the return result to BlockResult.
* Change return type.
* Change blockResult to blockResults.
* Add ReturnValue.
* Update core/rawdb/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update core/rawdb/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update core/types/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Add indent to the comment and rm json encoding flag.
* Rm json encoding flag.
* Update core/rawdb/l2trace.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Rm json encoding flag.
* Update ethclient/ethclient.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* Update eth/filters/api.go
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
* Use as the blockResult prefix flag.
* Update eth/filters/filter_system.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/filters/filter_system.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update ethclient/ethclient.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
* Update eth/filters/api.go
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: Haichen Shen <shenhaichen@gmail.com>
Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com>
2022-01-23 20:41:15 +08:00
maskpp
b4d60884d2
Fix import fmt and run tests for given architecture ( #18 )
...
* fix gofmt
* Run tests for given architecture
* Speed up CI execution.
2022-01-12 19:45:06 -08:00