ERC721PresetMinterPauserAutoId constructor implementation

Hi @naszam,

Welcome to the community :wave:

One option (depending on your requirements) is to deploy the Preset contract as is.

Similarly to how we can deploy the ERC20 preset: Create an ERC20 without writing Solidity, using OpenZeppelin CLI

We can copy the build artifacts and deploy using OpenZeppelin CLI (or Truffle).

Copy build artifacts

$ mkdir -p build/contracts/
$ cp node_modules/@openzeppelin/contracts/build/contracts/* build/contracts/

Deploy ERC721PresetMinterPauserAutoId

$ npx oz deploy
No contracts found to compile.
? Choose the kind of deployment regular
? Pick a network development
? Pick a contract to deploy ERC721PresetMinterPauserAutoId
? name: string: My Token
? symbol: string: MYT
? baseURI: string: https://example.com/token/
✓ Deployed instance of ERC721PresetMinterPauserAutoId
0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab 

Alternatively, if you want to build on top of the ERC721 preset you can inherit as you have done.

MyToken.sol

pragma solidity ^0.6.0;

import "@openzeppelin/contracts/presets/ERC721PresetMinterPauserAutoId.sol";

contract MyToken is ERC721PresetMinterPauserAutoId {
    constructor() public ERC721PresetMinterPauserAutoId("My Token", "MYT", "https://example.com/token/") {
    }
}
1 Like