# EPF6 - Week 18&19 Updates
## Summary
1. Finalized Generalized Indices calculation PR
2. PR for Merkle Proofs generation
## Details
### 1. Finalized Generalized Indices calculation PR
Final changes to [PR SSZ-QL: calculate generalized indices for elements #15873
](https://github.com/OffchainLabs/prysm/pull/15873). This PR introduced:
- a function `GetGeneralizedIndexFromPath`. This functions "walks" the path within any arbitrary SSZ Info object, returning the Generalized Index of the given path.
- helper functions inspired in [SSZ Consensus Layer spec](https://github.com/ethereum/consensus-specs/blob/dev/ssz/merkle-proofs.md#ssz-object-to-index):
- `getChunkCount`, `itemLength` or `nextPowerOfTwo`.
- other helpers to interact with the SszInfo object, `getContainerFieldByName`.
The `GetGeneralizedIndexFromPath` has been refactored several times for the sake of clarity. It ended up with a clear loop in which switch-case clause dispatches each different field type (except from arrays `length` field).
This PR also contains multiple tests covering all the different edge cases.
### 2. Merkle Proofs generation
During these weeks, I conducted a review of the Merkle Proofs state in Prysm and Go libraries. In short, these are the thoughts:
*Delegate all this logic to FastSSZ library*, following the same approach as for `HashTreeRoot`and `SizeSSZ`. We need to use `GetTree()` to generate the merkle tree of a given data type.
To be able to use this approach all the SSZ types need the HashTreeRootWith function, that allows to "record" the hashes from all the different nodes, enabling the later computation of the Merkle (multi)proofs.
This will be extended in the coming weeks.
### Next steps
- Conclude the Merkle Proofs review and implement it.
- Add a PR to complete `ParsePath` checks.