Skip to content

Commit

Permalink
Merge branch 'master' into includability-check-refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
richardgreg authored Feb 28, 2024
2 parents 320eee4 + 0f9e434 commit bf72ed5
Show file tree
Hide file tree
Showing 67 changed files with 98 additions and 97 deletions.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ This specification aims to be:

Running the tests necessary to merge into the repository requires:

* Python 3.9.x, and
* [PyPy 7.3.x](https://www.pypy.org/).
* Python 3.10.x, and
* [PyPy 7.3.12](https://www.pypy.org/) or later.
* `geth` installed and present in `$PATH`


Expand Down
4 changes: 2 additions & 2 deletions lists/evm/opcode-blocks.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Opcode Blocks
-------------

| Prefix | Available | Propsoed | Name |
| Prefix | Available | Proposed | Name |
|--------|----------:|---------:|---------------------------------|
| 0x0 | 3 | | Aritmetic |
| 0x0 | 3 | | Arithmetic |
| 0x1 | 2 | | Comparison / Bitwise |
| 0x2 | 15 | | Cryptography |
| 0x3 | 0 | | Environmental |
Expand Down
12 changes: 6 additions & 6 deletions lists/evm/pending-opcodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Opcodes under active consideration
----------------------------------

This list includes opcodes under active consideration for adding to the
next or subsuquent hard fork.
next or subsequent hard fork.

| Opcode | Name | Description | EIP |
|:--------:|-----------------|-------------------------------------------------|------------------------------------------------------------------------------|
Expand All @@ -12,7 +12,7 @@ next or subsuquent hard fork.
| 0x5D | TSTORE | Transient data store | [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) |
| 0x5E | MCOPY | Memory copy | [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) |
| 0xE0 | RJUMP | relative jump | [EIP-4200](https://eips.ethereum.org/EIPS/eip-4200) |
| 0xE1 | RJUMPI | relative conditional jump | [EIP-4200](https://eips.ethereum.org/EIPS/eip-4200) |
| 0xE1 | RJUMPI | relative conditional jump | [EIP-4200](https://eips.ethereum.org/EIPS/eip-4200) |
| 0xE2 | RJUMV | relative jump table | [EIP-4200](https://eips.ethereum.org/EIPS/eip-4200) |
| 0xE3 | CALLF | EOF Subroutine Call | [EIP-4750](https://eips.ethereum.org/EIPS/eip-4750) |
| 0xE4 | RETF | EOF Subroutine return | [EIP-4750](https://eips.ethereum.org/EIPS/eip-4750) |
Expand All @@ -26,12 +26,12 @@ next or subsuquent hard fork.
| 0xEC | CREATE3 | Create from EOF contained initcode | TBD - [mega EOF](https://notes.ethereum.org/@ipsilon/mega-eof-specification) |
| 0xED | CREATE4 | Create from transaction contained initcode | TBD - [mega EOF](https://notes.ethereum.org/@ipsilon/mega-eof-specification) |
| 0xEE | RETURNCONTRACT | Contract to be created, references EOF data | TBD - [mega EOF](https://notes.ethereum.org/@ipsilon/mega-eof-specification) |
| 0xEF | - | Reserved for EOF compatability | TBD - [mega EOF](https://notes.ethereum.org/@ipsilon/mega-eof-specification) |
| 0xEF | - | Reserved for EOF compatibility | TBD - [mega EOF](https://notes.ethereum.org/@ipsilon/mega-eof-specification) |
| 0xF6 | PAY | transfers value from caller to target | [EIP-5920](https://eips.ethereum.org/EIPS/eip-5920) |
| 0xF8 | CALL2 | CALL without gas and output memory | [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069) ||
| 0xF8 | CALL2 | CALL without gas and output memory | [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069) |
| 0xF9 | DELEGATECALL2 | DELEGATECALL without gas and output memory | [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069) |
| 0xFB | STATICCALL2 | STATICCALL without gas and output memory | [EIP-7069](https://eips.ethereum.org/EIPS/eip-7069) |
| 0xFC | SETCODE | Change the code for the current contract | [EIP-6913](https://eips.ethereum.org/EIPS/eip-6913) | |
| 0xFC | SETCODE | Change the code for the current contract | [EIP-6913](https://eips.ethereum.org/EIPS/eip-6913) |

Pending Opcode Table
--------------------
Expand All @@ -42,7 +42,7 @@ Existing Opcodes
----------------

Current up to Shanghai. Opcodes not operation in mainnet (and are either
scheduled or accepted) are in *itallics*.
scheduled or accepted) are in *italics*.

| Number | Name | Execution spec category | Initial Release | EIP |
|--------|------------------|-------------------------|------------------|--------------------------------------------------------------------------------|
Expand Down
4 changes: 2 additions & 2 deletions network-upgrades/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In an effort to separate this process from the EIP standardization process, thre

**Considered for Inclusion**: Signals that client developers are generally positive towards the idea, and that, assuming it meets all the requirements for mainnet inclusion, it could potentially be included in a network upgrade. This means the EIP may be included in client integration testnets. It is similar to "concept ACK" in other open source projects, and is not sufficient to result in deployment to mainnet.

**Client Integration Testnets**: Short-lived integration testnets which are stood up to test cross-client implementations of certain EIPs. This does not guarantee mainnet deployement, and for some EIPs with small or non-applicable changes, this step may be skipped.
**Client Integration Testnets**: Short-lived integration testnets which are stood up to test cross-client implementations of certain EIPs. This does not guarantee mainnet deployment, and for some EIPs with small or non-applicable changes, this step may be skipped.

**Mainnet**: Signals that client developers wish to include the EIP into an upgrade to the public Ethereum networks (i.e. testnets such as Goerli, Ropsten and Rinkeby and mainnet).

Expand Down Expand Up @@ -43,4 +43,4 @@ Note: by this point, your EIP should be in `Review` status.

### Deploying your EIP to Mainnet

If client developers reach rough consensus to include your EIP in a network upgrade, it will be added to a spec under the `mainnet-upgardes` folder. When the upgrade spec gets finalized (i.e. the list of EIPs is final and blocks are selected), your EIP should be moved to the `Last Call` status.
If client developers reach rough consensus to include your EIP in a network upgrade, it will be added to a spec under the `mainnet-upgrades` folder. When the upgrade spec gets finalized (i.e. the list of EIPs is final and blocks are selected), your EIP should be moved to the `Last Call` status.
6 changes: 3 additions & 3 deletions network-upgrades/mainnet-upgrades/cancun.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Execution layer changes included in the Network Upgrade.
|---------|--------------|-------------------------|--------------| ------------------ |
| Goerli | `1705473120` | 2024-01-17 06:32:00 | `0x70cc14e2` | 231680
| Sepolia | `1706655072` | 2024-01-30 22:51:12 | `0x88cf81d9` | 132608
| Holesky | `1707305664` | 2024-02-07 11:34:24. | `0x9b192ad0` | 29696
| Mainnet | | | |
| Holesky | `1707305664` | 2024-02-07 11:34:24 | `0x9b192ad0` | 29696
| Mainnet | `1710338135` | 2024-03-13 13:55:35 | `0x9f3d2254` | 269568


### Readiness Checklist
Expand All @@ -28,7 +28,7 @@ Execution layer changes included in the Network Upgrade.
- [x] [Devnets](https://github.com/ethpandaops/dencun-testnet)
- [x] [Testing suites](https://notes.ethereum.org/@ethpandaops/dencun-testing-overview)
- [x] Select Testnet Fork Blocks
- [ ] Select Mainnet Fork Block
- [x] Select Mainnet Fork Block
- [ ] Release Mainnet Compatible Clients
- [ ] Geth
- [ ] Besu
Expand Down
2 changes: 1 addition & 1 deletion network-upgrades/mainnet-upgrades/shanghai.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Changes included in the Network Upgrade.
| Goerli | `1678832736` | 3/14/2023, 10:25:36 PM | `0xf9843abf` | 162304
| Mainnet | `1681338455` | 4/12/2023, 10:27:35 PM | `0xdce96c2d` | 194048

### Implementation Progresss
### Implementation Progress

Implementation status of Included & CFI'd EIPs across participating clients.

Expand Down
2 changes: 1 addition & 1 deletion network-upgrades/retrospectives/london.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ July 22, 2021
assert sender.balance >= gasLimit * transaction.max_fee_per_gas
```

A few lines above (L207), though, `sender.balance` is modified to substract from it the transaction's amount (`sender.balance -= transaction.amount`). This led to confusion, as some client teams used the full `sender.balance` (i.e. pre-subtraction of `transaction.amount`) when checking the assertion defined on line 217, rather than the updated value.
A few lines above (L207), though, `sender.balance` is modified to subtract from it the transaction's amount (`sender.balance -= transaction.amount`). This led to confusion, as some client teams used the full `sender.balance` (i.e. pre-subtraction of `transaction.amount`) when checking the assertion defined on line 217, rather than the updated value.

One suggested fix is to move this assertion closer to when the `sender.balance` value is updated, similarly to the other assertion on line 208.

Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/arrow_glacier/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
general theory of bloom filters see e.g. `Wikipedia
<https://en.wikipedia.org/wiki/Bloom_filter>`_. Bloom filters are used to allow
for efficient searching of logs by address and/or topic, by rapidly
eliminating blocks and reciepts from their search.
eliminating blocks and receipts from their search.
"""

from typing import Tuple
Expand Down
6 changes: 3 additions & 3 deletions src/ethereum/arrow_glacier/fork.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ def validate_header(header: Header, parent_header: Header) -> None:
quantities in the header should match the logic for the block itself.
For example the header timestamp should be greater than the block's parent
timestamp because the block was created *after* the parent block.
Additionally, the block's number should be directly folowing the parent
Additionally, the block's number should be directly following the parent
block's number since it is the next block in the sequence.
Parameters
Expand Down Expand Up @@ -490,7 +490,7 @@ def make_receipt(

if isinstance(tx, AccessListTransaction):
return b"\x01" + rlp.encode(receipt)
if isinstance(tx, FeeMarketTransaction):
elif isinstance(tx, FeeMarketTransaction):
return b"\x02" + rlp.encode(receipt)
else:
return receipt
Expand Down Expand Up @@ -637,7 +637,7 @@ def validate_ommers(
To be considered valid, the ommers must adhere to the rules defined in
the Ethereum protocol. The maximum amount of ommers is 2 per block and
there cannot be duplicate ommers in a block. Many of the other ommer
contraints are listed in the in-line comments of this function.
constraints are listed in the in-line comments of this function.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/arrow_glacier/vm/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def memory_read_bytes(

def buffer_read(buffer: Bytes, start_position: U256, size: U256) -> Bytes:
"""
Read bytes from a buffer. Padding with zeros if neccesary.
Read bytes from a buffer. Padding with zeros if necessary.
Parameters
----------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

def modexp(evm: Evm) -> None:
"""
Calculates `(base**exp) % modulus` for arbitary sized `base`, `exp` and.
Calculates `(base**exp) % modulus` for arbitrary sized `base`, `exp` and.
`modulus`. The return value is the same length as the modulus.
"""
data = evm.message.data
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/berlin/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
general theory of bloom filters see e.g. `Wikipedia
<https://en.wikipedia.org/wiki/Bloom_filter>`_. Bloom filters are used to allow
for efficient searching of logs by address and/or topic, by rapidly
eliminating blocks and reciepts from their search.
eliminating blocks and receipts from their search.
"""

from typing import Tuple
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/berlin/fork.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ def validate_header(header: Header, parent_header: Header) -> None:
quantities in the header should match the logic for the block itself.
For example the header timestamp should be greater than the block's parent
timestamp because the block was created *after* the parent block.
Additionally, the block's number should be directly folowing the parent
Additionally, the block's number should be directly following the parent
block's number since it is the next block in the sequence.
Parameters
Expand Down Expand Up @@ -529,7 +529,7 @@ def validate_ommers(
To be considered valid, the ommers must adhere to the rules defined in
the Ethereum protocol. The maximum amount of ommers is 2 per block and
there cannot be duplicate ommers in a block. Many of the other ommer
contraints are listed in the in-line comments of this function.
constraints are listed in the in-line comments of this function.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/berlin/vm/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def memory_read_bytes(

def buffer_read(buffer: Bytes, start_position: U256, size: U256) -> Bytes:
"""
Read bytes from a buffer. Padding with zeros if neccesary.
Read bytes from a buffer. Padding with zeros if necessary.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/berlin/vm/precompiled_contracts/modexp.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

def modexp(evm: Evm) -> None:
"""
Calculates `(base**exp) % modulus` for arbitary sized `base`, `exp` and.
Calculates `(base**exp) % modulus` for arbitrary sized `base`, `exp` and.
`modulus`. The return value is the same length as the modulus.
"""
data = evm.message.data
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/byzantium/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
general theory of bloom filters see e.g. `Wikipedia
<https://en.wikipedia.org/wiki/Bloom_filter>`_. Bloom filters are used to allow
for efficient searching of logs by address and/or topic, by rapidly
eliminating blocks and reciepts from their search.
eliminating blocks and receipts from their search.
"""

from typing import Tuple
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/byzantium/fork.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ def validate_header(header: Header, parent_header: Header) -> None:
quantities in the header should match the logic for the block itself.
For example the header timestamp should be greater than the block's parent
timestamp because the block was created *after* the parent block.
Additionally, the block's number should be directly folowing the parent
Additionally, the block's number should be directly following the parent
block's number since it is the next block in the sequence.
Parameters
Expand Down Expand Up @@ -517,7 +517,7 @@ def validate_ommers(
To be considered valid, the ommers must adhere to the rules defined in
the Ethereum protocol. The maximum amount of ommers is 2 per block and
there cannot be duplicate ommers in a block. Many of the other ommer
contraints are listed in the in-line comments of this function.
constraints are listed in the in-line comments of this function.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/byzantium/vm/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def memory_read_bytes(

def buffer_read(buffer: Bytes, start_position: U256, size: U256) -> Bytes:
"""
Read bytes from a buffer. Padding with zeros if neccesary.
Read bytes from a buffer. Padding with zeros if necessary.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/byzantium/vm/precompiled_contracts/modexp.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

def modexp(evm: Evm) -> None:
"""
Calculates `(base**exp) % modulus` for arbitary sized `base`, `exp` and.
Calculates `(base**exp) % modulus` for arbitrary sized `base`, `exp` and.
`modulus`. The return value is the same length as the modulus.
"""
data = evm.message.data
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/constantinople/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
general theory of bloom filters see e.g. `Wikipedia
<https://en.wikipedia.org/wiki/Bloom_filter>`_. Bloom filters are used to allow
for efficient searching of logs by address and/or topic, by rapidly
eliminating blocks and reciepts from their search.
eliminating blocks and receipts from their search.
"""

from typing import Tuple
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/constantinople/fork.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ def validate_header(header: Header, parent_header: Header) -> None:
quantities in the header should match the logic for the block itself.
For example the header timestamp should be greater than the block's parent
timestamp because the block was created *after* the parent block.
Additionally, the block's number should be directly folowing the parent
Additionally, the block's number should be directly following the parent
block's number since it is the next block in the sequence.
Parameters
Expand Down Expand Up @@ -518,7 +518,7 @@ def validate_ommers(
To be considered valid, the ommers must adhere to the rules defined in
the Ethereum protocol. The maximum amount of ommers is 2 per block and
there cannot be duplicate ommers in a block. Many of the other ommer
contraints are listed in the in-line comments of this function.
constraints are listed in the in-line comments of this function.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/constantinople/vm/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def memory_read_bytes(

def buffer_read(buffer: Bytes, start_position: U256, size: U256) -> Bytes:
"""
Read bytes from a buffer. Padding with zeros if neccesary.
Read bytes from a buffer. Padding with zeros if necessary.
Parameters
----------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

def modexp(evm: Evm) -> None:
"""
Calculates `(base**exp) % modulus` for arbitary sized `base`, `exp` and.
Calculates `(base**exp) % modulus` for arbitrary sized `base`, `exp` and.
`modulus`. The return value is the same length as the modulus.
"""
data = evm.message.data
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/crypto/finite_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ def deg(self: U) -> int:

def multiplicative_inverse(self: U) -> U:
"""
Calculate the multiplicative inverse. Uses the Euclidian algorithm.
Calculate the multiplicative inverse. Uses the Euclidean algorithm.
"""
x2: List[int]
p = self.PRIME
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/dao_fork/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
general theory of bloom filters see e.g. `Wikipedia
<https://en.wikipedia.org/wiki/Bloom_filter>`_. Bloom filters are used to allow
for efficient searching of logs by address and/or topic, by rapidly
eliminating blocks and reciepts from their search.
eliminating blocks and receipts from their search.
"""

from typing import Tuple
Expand Down
6 changes: 3 additions & 3 deletions src/ethereum/dao_fork/fork.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def apply_fork(old: BlockChain) -> BlockChain:
When forks need to implement an irregular state transition, this function
is used to handle the irregularity.
The DAO-Fork occured as a result of the `2016 DAO Hacks
The DAO-Fork occurred as a result of the `2016 DAO Hacks
<https://www.gemini.com/cryptopedia/the-dao-hack-makerdao>`_ in which an
unknown entity managed to drain more than 3.6 million ether causing the
price of ether to drop by nearly 35%. This fork was the solution to the
Expand Down Expand Up @@ -207,7 +207,7 @@ def validate_header(header: Header, parent_header: Header) -> None:
quantities in the header should match the logic for the block itself.
For example the header timestamp should be greater than the block's parent
timestamp because the block was created *after* the parent block.
Additionally, the block's number should be directly folowing the parent
Additionally, the block's number should be directly following the parent
block's number since it is the next block in the sequence.
Parameters
Expand Down Expand Up @@ -522,7 +522,7 @@ def validate_ommers(
To be considered valid, the ommers must adhere to the rules defined in
the Ethereum protocol. The maximum amount of ommers is 2 per block and
there cannot be duplicate ommers in a block. Many of the other ommer
contraints are listed in the in-line comments of this function.
constraints are listed in the in-line comments of this function.
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/dao_fork/vm/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def memory_read_bytes(

def buffer_read(buffer: Bytes, start_position: U256, size: U256) -> Bytes:
"""
Read bytes from a buffer. Padding with zeros if neccesary.
Read bytes from a buffer. Padding with zeros if necessary.
Parameters
----------
Expand Down
Loading

0 comments on commit bf72ed5

Please sign in to comment.