{
  "contractName": "IERC1155CreatorCore",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "ApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "DefaultRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "ExtensionApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionBlacklisted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "ExtensionRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionUnregistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "MintPermissionsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "RoyaltiesUpdated",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "blacklistExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getApproveTransfer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getExtensions",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeBps",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeRecipients",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFees",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getRoyalties",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "baseURIIdentical",
          "type": "bool"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveTransferExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "identical",
          "type": "bool"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        }
      ],
      "name": "setMintPermissions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyaltiesExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenId",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uri",
          "type": "string[]"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefix",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefixExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenExtension",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "unregisterExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintBaseNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintBaseExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintExtensionNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintExtensionExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"ApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"DefaultRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"ExtensionApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"ExtensionRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"MintPermissionsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"RoyaltiesUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"blacklistExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApproveTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExtensions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeBps\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeRecipients\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFees\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getRoyalties\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintBaseExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintBaseNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintExtensionExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintExtensionNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"baseURIIdentical\",\"type\":\"bool\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"setApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveTransferExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"identical\",\"type\":\"bool\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"}],\"name\":\"setMintPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyaltiesExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenId\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uri\",\"type\":\"string[]\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefix\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefixExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"unregisterExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Core ERC1155 creator interface\",\"kind\":\"dev\",\"methods\":{\"blacklistExtension(address)\":{\"details\":\"blacklist an extension.  Can only be called by contract owner or admin. This function will destroy all ability to reference the metadata of any tokens created by the specified extension. It will also unregister the extension if needed. Returns True if removed, False if already removed.\"},\"burn(address,uint256[],uint256[])\":{\"details\":\"burn tokens. Can only be called by token owner or approved address. On burn, calls back to the registered extension's onBurn method\"},\"getApproveTransfer()\":{\"details\":\"Get the default approve transfer contract location.\"},\"getExtensions()\":{\"details\":\"gets address of all extensions\"},\"getRoyalties(uint256)\":{\"details\":\"Get royalites of a token.  Returns list of receivers and basisPoints\"},\"mintBaseExisting(address[],uint256[],uint256[])\":{\"details\":\"batch mint existing token with no extension. Can only be called by an admin.\",\"params\":{\"amounts\":\"- Can be a single element array (all recipients get the same amount) or a multi-element array Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays Examples:    mintBaseExisting(['0x....1', '0x....2'], [1], [10])        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.        mintBaseExisting(['0x....1', '0x....2'], [1, 2], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.        mintBaseExisting(['0x....1'], [1, 2], [10, 20])        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.        mintBaseExisting(['0x....1', '0x....2'], [1], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.    \",\"to\":\"- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\",\"tokenIds\":\"- Can be a single element array (all recipients get the same token) or a multi-element array\"}},\"mintBaseNew(address[],uint256[],string[])\":{\"details\":\"mint a token with no extension. Can only be called by an admin.\",\"params\":{\"amounts\":\"- Can be a single element array (all recipients get the same amount) or a multi-element array\",\"to\":\"- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\",\"uris\":\"- If no elements, all tokens use the default uri.                   If any element is an empty string, the corresponding token uses the default uri. Requirements: If to is a multi-element array, then uris must be empty or single element array               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size               If to is a single element array, uris must be empty or the same length as amounts Examples:    mintBaseNew(['0x....1', '0x....2'], [1], [])        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.        mintBaseNew(['0x....1', '0x....2'], [1, 2], [])        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.        mintBaseNew(['0x....1'], [1, 2], [\\\"\\\", \\\"http://token2.com\\\"])        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \\\"http://token2.com\\\".    \"},\"returns\":{\"_0\":\"Returns list of tokenIds minted\"}},\"mintExtensionExisting(address[],uint256[],uint256[])\":{\"details\":\"batch mint existing token from extension. Can only be called by a registered extension.\",\"params\":{\"amounts\":\"- Can be a single element array (all recipients get the same amount) or a multi-element array Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays Examples:    mintExtensionExisting(['0x....1', '0x....2'], [1], [10])        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.        mintExtensionExisting(['0x....1', '0x....2'], [1, 2], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.        mintExtensionExisting(['0x....1'], [1, 2], [10, 20])        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.        mintExtensionExisting(['0x....1', '0x....2'], [1], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.    \",\"to\":\"- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\",\"tokenIds\":\"- Can be a single element array (all recipients get the same token) or a multi-element array\"}},\"mintExtensionNew(address[],uint256[],string[])\":{\"details\":\"mint a token from an extension. Can only be called by a registered extension.\",\"params\":{\"amounts\":\"- Can be a single element array (all recipients get the same amount) or a multi-element array\",\"to\":\"- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\",\"uris\":\"- If no elements, all tokens use the default uri.                   If any element is an empty string, the corresponding token uses the default uri. Requirements: If to is a multi-element array, then uris must be empty or single element array               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size               If to is a single element array, uris must be empty or the same length as amounts Examples:    mintExtensionNew(['0x....1', '0x....2'], [1], [])        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.        mintExtensionNew(['0x....1', '0x....2'], [1, 2], [])        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.        mintExtensionNew(['0x....1'], [1, 2], [\\\"\\\", \\\"http://token2.com\\\"])        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \\\"http://token2.com\\\".    \"},\"returns\":{\"_0\":\"Returns list of tokenIds minted\"}},\"registerExtension(address,string)\":{\"details\":\"add an extension.  Can only be called by contract owner or admin. extension address must point to a contract implementing ICreatorExtension. Returns True if newly added, False if already added.\"},\"registerExtension(address,string,bool)\":{\"details\":\"add an extension.  Can only be called by contract owner or admin. extension address must point to a contract implementing ICreatorExtension. Returns True if newly added, False if already added.\"},\"setApproveTransfer(address)\":{\"details\":\"Set the default approve transfer contract location.\"},\"setApproveTransferExtension(bool)\":{\"details\":\"Configure so transfers of tokens created by the caller (must be extension) gets approval from the extension before transferring\"},\"setBaseTokenURI(string)\":{\"details\":\"set the baseTokenURI for tokens with no extension.  Can only be called by owner/admin. For tokens with no uri configured, tokenURI will return \\\"uri+tokenId\\\"\"},\"setBaseTokenURIExtension(string)\":{\"details\":\"set the baseTokenURI of an extension.  Can only be called by extension.\"},\"setBaseTokenURIExtension(string,bool)\":{\"details\":\"set the baseTokenURI of an extension.  Can only be called by extension. For tokens with no uri configured, tokenURI will return \\\"uri+tokenId\\\"\"},\"setMintPermissions(address,address)\":{\"details\":\"set a permissions contract for an extension.  Used to control minting.\"},\"setRoyalties(address[],uint256[])\":{\"details\":\"Set default royalties\"},\"setRoyalties(uint256,address[],uint256[])\":{\"details\":\"Set royalties of a token\"},\"setRoyaltiesExtension(address,address[],uint256[])\":{\"details\":\"Set royalties of an extension\"},\"setTokenURI(uint256,string)\":{\"details\":\"set the tokenURI of a token with no extension.  Can only be called by owner/admin.\"},\"setTokenURI(uint256[],string[])\":{\"details\":\"set the tokenURI of multiple tokens with no extension.  Can only be called by owner/admin.\"},\"setTokenURIExtension(uint256,string)\":{\"details\":\"set the tokenURI of a token extension.  Can only be called by extension that minted token.\"},\"setTokenURIExtension(uint256[],string[])\":{\"details\":\"set the tokenURI of a token extension for multiple tokens.  Can only be called by extension that minted token.\"},\"setTokenURIPrefix(string)\":{\"details\":\"set the common prefix for tokens with no extension.  Can only be called by owner/admin. If configured, and a token has a uri set, tokenURI will return \\\"prefixURI+tokenURI\\\" Useful if you want to use ipfs/arweave\"},\"setTokenURIPrefixExtension(string)\":{\"details\":\"set the common prefix of an extension.  Can only be called by extension. If configured, and a token has a uri set, tokenURI will return \\\"prefixURI+tokenURI\\\" Useful if you want to use ipfs/arweave\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenExtension(uint256)\":{\"details\":\"get the extension of a given token\"},\"totalSupply(uint256)\":{\"details\":\"Total amount of tokens in with a given tokenId.\"},\"unregisterExtension(address)\":{\"details\":\"add an extension.  Can only be called by contract owner or admin. Returns True if removed, False if already removed.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/IERC1155CreatorCore.sol\":\"IERC1155CreatorCore\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC1155CreatorCore.sol\":{\"keccak256\":\"0xc91d0050b622fbb41b7516c6a8c75ab6236e6a52feab681d36fb75b8b49fc8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f045081bb40c91837c076530bb07b9f8b7fa77cbd1191748a12920f01f1678f8\",\"dweb:/ipfs/QmP5kx53wBz2eUqZV26ttYJmsHP7R9n3rF6dAbTjVPh5gL\"]},\"project:/contracts/extensions/ICreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xf61dcf7e6bc3e49e629630ad28377f079a31b154ecd0e604d1c0a51ae2a057f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fda5e6d49a47fbe347ed9198c1fff5555bd687a3a73d2a9f45d5c3a2d053e40\",\"dweb:/ipfs/QmdrLJ3rscxvpMTjdRp1FyhPtYDTDL1CCQyhFeLFuFkFXH\"]},\"project:/contracts/extensions/ICreatorExtensionTokenURI.sol\":{\"keccak256\":\"0x6c8ca804ee7dea9d78f0dacdd9233b1b75ca2b2fa517f52f0fdf6beb34780a51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a04a6f0cce2bbdb022a8125e147519c7fbaa89692c8f0cfee69a67a2956316f\",\"dweb:/ipfs/QmdUxwBEnFshm1j5FEcJctC7DbFWUznis2LaPcKR7FEZX7\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/// @author: manifold.xyz\n\nimport \"./CreatorCore.sol\";\n\n/**\n * @dev Core ERC1155 creator interface\n */\ninterface IERC1155CreatorCore is ICreatorCore {\n\n    /**\n     * @dev mint a token with no extension. Can only be called by an admin.\n     *\n     * @param to       - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n     * @param amounts  - Can be a single element array (all recipients get the same amount) or a multi-element array\n     * @param uris     - If no elements, all tokens use the default uri.\n     *                   If any element is an empty string, the corresponding token uses the default uri.\n     *\n     *\n     * Requirements: If to is a multi-element array, then uris must be empty or single element array\n     *               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size\n     *               If to is a single element array, uris must be empty or the same length as amounts\n     *\n     * Examples:\n     *    mintBaseNew(['0x....1', '0x....2'], [1], [])\n     *        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.\n     *    \n     *    mintBaseNew(['0x....1', '0x....2'], [1, 2], [])\n     *        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.\n     *    \n     *    mintBaseNew(['0x....1'], [1, 2], [\"\", \"http://token2.com\"])\n     *        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \"http://token2.com\".\n     *    \n     * @return Returns list of tokenIds minted\n     */\n    function mintBaseNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) external returns (uint256[] memory);\n\n    /**\n     * @dev batch mint existing token with no extension. Can only be called by an admin.\n     *\n     * @param to        - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n     * @param tokenIds  - Can be a single element array (all recipients get the same token) or a multi-element array\n     * @param amounts   - Can be a single element array (all recipients get the same amount) or a multi-element array\n     *\n     * Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays\n     *\n     * Examples:\n     *    mintBaseExisting(['0x....1', '0x....2'], [1], [10])\n     *        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.\n     *    \n     *    mintBaseExisting(['0x....1', '0x....2'], [1, 2], [10, 20])\n     *        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.\n     *    \n     *    mintBaseExisting(['0x....1'], [1, 2], [10, 20])\n     *        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.\n     *    \n     *    mintBaseExisting(['0x....1', '0x....2'], [1], [10, 20])\n     *        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.\n     *    \n     */\n    function mintBaseExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) external;\n\n    /**\n     * @dev mint a token from an extension. Can only be called by a registered extension.\n     *\n     * @param to       - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n     * @param amounts  - Can be a single element array (all recipients get the same amount) or a multi-element array\n     * @param uris     - If no elements, all tokens use the default uri.\n     *                   If any element is an empty string, the corresponding token uses the default uri.\n     *\n     *\n     * Requirements: If to is a multi-element array, then uris must be empty or single element array\n     *               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size\n     *               If to is a single element array, uris must be empty or the same length as amounts\n     *\n     * Examples:\n     *    mintExtensionNew(['0x....1', '0x....2'], [1], [])\n     *        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.\n     *    \n     *    mintExtensionNew(['0x....1', '0x....2'], [1, 2], [])\n     *        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.\n     *    \n     *    mintExtensionNew(['0x....1'], [1, 2], [\"\", \"http://token2.com\"])\n     *        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \"http://token2.com\".\n     *    \n     * @return Returns list of tokenIds minted\n     */\n    function mintExtensionNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) external returns (uint256[] memory);\n\n    /**\n     * @dev batch mint existing token from extension. Can only be called by a registered extension.\n     *\n     * @param to        - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n     * @param tokenIds  - Can be a single element array (all recipients get the same token) or a multi-element array\n     * @param amounts   - Can be a single element array (all recipients get the same amount) or a multi-element array\n     *\n     * Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays\n     *\n     * Examples:\n     *    mintExtensionExisting(['0x....1', '0x....2'], [1], [10])\n     *        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.\n     *    \n     *    mintExtensionExisting(['0x....1', '0x....2'], [1, 2], [10, 20])\n     *        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.\n     *    \n     *    mintExtensionExisting(['0x....1'], [1, 2], [10, 20])\n     *        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.\n     *    \n     *    mintExtensionExisting(['0x....1', '0x....2'], [1], [10, 20])\n     *        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.\n     *    \n     */\n    function mintExtensionExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) external;\n\n    /**\n     * @dev burn tokens. Can only be called by token owner or approved address.\n     * On burn, calls back to the registered extension's onBurn method\n     */\n    function burn(address account, uint256[] calldata tokenIds, uint256[] calldata amounts) external;\n\n    /**\n     * @dev Total amount of tokens in with a given tokenId.\n     */\n    function totalSupply(uint256 tokenId) external view returns (uint256);\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/core/IERC1155CreatorCore.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/IERC1155CreatorCore.sol",
    "exportedSymbols": {
      "AddressUpgradeable": [
        1002
      ],
      "CreatorCore": [
        13473
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC165": [
        2338
      ],
      "Math": [
        3203
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 15283,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 15199,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:37"
      },
      {
        "absolutePath": "project:/contracts/core/CreatorCore.sol",
        "file": "./CreatorCore.sol",
        "id": 15200,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 15283,
        "sourceUnit": 13474,
        "src": "85:27:37",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 15202,
              "name": "ICreatorCore",
              "nameLocations": [
                "194:12:37"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15197,
              "src": "194:12:37"
            },
            "id": 15203,
            "nodeType": "InheritanceSpecifier",
            "src": "194:12:37"
          }
        ],
        "canonicalName": "IERC1155CreatorCore",
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": {
          "id": 15201,
          "nodeType": "StructuredDocumentation",
          "src": "114:46:37",
          "text": " @dev Core ERC1155 creator interface"
        },
        "fullyImplemented": false,
        "id": 15282,
        "linearizedBaseContracts": [
          15282,
          15197,
          2338
        ],
        "name": "IERC1155CreatorCore",
        "nameLocation": "171:19:37",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "documentation": {
              "id": 15204,
              "nodeType": "StructuredDocumentation",
              "src": "214:1548:37",
              "text": " @dev mint a token with no extension. Can only be called by an admin.\n @param to       - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n @param amounts  - Can be a single element array (all recipients get the same amount) or a multi-element array\n @param uris     - If no elements, all tokens use the default uri.\n                   If any element is an empty string, the corresponding token uses the default uri.\n Requirements: If to is a multi-element array, then uris must be empty or single element array\n               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size\n               If to is a single element array, uris must be empty or the same length as amounts\n Examples:\n    mintBaseNew(['0x....1', '0x....2'], [1], [])\n        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.\n    \n    mintBaseNew(['0x....1', '0x....2'], [1, 2], [])\n        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.\n    \n    mintBaseNew(['0x....1'], [1, 2], [\"\", \"http://token2.com\"])\n        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \"http://token2.com\".\n    \n @return Returns list of tokenIds minted"
            },
            "functionSelector": "feeb5a9a",
            "id": 15219,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mintBaseNew",
            "nameLocation": "1776:11:37",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15207,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1807:2:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15219,
                  "src": "1788:21:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15205,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1788:7:37",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15206,
                    "nodeType": "ArrayTypeName",
                    "src": "1788:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15210,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1830:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15219,
                  "src": "1811:26:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15208,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1811:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15209,
                    "nodeType": "ArrayTypeName",
                    "src": "1811:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15213,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "1857:4:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15219,
                  "src": "1839:22:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15211,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "1839:6:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 15212,
                    "nodeType": "ArrayTypeName",
                    "src": "1839:8:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1787:75:37"
            },
            "returnParameters": {
              "id": 15218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15217,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 15219,
                  "src": "1881:16:37",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15215,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1881:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15216,
                    "nodeType": "ArrayTypeName",
                    "src": "1881:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1880:18:37"
            },
            "scope": 15282,
            "src": "1767:132:37",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 15220,
              "nodeType": "StructuredDocumentation",
              "src": "1905:1259:37",
              "text": " @dev batch mint existing token with no extension. Can only be called by an admin.\n @param to        - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n @param tokenIds  - Can be a single element array (all recipients get the same token) or a multi-element array\n @param amounts   - Can be a single element array (all recipients get the same amount) or a multi-element array\n Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays\n Examples:\n    mintBaseExisting(['0x....1', '0x....2'], [1], [10])\n        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.\n    \n    mintBaseExisting(['0x....1', '0x....2'], [1, 2], [10, 20])\n        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.\n    \n    mintBaseExisting(['0x....1'], [1, 2], [10, 20])\n        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.\n    \n    mintBaseExisting(['0x....1', '0x....2'], [1], [10, 20])\n        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.\n    "
            },
            "functionSelector": "695c96e6",
            "id": 15232,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mintBaseExisting",
            "nameLocation": "3178:16:37",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15223,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "3214:2:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15232,
                  "src": "3195:21:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15221,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3195:7:37",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15222,
                    "nodeType": "ArrayTypeName",
                    "src": "3195:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15226,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "3237:8:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15232,
                  "src": "3218:27:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15224,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3218:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15225,
                    "nodeType": "ArrayTypeName",
                    "src": "3218:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15229,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "3266:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15232,
                  "src": "3247:26:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15227,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3247:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15228,
                    "nodeType": "ArrayTypeName",
                    "src": "3247:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3194:80:37"
            },
            "returnParameters": {
              "id": 15231,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3283:0:37"
            },
            "scope": 15282,
            "src": "3169:115:37",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 15233,
              "nodeType": "StructuredDocumentation",
              "src": "3290:1577:37",
              "text": " @dev mint a token from an extension. Can only be called by a registered extension.\n @param to       - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n @param amounts  - Can be a single element array (all recipients get the same amount) or a multi-element array\n @param uris     - If no elements, all tokens use the default uri.\n                   If any element is an empty string, the corresponding token uses the default uri.\n Requirements: If to is a multi-element array, then uris must be empty or single element array\n               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size\n               If to is a single element array, uris must be empty or the same length as amounts\n Examples:\n    mintExtensionNew(['0x....1', '0x....2'], [1], [])\n        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.\n    \n    mintExtensionNew(['0x....1', '0x....2'], [1, 2], [])\n        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.\n    \n    mintExtensionNew(['0x....1'], [1, 2], [\"\", \"http://token2.com\"])\n        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \"http://token2.com\".\n    \n @return Returns list of tokenIds minted"
            },
            "functionSelector": "8c6e8472",
            "id": 15248,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mintExtensionNew",
            "nameLocation": "4881:16:37",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15236,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "4917:2:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15248,
                  "src": "4898:21:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15234,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4898:7:37",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15235,
                    "nodeType": "ArrayTypeName",
                    "src": "4898:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15239,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "4940:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15248,
                  "src": "4921:26:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15237,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4921:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15238,
                    "nodeType": "ArrayTypeName",
                    "src": "4921:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15242,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4967:4:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15248,
                  "src": "4949:22:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15240,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4949:6:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 15241,
                    "nodeType": "ArrayTypeName",
                    "src": "4949:8:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4897:75:37"
            },
            "returnParameters": {
              "id": 15247,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15246,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 15248,
                  "src": "4991:16:37",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15244,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4991:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15245,
                    "nodeType": "ArrayTypeName",
                    "src": "4991:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4990:18:37"
            },
            "scope": 15282,
            "src": "4872:137:37",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 15249,
              "nodeType": "StructuredDocumentation",
              "src": "5015:1290:37",
              "text": " @dev batch mint existing token from extension. Can only be called by a registered extension.\n @param to        - Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)\n @param tokenIds  - Can be a single element array (all recipients get the same token) or a multi-element array\n @param amounts   - Can be a single element array (all recipients get the same amount) or a multi-element array\n Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays\n Examples:\n    mintExtensionExisting(['0x....1', '0x....2'], [1], [10])\n        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.\n    \n    mintExtensionExisting(['0x....1', '0x....2'], [1, 2], [10, 20])\n        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.\n    \n    mintExtensionExisting(['0x....1'], [1, 2], [10, 20])\n        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.\n    \n    mintExtensionExisting(['0x....1', '0x....2'], [1], [10, 20])\n        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.\n    "
            },
            "functionSelector": "e6c884dc",
            "id": 15261,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mintExtensionExisting",
            "nameLocation": "6319:21:37",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15252,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6360:2:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15261,
                  "src": "6341:21:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15250,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6341:7:37",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 15251,
                    "nodeType": "ArrayTypeName",
                    "src": "6341:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15255,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6383:8:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15261,
                  "src": "6364:27:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15253,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6364:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15254,
                    "nodeType": "ArrayTypeName",
                    "src": "6364:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15258,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6412:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15261,
                  "src": "6393:26:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15256,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6393:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15257,
                    "nodeType": "ArrayTypeName",
                    "src": "6393:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6340:80:37"
            },
            "returnParameters": {
              "id": 15260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6429:0:37"
            },
            "scope": 15282,
            "src": "6310:120:37",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 15262,
              "nodeType": "StructuredDocumentation",
              "src": "6436:162:37",
              "text": " @dev burn tokens. Can only be called by token owner or approved address.\n On burn, calls back to the registered extension's onBurn method"
            },
            "functionSelector": "3db0f8ab",
            "id": 15273,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "burn",
            "nameLocation": "6612:4:37",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15264,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "6625:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15273,
                  "src": "6617:15:37",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 15263,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6617:7:37",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15267,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6653:8:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15273,
                  "src": "6634:27:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15265,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6634:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15266,
                    "nodeType": "ArrayTypeName",
                    "src": "6634:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 15270,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6682:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15273,
                  "src": "6663:26:37",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 15268,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6663:7:37",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 15269,
                    "nodeType": "ArrayTypeName",
                    "src": "6663:9:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6616:74:37"
            },
            "returnParameters": {
              "id": 15272,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6699:0:37"
            },
            "scope": 15282,
            "src": "6603:97:37",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 15274,
              "nodeType": "StructuredDocumentation",
              "src": "6706:71:37",
              "text": " @dev Total amount of tokens in with a given tokenId."
            },
            "functionSelector": "bd85b039",
            "id": 15281,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nameLocation": "6791:11:37",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 15277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15276,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "6811:7:37",
                  "nodeType": "VariableDeclaration",
                  "scope": 15281,
                  "src": "6803:15:37",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15275,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6803:7:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6802:17:37"
            },
            "returnParameters": {
              "id": 15280,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 15279,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 15281,
                  "src": "6843:7:37",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 15278,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6843:7:37",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6842:9:37"
            },
            "scope": 15282,
            "src": "6782:70:37",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 15283,
        "src": "161:6693:37",
        "usedErrors": []
      }
    ],
    "src": "33:6821:37"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.753Z",
  "devdoc": {
    "details": "Core ERC1155 creator interface",
    "kind": "dev",
    "methods": {
      "blacklistExtension(address)": {
        "details": "blacklist an extension.  Can only be called by contract owner or admin. This function will destroy all ability to reference the metadata of any tokens created by the specified extension. It will also unregister the extension if needed. Returns True if removed, False if already removed."
      },
      "burn(address,uint256[],uint256[])": {
        "details": "burn tokens. Can only be called by token owner or approved address. On burn, calls back to the registered extension's onBurn method"
      },
      "getApproveTransfer()": {
        "details": "Get the default approve transfer contract location."
      },
      "getExtensions()": {
        "details": "gets address of all extensions"
      },
      "getRoyalties(uint256)": {
        "details": "Get royalites of a token.  Returns list of receivers and basisPoints"
      },
      "mintBaseExisting(address[],uint256[],uint256[])": {
        "details": "batch mint existing token with no extension. Can only be called by an admin.",
        "params": {
          "amounts": "- Can be a single element array (all recipients get the same amount) or a multi-element array Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays Examples:    mintBaseExisting(['0x....1', '0x....2'], [1], [10])        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.        mintBaseExisting(['0x....1', '0x....2'], [1, 2], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.        mintBaseExisting(['0x....1'], [1, 2], [10, 20])        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.        mintBaseExisting(['0x....1', '0x....2'], [1], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.    ",
          "to": "- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)",
          "tokenIds": "- Can be a single element array (all recipients get the same token) or a multi-element array"
        }
      },
      "mintBaseNew(address[],uint256[],string[])": {
        "details": "mint a token with no extension. Can only be called by an admin.",
        "params": {
          "amounts": "- Can be a single element array (all recipients get the same amount) or a multi-element array",
          "to": "- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)",
          "uris": "- If no elements, all tokens use the default uri.                   If any element is an empty string, the corresponding token uses the default uri. Requirements: If to is a multi-element array, then uris must be empty or single element array               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size               If to is a single element array, uris must be empty or the same length as amounts Examples:    mintBaseNew(['0x....1', '0x....2'], [1], [])        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.        mintBaseNew(['0x....1', '0x....2'], [1, 2], [])        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.        mintBaseNew(['0x....1'], [1, 2], [\"\", \"http://token2.com\"])        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \"http://token2.com\".    "
        },
        "returns": {
          "_0": "Returns list of tokenIds minted"
        }
      },
      "mintExtensionExisting(address[],uint256[],uint256[])": {
        "details": "batch mint existing token from extension. Can only be called by a registered extension.",
        "params": {
          "amounts": "- Can be a single element array (all recipients get the same amount) or a multi-element array Requirements: If any of the parameters are multi-element arrays, they need to be the same length as other multi-element arrays Examples:    mintExtensionExisting(['0x....1', '0x....2'], [1], [10])        Mints 10 of tokenId 1 to each of '0x....1' and '0x....2'.        mintExtensionExisting(['0x....1', '0x....2'], [1, 2], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 2 to '0x....2'.        mintExtensionExisting(['0x....1'], [1, 2], [10, 20])        Mints 10 of tokenId 1 and 20 of tokenId 2 to '0x....1'.        mintExtensionExisting(['0x....1', '0x....2'], [1], [10, 20])        Mints 10 of tokenId 1 to '0x....1' and 20 of tokenId 1 to '0x....2'.    ",
          "to": "- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)",
          "tokenIds": "- Can be a single element array (all recipients get the same token) or a multi-element array"
        }
      },
      "mintExtensionNew(address[],uint256[],string[])": {
        "details": "mint a token from an extension. Can only be called by a registered extension.",
        "params": {
          "amounts": "- Can be a single element array (all recipients get the same amount) or a multi-element array",
          "to": "- Can be a single element array (all tokens go to same address) or multi-element array (single token to many recipients)",
          "uris": "- If no elements, all tokens use the default uri.                   If any element is an empty string, the corresponding token uses the default uri. Requirements: If to is a multi-element array, then uris must be empty or single element array               If to is a multi-element array, then amounts must be a single element array or a multi-element array of the same size               If to is a single element array, uris must be empty or the same length as amounts Examples:    mintExtensionNew(['0x....1', '0x....2'], [1], [])        Mints a single new token, and gives 1 each to '0x....1' and '0x....2'.  Token uses default uri.        mintExtensionNew(['0x....1', '0x....2'], [1, 2], [])        Mints a single new token, and gives 1 to '0x....1' and 2 to '0x....2'.  Token uses default uri.        mintExtensionNew(['0x....1'], [1, 2], [\"\", \"http://token2.com\"])        Mints two new tokens to '0x....1'. 1 of the first token, 2 of the second.  1st token uses default uri, second uses \"http://token2.com\".    "
        },
        "returns": {
          "_0": "Returns list of tokenIds minted"
        }
      },
      "registerExtension(address,string)": {
        "details": "add an extension.  Can only be called by contract owner or admin. extension address must point to a contract implementing ICreatorExtension. Returns True if newly added, False if already added."
      },
      "registerExtension(address,string,bool)": {
        "details": "add an extension.  Can only be called by contract owner or admin. extension address must point to a contract implementing ICreatorExtension. Returns True if newly added, False if already added."
      },
      "setApproveTransfer(address)": {
        "details": "Set the default approve transfer contract location."
      },
      "setApproveTransferExtension(bool)": {
        "details": "Configure so transfers of tokens created by the caller (must be extension) gets approval from the extension before transferring"
      },
      "setBaseTokenURI(string)": {
        "details": "set the baseTokenURI for tokens with no extension.  Can only be called by owner/admin. For tokens with no uri configured, tokenURI will return \"uri+tokenId\""
      },
      "setBaseTokenURIExtension(string)": {
        "details": "set the baseTokenURI of an extension.  Can only be called by extension."
      },
      "setBaseTokenURIExtension(string,bool)": {
        "details": "set the baseTokenURI of an extension.  Can only be called by extension. For tokens with no uri configured, tokenURI will return \"uri+tokenId\""
      },
      "setMintPermissions(address,address)": {
        "details": "set a permissions contract for an extension.  Used to control minting."
      },
      "setRoyalties(address[],uint256[])": {
        "details": "Set default royalties"
      },
      "setRoyalties(uint256,address[],uint256[])": {
        "details": "Set royalties of a token"
      },
      "setRoyaltiesExtension(address,address[],uint256[])": {
        "details": "Set royalties of an extension"
      },
      "setTokenURI(uint256,string)": {
        "details": "set the tokenURI of a token with no extension.  Can only be called by owner/admin."
      },
      "setTokenURI(uint256[],string[])": {
        "details": "set the tokenURI of multiple tokens with no extension.  Can only be called by owner/admin."
      },
      "setTokenURIExtension(uint256,string)": {
        "details": "set the tokenURI of a token extension.  Can only be called by extension that minted token."
      },
      "setTokenURIExtension(uint256[],string[])": {
        "details": "set the tokenURI of a token extension for multiple tokens.  Can only be called by extension that minted token."
      },
      "setTokenURIPrefix(string)": {
        "details": "set the common prefix for tokens with no extension.  Can only be called by owner/admin. If configured, and a token has a uri set, tokenURI will return \"prefixURI+tokenURI\" Useful if you want to use ipfs/arweave"
      },
      "setTokenURIPrefixExtension(string)": {
        "details": "set the common prefix of an extension.  Can only be called by extension. If configured, and a token has a uri set, tokenURI will return \"prefixURI+tokenURI\" Useful if you want to use ipfs/arweave"
      },
      "supportsInterface(bytes4)": {
        "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
      },
      "tokenExtension(uint256)": {
        "details": "get the extension of a given token"
      },
      "totalSupply(uint256)": {
        "details": "Total amount of tokens in with a given tokenId."
      },
      "unregisterExtension(address)": {
        "details": "add an extension.  Can only be called by contract owner or admin. Returns True if removed, False if already removed."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}