That's the thing with putting more and more code in your contract, in this case, by means of inheriting OpenZeppelin awesomely crafted ready solutions: your byte code size grows accordingly.
Here are some ways to check and overcome the problem:
- check if you really need everything you inherit
- put a higher
gasLimit
to your truffle.js
config, try gas: 7492052
, which is higher than the value in Truffle's defaults, and than in Rinkeby testnet.
- use optimizer settings to make bytecode slimmer and deploy cheaper
- if the above doesn't let you deploy and at least see your actual deploy cost, try commenting some functionality out and trying local deploy without something
- if the steps above show that you really need this much code and more, you can chop it in parts and deploy some of it as libraries or as separated contracts, one addressing another, depending on what fits you best.
Hope it helps, that's basically my own trial-and-error conspectus on the matter.