Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,17 @@ N/A.
<!-- Please check off all required items. For those that don't apply remove them accordingly. -->

- [ ] All: Ran fast `tox` checks to avoid unnecessary CI fails, see also [Code Standards](https://eest.ethereum.org/main/getting_started/code_standards/) and [Enabling Pre-commit Checks](https://eest.ethereum.org/main/dev/precommit/):

```console
uvx tox -e static
```

- [ ] All: PR title adheres to the [repo standard](https://eest.ethereum.org/main/getting_started/contributing/?h=contri#commit-messages-issue-and-pr-titles) - it will be used as the squash commit message and should start `type(scope):`.
- [ ] All: Considered adding an entry to [CHANGELOG.md](/ethereum/execution-spec-tests/blob/main/docs/CHANGELOG.md).
- [ ] All: Considered updating the online docs in the [./docs/](/ethereum/execution-spec-tests/blob/main/docs/) directory.
- [ ] All: Considered updating the online docs in the [./docs/](/ethereum/execution-specs/blob/HEAD/docs/) directory.
- [ ] All: Set appropriate labels for the changes (only maintainers can apply labels).
- [ ] Tests: Ran `mkdocs serve` locally and verified the auto-generated docs for new tests in the [Test Case Reference](https://eest.ethereum.org/main/tests/) are correctly formatted.
- [ ] Tests: For PRs implementing a missed test case, update the [post-mortem document](/ethereum/execution-spec-tests/blob/main/docs/writing_tests/post_mortems.md) to add an entry the list.
- [ ] Ported Tests: All converted JSON/YML tests from [ethereum/tests](/ethereum/tests) or [tests/static](/ethereum/execution-spec-tests/blob/main/tests/static) have been assigned `@ported_from` marker.
- [ ] Tests: For PRs implementing a missed test case, update the [post-mortem document](/ethereum/execution-specs/blob/HEAD/docs/writing_tests/post_mortems.md) to add an entry the list.
- [ ] Ported Tests: All converted JSON/YML tests from [ethereum/tests](/ethereum/tests) or [tests/static](/ethereum/execution-specs/blob/HEAD/tests/static) have been assigned `@ported_from` marker.

#### Cute Animal Picture

Expand Down
56 changes: 54 additions & 2 deletions .github/configs/hive/master.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,61 @@
# Hive client configuration file with master/nightly images for CI
# Uses ethpandaops mirror for faster pulls in CI environments
# This is a Hive client configuration file that uses master/main client builds
# from the ethquokkaops / ethpandaops container registry.
#
# The latest available configurations are here:
# https://github.com/ethpandaops/eth-client-docker-image-builder/blob/master/branches.yaml

# Besu
# https://github.com/hyperledger/besu
- client: besu
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/besu
tag: main

# Erigon
# https://github.com/erigontech/erigon
- client: erigon
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/erigon
tag: main

# Ethrex
# https://github.com/lambdaclass/ethrex
- client: ethrex
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/ethrex
tag: main

# Geth (Go-Ethereum)
# https://github.com/ethereum/go-ethereum
- client: go-ethereum
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/geth
tag: master

# Nethermind
# https://github.com/NethermindEth/nethermind
- client: nethermind
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/nethermind
tag: master

# Nimbus EL
# https://github.com/status-im/nimbus-eth1
- client: nimbus-el
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/nimbus-eth1
tag: master

# Reth
# https://github.com/paradigmxyz/reth
- client: reth
nametag: default
build_args:
baseimage: docker.ethquokkaops.io/dh/ethpandaops/reth
tag: main
4 changes: 2 additions & 2 deletions EIP_AUTHORS_MANUAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@ For example, at the time of writing, the Prague Fork is still under development

#### Forks live on mainnet

The final stable specification for all forks that are currently live on mainnet are in the `master` branch.
The final stable specification for all forks that are currently live on mainnet are in the `mainnet` branch.

#### Fork under development

At any given time, there can only be one fork under active development. The branch structure for the fork under development is as follows:

- `forks/<FORK_NAME>`: The main branch for the fork under development. For example, `forks/prague` is the branch for the Prague fork. This branch will be merged into `master` after the fork has gone live on mainnet.
- `forks/<FORK_NAME>`: The main branch for the fork under development. For example, `forks/prague` is the branch for the Prague fork. This branch will be merged into `mainnet` after the fork has gone live on mainnet.
- `eips/<FORK_NAME>/<EIP_NUMBER>`: Branches for each EIP within the fork under development. For example, `eips/prague/eip-7702` is the branch for EIP-7702 for the Prague fork. This branch will be merged into `forks/prague` after the EIP has been confirmed for release in the fork.

## Writing New EIPS
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/ethash.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,8 +398,8 @@ def hashimoto_light(
dataset_size: Uint,
) -> Tuple[Bytes, Hash32]:
"""
Run the [`hashimoto`] algorithm by generating dataset item using the cache
instead of loading the full dataset into main memory.
Run the [`hashimoto`] algorithm by generating a dataset item using the
cache instead of loading the full dataset into main memory.

#### Parameters

Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class InvalidBlock(EthereumException):

class StateWithEmptyAccount(EthereumException):
"""
Thrown when the state has empty account.
Thrown when the state has an empty account.
"""


Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/forks/amsterdam/blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ class Header:

number: Uint
"""
Block number, (height) in the chain.
Block number (height) in the chain.
"""

gas_limit: Uint
Expand Down Expand Up @@ -284,7 +284,7 @@ class Block:
header: Header
"""
The block header containing metadata and cryptographic commitments. Refer
[headers] for more details on the fields included in the header.
to [headers] for more details on the fields included in the header.

[headers]: ref:ethereum.forks.amsterdam.blocks.Header
"""
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/forks/amsterdam/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Introduction
------------

This modules defines functions for calculating bloom filters of logs. For the
This module defines functions for calculating bloom filters of logs. For the
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
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/forks/amsterdam/requests.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""
Requests were introduced in EIP-7685 as a a general purpose framework for
Requests were introduced in EIP-7685 as a general purpose framework for
storing contract-triggered requests. It extends the execution header and
body with a single field each to store the request information.
This inherently exposes the requests to the consensus layer, which can
Expand Down
8 changes: 4 additions & 4 deletions src/ethereum/forks/amsterdam/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ def account_exists(state: State, address: Address) -> bool:

def account_has_code_or_nonce(state: State, address: Address) -> bool:
"""
Checks if an account has non zero nonce or non empty code.
Checks if an account has non-zero nonce or non-empty code.

Parameters
----------
Expand All @@ -415,7 +415,7 @@ def account_has_code_or_nonce(state: State, address: Address) -> bool:
Returns
-------
has_code_or_nonce : `bool`
True if the account has non zero nonce or non empty code,
True if the account has non-zero nonce or non-empty code,
False otherwise.

"""
Expand Down Expand Up @@ -551,7 +551,7 @@ def set_account_balance(state: State, address: Address, amount: U256) -> None:
Address of the account whose balance needs to be set.

amount:
The amount that needs to set in balance.
The amount that needs to be set in the balance.

"""

Expand Down Expand Up @@ -591,7 +591,7 @@ def set_code(state: State, address: Address, code: Bytes) -> None:
The current state.

address:
Address of the account whose code needs to be update.
Address of the account whose code needs to be updated.

code:
The bytecode that needs to be set.
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/forks/amsterdam/trie.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ class BranchNode:
def encode_internal_node(node: Optional[InternalNode]) -> Extended:
"""
Encodes a Merkle Trie node into its RLP form. The RLP will then be
serialized into a `Bytes` and hashed unless it is less that 32 bytes
serialized into a `Bytes` object and hashed unless it is less than 32 bytes
when serialized.

This function also accepts `None`, representing the absence of a node,
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/forks/amsterdam/vm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class BlockOutput:
receipts_trie : `ethereum.fork_types.Root`
Trie root of all the receipts in the block.
receipt_keys :
Key of all the receipts in the block.
Keys of all the receipts in the block.
block_logs : `Bloom`
Logs bloom of all the logs included in all the transactions of the
block.
Expand Down
2 changes: 0 additions & 2 deletions src/ethereum/forks/amsterdam/vm/eoa_delegation.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,8 +169,6 @@ def set_delegation(message: Message) -> U256:
----------
message :
Transaction specific items.
env :
External items required for EVM execution.

Returns
-------
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/forks/amsterdam/vm/gas.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ def calculate_message_call_gas(
account inside a message call.
call_stipend :
The amount of stipend provided to a message call to execute code while
transferring value(ETH).
transferring value (ETH).

Returns
-------
Expand Down Expand Up @@ -305,7 +305,7 @@ def init_code_cost(init_code_length: Uint) -> Uint:

def calculate_excess_blob_gas(parent_header: Header) -> U64:
"""
Calculated the excess blob gas for the current block based
Calculates the excess blob gas for the current block based
on the gas used in the parent block.

Parameters
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/forks/amsterdam/vm/instructions/arithmetic.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def sub(evm: Evm) -> None:

def mul(evm: Evm) -> None:
"""
Multiply the top two elements of the stack, and pushes the result back
Multiplies the top two elements of the stack, and pushes the result back
on the stack.

Parameters
Expand Down Expand Up @@ -353,7 +353,7 @@ def signextend(evm: Evm) -> None:
# Can't extend any further
result = value
else:
# U256(0).to_be_bytes() gives b'' instead b'\x00'.
# U256(0).to_be_bytes() gives b'' instead of b'\x00'.
value_bytes = Bytes(value.to_be_bytes32())
# Now among the obtained value bytes, consider only
# N `least significant bytes`, where N is `byte_num + 1`.
Expand Down
2 changes: 1 addition & 1 deletion src/ethereum/forks/amsterdam/vm/instructions/block.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def coinbase(evm: Evm) -> None:
def timestamp(evm: Evm) -> None:
"""
Push the current block's timestamp onto the stack. Here the timestamp
being referred is actually the unix timestamp in seconds.
being referred to is actually the unix timestamp in seconds.

Here the current block refers to the block in which the currently
executing transaction/call resides.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ def returndatasize(evm: Evm) -> None:

def returndatacopy(evm: Evm) -> None:
"""
Copies data from the return data buffer code to memory.
Copies data from the return data buffer to memory.

Parameters
----------
Expand Down
6 changes: 3 additions & 3 deletions src/ethereum/forks/amsterdam/vm/instructions/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def mstore8(evm: Evm) -> None:

def mload(evm: Evm) -> None:
"""
Load word from memory.
Loads a word from memory.

Parameters
----------
Expand Down Expand Up @@ -123,7 +123,7 @@ def mload(evm: Evm) -> None:

def msize(evm: Evm) -> None:
"""
Push the size of active memory in bytes onto the stack.
Pushes the size of active memory in bytes onto the stack.

Parameters
----------
Expand All @@ -146,7 +146,7 @@ def msize(evm: Evm) -> None:

def mcopy(evm: Evm) -> None:
"""
Copy the bytes in memory from one location to another.
Copies the bytes in memory from one location to another.

Parameters
----------
Expand Down
8 changes: 4 additions & 4 deletions src/ethereum/forks/amsterdam/vm/instructions/stack.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

def pop(evm: Evm) -> None:
"""
Remove item from stack.
Removes an item from the stack.

Parameters
----------
Expand All @@ -46,7 +46,7 @@ def pop(evm: Evm) -> None:

def push_n(evm: Evm, num_bytes: int) -> None:
"""
Pushes a N-byte immediate onto the stack. Push zero if num_bytes is zero.
Pushes an N-byte immediate onto the stack. Push zero if num_bytes is zero.

Parameters
----------
Expand Down Expand Up @@ -79,7 +79,7 @@ def push_n(evm: Evm, num_bytes: int) -> None:

def dup_n(evm: Evm, item_number: int) -> None:
"""
Duplicate the Nth stack item (from top of the stack) to the top of stack.
Duplicates the Nth stack item (from top of the stack) to the top of stack.

Parameters
----------
Expand Down Expand Up @@ -107,7 +107,7 @@ def dup_n(evm: Evm, item_number: int) -> None:

def swap_n(evm: Evm, item_number: int) -> None:
"""
Swap the top and the `item_number` element of the stack, where
Swaps the top and the `item_number` element of the stack, where
the top of the stack is position zero.

If `item_number` is zero, this function does nothing (which should not be
Expand Down
4 changes: 2 additions & 2 deletions src/ethereum/forks/amsterdam/vm/instructions/system.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,8 @@ def create2(evm: Evm) -> None:
"""
Creates a new account with associated code.

It's similar to CREATE opcode except that the address of new account
depends on the init_code instead of the nonce of sender.
It's similar to the CREATE opcode except that the address of the new
account depends on the init_code instead of the nonce of sender.

Parameters
----------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def bls12_pairing(evm: Evm) -> None:
Raises
------
InvalidParameter
If the input length is invalid or if sub-group check fails.
If the input length is invalid or if the subgroup check fails.

"""
data = evm.message.data
Expand All @@ -54,12 +54,12 @@ def bls12_pairing(evm: Evm) -> None:
g1_slice = data[g1_start : g1_start + Uint(128)]
g1_point = bytes_to_g1(bytes(g1_slice))
if not is_inf(bls12_multiply(g1_point, curve_order)):
raise InvalidParameter("Sub-group check failed for G1 point.")
raise InvalidParameter("Subgroup check failed for G1 point.")

g2_slice = data[g2_start : g2_start + Uint(256)]
g2_point = bytes_to_g2(bytes(g2_slice))
if not is_inf(bls12_multiply(g2_point, curve_order)):
raise InvalidParameter("Sub-group check failed for G2 point.")
raise InvalidParameter("Subgroup check failed for G2 point.")

result *= pairing(g2_point, g1_point)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Introduction
------------

Implementation of the ECRECOVER precompiled contract.
Implementation of the `ECRECOVER` precompiled contract.
"""

from ethereum_types.numeric import U256
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Introduction
------------

Mapping of precompiled contracts their implementations.
Mapping of precompiled contracts to their implementations.
"""

from typing import Callable, Dict
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 arbitrary 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
Loading
Loading