CryptoComposer
callsCryptoComposerTokenVendor
to get allowance of user to check whether they have enough balance and to transfer CCT from user to itself.
CryptoComposer
inheritsCryptoComposerNFTMinter
, which also inherits openzeppelin's ERC721.solCryptoComposerTokenVendor
also defines additional features on top ofCryptoComposerToken
which uses openzeppelin's ERC20.sol
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/access/AccessControl.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
CryptoComposerToken
isAccessControl
to grantMINTER_ROLE
toCryptoComposer
CryptoComposerTokenVendor
isOwnable
to allow only owner to set token price.CryptoComposerNFTMinter
isOwnable
to allow only owner to metadata base url.