Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking/Deprecation Tracking Issue #3216

Open
10 of 21 tasks
holgerd77 opened this issue Jan 8, 2024 · 5 comments
Open
10 of 21 tasks

Breaking/Deprecation Tracking Issue #3216

holgerd77 opened this issue Jan 8, 2024 · 5 comments

Comments

@holgerd77
Copy link
Member

holgerd77 commented Jan 8, 2024

Tracking issue for breaking changes and deprecation tasks for an eventual round of breaking releases (roughly August/September 2024). A release round would follow the v7 releases from #2945 (Summer 2023).

Note: We have done so many additional breaking changes since this write-up (which are already completed) that it's not worth to continue to maintain or update this list. There are some remaining tasks to be extracted (in some updated form), otherwise treat this TODO list as rather outdated.

General

Browser / Bundle Size / Performance

@ethereumjs/util

  • Generally look through the bytes module and think what consistent (and eventually more length-strict) strategy we want to persue there, also regarding to the new length-specific helpers newly introduced by @gabrocheleau
  • Go through the bytes module, and related functions that accept both PrefixedHexString | string as types, and restrict the type to only accept PrefixedHexString. Addressed by refactor: restrict PrefixedHexString types #3510

@ethereumjs/common

@ethereumjs/trie

@ethereumjs/statemanager

@ethereumjs/tx

@ethereumjs/block

  •  Rename validation-hiding getValidationErrors() (and the like) in tx, block to something like isValidWithErrors()
  • Fix order of deposits in main block constructors (move before opts) - see e.g. EIP-6110: Supply Validator Deposits on Chain #3303 (executionWitness can/should likely remain where it is until Verkle is integrated)
  • Maybe we get the calcDifficultyFromHeader and cliqueSigner options out of the BlockOptions or at least better hide/encapsule this legacy stuff? Not sure.

@ethereumjs/verkle

  •  See if we can come up with a generic tree interface for both Trie and Verkle which we can put in Common (as we do for StateManager e.g.) which abstracts away to a greater extend the need for a Verkle/Trie distinction (at least for some places/usages, might also turn out to be only a subset of the functionality)
@jochem-brouwer
Copy link
Member

jochem-brouwer commented Jan 27, 2024

To align the JSON RPC names we should consider the official (?) spec for the names: https://github.com/ethereum/execution-apis/tree/main/src/eth. (And while we are doing it, check all, so also block, or eth_call methods)

@jochem-brouwer
Copy link
Member

There is something which I keep noticing, and keep getting confused about:

gasLimit -= txBaseFee
if (this.DEBUG) {
debugGas(`Subtracting base fee (${txBaseFee}) from gasLimit (-> ${gasLimit})`)
}

This is NOT the base fee as in EIP-1559, but it is the "base fee" of the transaction. This is the cost of the tx (21000) plus the data fee (depends on calldata) and extra fee if this is a CREATE transaction. However we also have this tx.getBaseFee() method (which returns this). We should definitely rename this to something else, because this is super confusing. (Will add to tx)

@jochem-brouwer
Copy link
Member

Linking #3479 (make getContractStorage not throw for non-existing accounts)

@acolytec3
Copy link
Contributor

There is something which I keep noticing, and keep getting confused about:

gasLimit -= txBaseFee
if (this.DEBUG) {
debugGas(`Subtracting base fee (${txBaseFee}) from gasLimit (-> ${gasLimit})`)
}

This is NOT the base fee as in EIP-1559, but it is the "base fee" of the transaction. This is the cost of the tx (21000) plus the data fee (depends on calldata) and extra fee if this is a CREATE transaction. However we also have this tx.getBaseFee() method (which returns this). We should definitely rename this to something else, because this is super confusing. (Will add to tx)

I think this is what EIPs usually refer to as intrinsic gas or something like that. That name isn't any more obvious but at least if we use that term, it would align us with broader core dev usage.

@jochem-brouwer
Copy link
Member

Ok, I will open a PR to make these terms more clear :) I'll check the EIPs what terms they use but I think I indeed remember instrinsic gas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants