# Week 9
This was by far the most productive and significant week for us and also for EIP-7928. The eip went through another set of drastic changes and this time the encoding changed to RLP and some more structural changes. We also finally was able to finish our pr for this :)
## This week's work
While [Rimeeeeee](https://github.com/Rimeeeeee) changed the existing structures in [alloy](https://github.com/Soubhik-10/alloy/pull/7). There were some dependency issues with the alloy-primitives on the reth's end but it was soon fixed. Meanwhile I started with the previously mentioned third approach ( moving some stuff to revm's AccountInfo ) in [revm](https://github.com/Soubhik-10/revm/pull/17) beacuse there were some trait issues.
With this we were able to get the changes of the block transactions. However we still needed to do the pre and post execution changes. I implemented the Beacon Root pre execution changes.
Next were the post execution changes. I implemented the post execution balance increment parts. Along with them, I implemented a couple of helper builder [fns](https://github.com/Soubhik-10/alloy/commit/1a3f774bb5cfc28ae1113030b7c72307156ccd0b) in alloy to clean up the code.
Rest of the stuff was handled by Rimeeeeee. After everything was done, we rechecked everything and compared te edge cases. Finally I wrote one tests with two simple balance transfer tx just to check if we get the expected `Block-Access-List`
These are the txs
```rust
let legacy1 = TxLegacy {
chain_id: None,
nonce: 0,
gas_price: 1,
gas_limit: 21_000,
to: TxKind::Call(address!("000000000000000000000000000000000000dead")),
value: U256::from(100_000_000_000_u64),
input: Default::default(),
};
let legacy2 = TxLegacy {
chain_id: None,
nonce: 1,
gas_price: 1,
gas_limit: 21_000,
to: TxKind::Call(address!("000000000000000000000000000000000000dead")),
value: U256::from(100_000_000_000_u64),
input: Default::default(),
};
```
And this is the output we got
```json
{
"block_access_list": {
"account_changes": [
{
"address": "0x0000000000000000000000000000000000000000",
"storage_changes": [],
"storage_reads": [],
"balance_changes": [
{
"block_access_index": 3,
"post_balance": "5000000000000000000"
}
],
"nonce_changes": [],
"code_changes": []
},
{
"address": "0x000000000000000000000000000000000000beef",
"storage_changes": [],
"storage_reads": [],
"balance_changes": [
{
"block_access_index": 0,
"post_balance": "49999899999979000"
},
{
"block_access_index": 0,
"post_balance": "49999799999958000"
}
],
"nonce_changes": [
{
"block_access_index": 0,
"new_nonce": 1
},
{
"block_access_index": 0,
"new_nonce": 2
}
],
"code_changes": []
},
{
"address": "0x000000000000000000000000000000000000dead",
"storage_changes": [],
"storage_reads": [],
"balance_changes": [
{
"block_access_index": 0,
"post_balance": "150000100000000000"
},
{
"block_access_index": 0,
"post_balance": "150000200000000000"
}
],
"nonce_changes": [],
"code_changes": []
}
]
}
}
```
However there is just one problem, The `block_access_index` is not exactly correct, need to change it in the revm today. With that our work will be more or less done. Rimeeeeee has updated the reth patch, just need to fix te rlp tests. Nerolation said that he will review our changes :)
## Next Week's work plan:
1. Fix the indexing issue
2. Fix the reth tests
3. Try out with a full block of transactions
## Resources and PRs
[New revm approach 3](https://github.com/Soubhik-10/revm/pull/17)
[Building bal in evm](https://github.com/Rimeeeeee/evm/pull/3)
[Updated EIP](https://eips.ethereum.org/EIPS/eip-7928)