PrivateContractEnforcer allow to keep a contract private on top of Ethereum Requirement need open-zeppelin, and their test helpers.