bsc/eth
sunny2022da b4f1cdffd5
Implement 2 EIPS: limit and meter initcode and PUSH0 instructions (#1443)
* core/vm: deepcopy jumptable when enabling extra eips

When the interpreter is configured to use extra-eips,
this change makes it so that all the opcodes are deep-copied,
to prevent accidental modification of the 'base' jumptable.

Original-auther: yihuang <huang@crypto.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>

* core/vm: implement EIP-3860: Limit and meter initcode

Implementation of https://eips.ethereum.org/EIPS/eip-3860, limit and meter initcode.
Most of this change takes the go-ethereum implementation as reference.

Original-author: 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>

* core/vm: implement EIP-3855: PUSH0 instruction

* core/vm: Implement PUSH0

* Move PUSH0 to enable3855

* Add method doc

Original-author: Alex Beregszaszi <alex@rtfs.hu>

* core/vm: enable EIP-3855 (PUSH0) in Boneh

Original-author: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com>

* core/vm: Fix issue of incorrect instructionSet used for jump_table

Also update the related test case for gas change.

* core/vm: fix test cases issues that not suitable for boneh

* core/vm: reuse ErrMaxInitCodeSizeExceeded as error message

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: lightclient@protonmail.com <lightclient@protonmail.com>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2023-04-13 17:26:21 +08:00
..
catalyst dep: bump the version of several important library (#1274) 2023-02-02 19:36:37 +08:00
downloader BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
ethconfig BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
fetcher BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
filters BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
gasprice BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
protocols BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
tracers Implement 2 EIPS: limit and meter initcode and PUSH0 instructions (#1443) 2023-04-13 17:26:21 +08:00
api_backend.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
api_test.go fix: code compatibility fixes 2022-07-05 11:14:21 +08:00
api.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
backend.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
bloombits.go fix: code compatibility fixes 2022-07-05 11:14:21 +08:00
discovery.go cmd/utils: use eth DNS tree for snap discovery (#22808) 2021-05-04 11:29:32 +02:00
handler_bsc_test.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
handler_bsc.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
handler_diff_test.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
handler_diff.go fix: memory leak issue with diff protocol (#1019) 2022-07-26 16:33:59 +08:00
handler_eth_test.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
handler_eth.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
handler_snap.go eth: check snap satelliteness, delegate drop to eth (#22235) 2021-02-02 10:44:36 +02:00
handler_test.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
handler_trust.go fix: code compatibility fixes 2022-07-05 11:14:21 +08:00
handler.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
peer.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
peerset.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00
state_accessor.go dep: bump the version of several important library (#1274) 2023-02-02 19:36:37 +08:00
sync_test.go eth: request id dispatcher and direct req/reply APIs (#23576) 2021-11-26 13:26:03 +02:00
sync.go BEP-126: Introduce Fast Finality Mechanism (#936) 2023-04-10 18:36:45 +08:00