Skip to main content
Glama

OpenZeppelin Contracts MCP Server

Official
by OpenZeppelin
erc1155.test.ts.md22 kB
# Snapshot report for `src/erc1155.test.ts` The actual snapshot is saved in `erc1155.test.ts.snap`. Generated by [AVA](https://avajs.dev). ## basic > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ contract MyToken is ERC1155, Ownable {␊ constructor(address initialOwner)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ Ownable(initialOwner)␊ {}␊ ␊ function setURI(string memory newuri) public onlyOwner {␊ _setURI(newuri);␊ }␊ }␊ ` ## name is unicodeSafe > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ contract MyTokec is ERC1155, Ownable {␊ constructor(address initialOwner)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ Ownable(initialOwner)␊ {}␊ ␊ function setURI(string memory newuri) public onlyOwner {␊ _setURI(newuri);␊ }␊ }␊ ` ## basic + roles > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ ␊ contract MyToken is ERC1155, AccessControl {␊ bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");␊ ␊ constructor(address defaultAdmin)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ {␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ }␊ ␊ function setURI(string memory newuri) public onlyRole(URI_SETTER_ROLE) {␊ _setURI(newuri);␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function supportsInterface(bytes4 interfaceId)␊ public␊ view␊ override(ERC1155, AccessControl)␊ returns (bool)␊ {␊ return super.supportsInterface(interfaceId);␊ }␊ }␊ ` ## basic + managed > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ ␊ contract MyToken is ERC1155, AccessManaged {␊ constructor(address initialAuthority)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ AccessManaged(initialAuthority)␊ {}␊ ␊ function setURI(string memory newuri) public restricted {␊ _setURI(newuri);␊ }␊ }␊ ` ## no updatable uri > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ ␊ contract MyToken is ERC1155 {␊ constructor()␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ {}␊ }␊ ` ## burnable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ import {ERC1155Burnable} from "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ contract MyToken is ERC1155, Ownable, ERC1155Burnable {␊ constructor(address initialOwner)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ Ownable(initialOwner)␊ {}␊ ␊ function setURI(string memory newuri) public onlyOwner {␊ _setURI(newuri);␊ }␊ }␊ ` ## pausable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ import {ERC1155Pausable} from "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Pausable.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ contract MyToken is ERC1155, Ownable, ERC1155Pausable {␊ constructor(address initialOwner)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ Ownable(initialOwner)␊ {}␊ ␊ function setURI(string memory newuri) public onlyOwner {␊ _setURI(newuri);␊ }␊ ␊ function pause() public onlyOwner {␊ _pause();␊ }␊ ␊ function unpause() public onlyOwner {␊ _unpause();␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function _update(address from, address to, uint256[] memory ids, uint256[] memory values)␊ internal␊ override(ERC1155, ERC1155Pausable)␊ {␊ super._update(from, to, ids, values);␊ }␊ }␊ ` ## mintable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ contract MyToken is ERC1155, Ownable {␊ constructor(address initialOwner)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ Ownable(initialOwner)␊ {}␊ ␊ function setURI(string memory newuri) public onlyOwner {␊ _setURI(newuri);␊ }␊ ␊ function mint(address account, uint256 id, uint256 amount, bytes memory data)␊ public␊ onlyOwner␊ {␊ _mint(account, id, amount, data);␊ }␊ ␊ function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)␊ public␊ onlyOwner␊ {␊ _mintBatch(to, ids, amounts, data);␊ }␊ }␊ ` ## mintable + roles > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ ␊ contract MyToken is ERC1155, AccessControl {␊ bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");␊ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");␊ ␊ constructor(address defaultAdmin, address minter)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ {␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(MINTER_ROLE, minter);␊ }␊ ␊ function setURI(string memory newuri) public onlyRole(URI_SETTER_ROLE) {␊ _setURI(newuri);␊ }␊ ␊ function mint(address account, uint256 id, uint256 amount, bytes memory data)␊ public␊ onlyRole(MINTER_ROLE)␊ {␊ _mint(account, id, amount, data);␊ }␊ ␊ function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)␊ public␊ onlyRole(MINTER_ROLE)␊ {␊ _mintBatch(to, ids, amounts, data);␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function supportsInterface(bytes4 interfaceId)␊ public␊ view␊ override(ERC1155, AccessControl)␊ returns (bool)␊ {␊ return super.supportsInterface(interfaceId);␊ }␊ }␊ ` ## mintable + managed > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ ␊ contract MyToken is ERC1155, AccessManaged {␊ constructor(address initialAuthority)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ AccessManaged(initialAuthority)␊ {}␊ ␊ function setURI(string memory newuri) public restricted {␊ _setURI(newuri);␊ }␊ ␊ function mint(address account, uint256 id, uint256 amount, bytes memory data)␊ public␊ restricted␊ {␊ _mint(account, id, amount, data);␊ }␊ ␊ function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)␊ public␊ restricted␊ {␊ _mintBatch(to, ids, amounts, data);␊ }␊ }␊ ` ## supply tracking > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ import {ERC1155Supply} from "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ contract MyToken is ERC1155, Ownable, ERC1155Supply {␊ constructor(address initialOwner)␊ ERC1155("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/")␊ Ownable(initialOwner)␊ {}␊ ␊ function setURI(string memory newuri) public onlyOwner {␊ _setURI(newuri);␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function _update(address from, address to, uint256[] memory ids, uint256[] memory values)␊ internal␊ override(ERC1155, ERC1155Supply)␊ {␊ super._update(from, to, ids, values);␊ }␊ }␊ ` ## full upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ import {ERC1155BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol";␊ import {ERC1155PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol";␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, ERC1155PausableUpgradeable, ERC1155BurnableUpgradeable {␊ bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");␊ bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");␊ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");␊ ␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ constructor() {␊ _disableInitializers();␊ }␊ ␊ function initialize(address defaultAdmin, address pauser, address minter)␊ public␊ initializer␊ {␊ __ERC1155_init("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/");␊ __AccessControl_init();␊ __ERC1155Pausable_init();␊ __ERC1155Burnable_init();␊ ␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(PAUSER_ROLE, pauser);␊ _grantRole(MINTER_ROLE, minter);␊ }␊ ␊ function setURI(string memory newuri) public onlyRole(URI_SETTER_ROLE) {␊ _setURI(newuri);␊ }␊ ␊ function pause() public onlyRole(PAUSER_ROLE) {␊ _pause();␊ }␊ ␊ function unpause() public onlyRole(PAUSER_ROLE) {␊ _unpause();␊ }␊ ␊ function mint(address account, uint256 id, uint256 amount, bytes memory data)␊ public␊ onlyRole(MINTER_ROLE)␊ {␊ _mint(account, id, amount, data);␊ }␊ ␊ function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)␊ public␊ onlyRole(MINTER_ROLE)␊ {␊ _mintBatch(to, ids, amounts, data);␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function _update(address from, address to, uint256[] memory ids, uint256[] memory values)␊ internal␊ override(ERC1155Upgradeable, ERC1155PausableUpgradeable)␊ {␊ super._update(from, to, ids, values);␊ }␊ ␊ function supportsInterface(bytes4 interfaceId)␊ public␊ view␊ override(ERC1155Upgradeable, AccessControlUpgradeable)␊ returns (bool)␊ {␊ return super.supportsInterface(interfaceId);␊ }␊ }␊ ` ## full upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ import {ERC1155BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol";␊ import {ERC1155PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol";␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, ERC1155PausableUpgradeable, ERC1155BurnableUpgradeable, UUPSUpgradeable {␊ bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");␊ bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");␊ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");␊ bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");␊ ␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ constructor() {␊ _disableInitializers();␊ }␊ ␊ function initialize(address defaultAdmin, address pauser, address minter, address upgrader)␊ public␊ initializer␊ {␊ __ERC1155_init("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/");␊ __AccessControl_init();␊ __ERC1155Pausable_init();␊ __ERC1155Burnable_init();␊ __UUPSUpgradeable_init();␊ ␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(PAUSER_ROLE, pauser);␊ _grantRole(MINTER_ROLE, minter);␊ _grantRole(UPGRADER_ROLE, upgrader);␊ }␊ ␊ function setURI(string memory newuri) public onlyRole(URI_SETTER_ROLE) {␊ _setURI(newuri);␊ }␊ ␊ function pause() public onlyRole(PAUSER_ROLE) {␊ _pause();␊ }␊ ␊ function unpause() public onlyRole(PAUSER_ROLE) {␊ _unpause();␊ }␊ ␊ function mint(address account, uint256 id, uint256 amount, bytes memory data)␊ public␊ onlyRole(MINTER_ROLE)␊ {␊ _mint(account, id, amount, data);␊ }␊ ␊ function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)␊ public␊ onlyRole(MINTER_ROLE)␊ {␊ _mintBatch(to, ids, amounts, data);␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ internal␊ override␊ onlyRole(UPGRADER_ROLE)␊ {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function _update(address from, address to, uint256[] memory ids, uint256[] memory values)␊ internal␊ override(ERC1155Upgradeable, ERC1155PausableUpgradeable)␊ {␊ super._update(from, to, ids, values);␊ }␊ ␊ function supportsInterface(bytes4 interfaceId)␊ public␊ view␊ override(ERC1155Upgradeable, AccessControlUpgradeable)␊ returns (bool)␊ {␊ return super.supportsInterface(interfaceId);␊ }␊ }␊ ` ## full upgradeable transparent with managed > Snapshot 1 `// SPDX-License-Identifier: MIT␊ // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ import {ERC1155BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol";␊ import {ERC1155PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol";␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, AccessManagedUpgradeable, ERC1155PausableUpgradeable, ERC1155BurnableUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ constructor() {␊ _disableInitializers();␊ }␊ ␊ function initialize(address initialAuthority) public initializer {␊ __ERC1155_init("https://gateway.pinata.cloud/ipfs/QmcP9hxrnC1T5ATPmq2saFeAM1ypFX9BnAswCdHB9JCjLA/");␊ __AccessManaged_init(initialAuthority);␊ __ERC1155Pausable_init();␊ __ERC1155Burnable_init();␊ __UUPSUpgradeable_init();␊ }␊ ␊ function setURI(string memory newuri) public restricted {␊ _setURI(newuri);␊ }␊ ␊ function pause() public restricted {␊ _pause();␊ }␊ ␊ function unpause() public restricted {␊ _unpause();␊ }␊ ␊ function mint(address account, uint256 id, uint256 amount, bytes memory data)␊ public␊ restricted␊ {␊ _mint(account, id, amount, data);␊ }␊ ␊ function mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)␊ public␊ restricted␊ {␊ _mintBatch(to, ids, amounts, data);␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ internal␊ override␊ restricted␊ {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function _update(address from, address to, uint256[] memory ids, uint256[] memory values)␊ internal␊ override(ERC1155Upgradeable, ERC1155PausableUpgradeable)␊ {␊ super._update(from, to, ids, values);␊ }␊ }␊ `

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenZeppelin/contracts-wizard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server