erigon-pulse/core/vm
Andrew Ashikhmin b38e17e393
Implement PIP-33: Napoli Hardfork ()
Initial support of the upcoming Napoli hard fork on Polygon – see
[PIP-33](https://forum.polygon.technology/t/pip-33-napoli-upgrade). Per
[PIP-31](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-31.md),
it parallels the
[Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md)
upgrade of Ethereum, but does not include
[EIP-4788](https://eips.ethereum.org/EIPS/eip-4788),
[EIP-4844](https://eips.ethereum.org/EIPS/eip-4844),
[EIP-7516](https://eips.ethereum.org/EIPS/eip-7516). In other words,
Napoli includes [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153),
[EIP-5656](https://eips.ethereum.org/EIPS/eip-5656),
[EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) from Cancun.

This PR implements
[PIP-31](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-31.md),
[PIP-16: Transaction Dependency
Data](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-16.md)
(by merging `ParallelUniverseBlock` into `NapoliBlock`; the bulk of
PIP-16 was implemented in PR ), and [PIP-27: Precompiled for
secp256r1 Curve
Support](https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-27.md)
([EIP-7212](https://eips.ethereum.org/EIPS/eip-7212); see also
https://github.com/maticnetwork/bor/pull/1069 &
https://github.com/ethereum/go-ethereum/pull/27540).

---------

Co-authored-by: Anshal Shukla <shukla.anshal85@gmail.com>
2024-01-17 14:13:16 +01:00
..
evmtypes evm: simplify addToAccessList methods () 2023-09-25 08:52:51 +07:00
runtime evm: remove interpreter interface - step3 () 2023-11-29 09:29:16 +07:00
stack evm: no interface () 2023-10-05 12:23:08 +07:00
testdata Implement PIP-33: Napoli Hardfork () 2024-01-17 14:13:16 +01:00
absint_cfg_proof_check.go core/vm: Simplify error handling in interpreter loop () 2022-12-21 11:57:53 +01:00
absint_cfg_proof_gen.go core/vm: Simplify error handling in interpreter loop () 2022-12-21 11:57:53 +01:00
absint_cfg.go go1.19 gofmt () 2022-08-10 19:04:13 +07:00
analysis_test.go core: run tests in parallel () 2023-11-17 10:52:40 +07:00
analysis.go Snapshot sync headers stage () 2021-05-08 09:45:40 +01:00
common.go EIP-3860: Limit and meter initcode () 2022-10-31 13:40:41 +01:00
contract.go evm: no interface on contract creation () 2023-10-05 13:42:20 +07:00
contracts_test.go Implement PIP-33: Napoli Hardfork () 2024-01-17 14:13:16 +01:00
contracts.go Implement PIP-33: Napoli Hardfork () 2024-01-17 14:13:16 +01:00
doc.go core/vm: remove JIT VM codes () 2018-03-26 13:48:04 +03:00
eips.go evm: remove interpreter interface - step3 () 2023-11-29 09:29:16 +07:00
errors.go Amend EIP-3860 per EIPs/pull/6249 () 2023-01-06 17:46:27 +01:00
evm_test.go core: run tests in parallel () 2023-11-17 10:52:40 +07:00
evm.go Implement PIP-33: Napoli Hardfork () 2024-01-17 14:13:16 +01:00
gas_table_test.go core: run tests in parallel () 2023-11-17 10:52:40 +07:00
gas_table.go evm: no interface () 2023-10-05 12:23:08 +07:00
gas.go all: fix typos in comments () 2020-06-15 19:38:13 +03:00
instructions_test.go core: run tests in parallel () 2023-11-17 10:52:40 +07:00
instructions.go evm: remove interpreter interface - step3 () 2023-11-29 09:29:16 +07:00
interface.go impr(evm): Move callstack depth to the interpreter () 2023-01-19 23:52:08 +00:00
interpreter.go Implement PIP-33: Napoli Hardfork () 2024-01-17 14:13:16 +01:00
jump_table.go Implement PIP-33: Napoli Hardfork () 2024-01-17 14:13:16 +01:00
logger.go evm: no interface () 2023-10-05 12:23:08 +07:00
memory_table.go core/vm: implement EIP-5656, mcopy instruction () 2023-07-13 19:36:06 +02:00
memory_test.go core: run tests in parallel () 2023-11-17 10:52:40 +07:00
memory.go core/vm: implement EIP-5656, mcopy instruction () 2023-07-13 19:36:06 +02:00
mock_vm.go evm: no interface on contract creation () 2023-10-05 13:42:20 +07:00
opcodes.go Implement EIP-7516: BLOBBASEFEE opcode () 2023-09-19 10:45:19 +02:00
operations_acl.go evm: no interface () 2023-10-05 12:23:08 +07:00
stack_table.go core/vm: derive maxStack from numPop & numPush () 2022-12-21 14:55:00 +01:00