First iteration
===
This is going to be the transition function of pETHit.
For this first iteration we are going to have a funtion that given a struct storage (hashMap) and a transaction (kv pair), will update the state of the storage (adding the kv pair or updating the value of the key if already exists).
last tweaks:
- Add debug trait to ExecutionEngine. It is a good practice
- Do ExecutionEngine stateless. No need to own the db when we can have a mut reference.
Second iteration
===
Alloy was added as a dependency to the project in order to have access to a reliable production ready hashing.
In order to correctly identify transactions a hashing method was added to the struct Transaction which takes a extended clone of the tx key with a reference to the tx value and hashes it using `alloy-primitives::keccak256`. This will help as a unique id for txs. The current methods and tests were modified so it now follows this new behavior.