You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jul 1, 2021. It is now read-only.
It doesn't appear that transaction validation in the SpuriousDragon fork (or subsequent forks) implements validation for EIP155 transactions to ensure that the encoded chain_id matches the Chain.chain_id.
How can it be fixed
It looks like we'll need a new validation mechanism at the Chain level to do this enforcement. We currently have VM.validate_transaction_against_header and State.validate_transaction. I think we should add Chain.validate_transaction_against_chain.
It looks like this will need to be called in both MiningChain.apply_transaction and Chain.build_block_with_transactions
The text was updated successfully, but these errors were encountered:
This is related to some work happening for EIP-1344 in py-evm. Time to discuss the right approach for threading the chain ID into the place it's needed (presumably ExecutionContext for 1344).
An idea from chat:
maybe a reasonable thing to do is to add a attribute like chaindb.chain_id and then pass that in as a new param to create_execution_context()
Even better if you can open a PR with [WIP] in the title so we can see the diff. No need to worry about failing tests, dirty commits, etc. People know to ignore all that on a work-in-progress.
What is wrong?
It doesn't appear that transaction validation in the SpuriousDragon fork (or subsequent forks) implements validation for EIP155 transactions to ensure that the encoded
chain_id
matches theChain.chain_id
.How can it be fixed
It looks like we'll need a new validation mechanism at the
Chain
level to do this enforcement. We currently haveVM.validate_transaction_against_header
andState.validate_transaction
. I think we should addChain.validate_transaction_against_chain
.It looks like this will need to be called in both
MiningChain.apply_transaction
andChain.build_block_with_transactions
The text was updated successfully, but these errors were encountered: