Adds ValidatorManagerContract.solwhich serves the purpose of a validator only whitelist for functions related to submitting blocks and enablign or disabling tokens
Also split the SMT from being inherited from the RootChain.sol to just be deployed in the constructor. Same bytecode more or less however I find it to be cleaner this way with less inheritance.
Added support for multiple tokens (can have multiple ERC721s now in the same RootChain - no tests added for this yet)
The VMC can include any kind of validator related governance someone wants, i.e. number of validators, voting etc.
Additionally, if we want extra rules for validators, i.e. instead of allowing any validator to submit a block, to require them to submit in a round robin order with timeouts etc. we can do that all isolated in the VMC.
ValidatorManagerContract.sol
which serves the purpose of a validator only whitelist for functions related to submitting blocks and enablign or disabling tokensThe VMC can include any kind of validator related governance someone wants, i.e. number of validators, voting etc. Additionally, if we want extra rules for validators, i.e. instead of allowing any validator to submit a block, to require them to submit in a round robin order with timeouts etc. we can do that all isolated in the VMC.