Simplify store by moving code to base / other classes
See #281
Is this to go in before the release?
It's not critical but it could speed up writing test cases. It's really hard to say.
I think this change does a lot more than just simplifying the store and adds a bit of functionality so I'm keen to wait with it.
No functionality was added - i.e. the code is doing nothing that it was not doing before. The PR splits the code up into digestible pieces (into new classes) which means code is also being moved around. However we can certainly wait with this.
For instance, much complexity exists in the code relating to maintaining transactional integrity and leaving the store in a predictable state when errors occur. This is tricky due to the use of in-memory lookups that need to reflect the store state. To simplify things all of that code was moved into the CrossChainDBTransaction and ICrossChainDB classes. Serialization was restricted to the former class.
@bokobza , can we take another look at this now?