This PR moves the rdPoS object from the Blockchain class to the State class, thus making the State entirely responsible for coordinating consensus on the network, which serves as a base for us to further solve our roadmap's current sprint tasks.
In short:
rdPoS is now entirely owned and initialized by State and completely isolated from the rest of the program, without dangling references or any kind of direct exposure to other classes (except for static members and/or functions)
Due to this, State now has wrapper functions for basically (almost) all of rdPoS' operations, as a way to maintain both classes in perfect sync - anyone that needs to request something from rdPoS must do it through State
Places like P2P::ManagerNormal, ContractManager, and others that depended on references to both State and rdPoS in their constructors (as well as their respective tests) have all been altered so only the State reference is needed now
Tests seem to be running fine on my end, but I would appreciate a thorough review before merging anyway, just for the sake of ease of mind.
This PR moves the rdPoS object from the Blockchain class to the State class, thus making the State entirely responsible for coordinating consensus on the network, which serves as a base for us to further solve our roadmap's current sprint tasks.
In short:
Tests seem to be running fine on my end, but I would appreciate a thorough review before merging anyway, just for the sake of ease of mind.