[
  {
    "type": "function",
    "name": "decodeAndRecoverDelegatedTokenSetup",
    "inputs": [
      {
        "name": "premintConfigEncoded",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "premintVersion",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "signature",
        "type": "bytes",
        "internalType": "bytes"
      },
      {
        "name": "tokenContract",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "newTokenId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "premintSignerContract",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [
      {
        "name": "params",
        "type": "tuple",
        "internalType": "struct DelegatedTokenSetup",
        "components": [
          {
            "name": "attribution",
            "type": "tuple",
            "internalType": "struct DecodedCreatorAttribution",
            "components": [
              {
                "name": "structHash",
                "type": "bytes32",
                "internalType": "bytes32"
              },
              {
                "name": "domainName",
                "type": "string",
                "internalType": "string"
              },
              {
                "name": "version",
                "type": "string",
                "internalType": "string"
              },
              {
                "name": "creator",
                "type": "address",
                "internalType": "address"
              },
              {
                "name": "signature",
                "type": "bytes",
                "internalType": "bytes"
              }
            ]
          },
          {
            "name": "uid",
            "type": "uint32",
            "internalType": "uint32"
          },
          {
            "name": "tokenURI",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "maxSupply",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "createReferral",
            "type": "address",
            "internalType": "address"
          }
        ]
      },
      {
        "name": "creatorAttribution",
        "type": "tuple",
        "internalType": "struct DecodedCreatorAttribution",
        "components": [
          {
            "name": "structHash",
            "type": "bytes32",
            "internalType": "bytes32"
          },
          {
            "name": "domainName",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "version",
            "type": "string",
            "internalType": "string"
          },
          {
            "name": "creator",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "signature",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      },
      {
        "name": "tokenSetupActions",
        "type": "bytes[]",
        "internalType": "bytes[]"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "supportedPremintSignatureVersions",
    "inputs": [],
    "outputs": [
      {
        "name": "versions",
        "type": "string[]",
        "internalType": "string[]"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "error",
    "name": "InvalidPremintVersion",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidSignature",
    "inputs": []
  },
  {
    "type": "error",
    "name": "InvalidSigner",
    "inputs": [
      {
        "name": "magicValue",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ]
  },
  {
    "type": "error",
    "name": "MintNotYetStarted",
    "inputs": []
  },
  {
    "type": "error",
    "name": "PremintDeleted",
    "inputs": []
  },
  {
    "type": "error",
    "name": "premintSignerContractFailedToRecoverSigner",
    "inputs": []
  },
  {
    "type": "error",
    "name": "premintSignerContractNotAContract",
    "inputs": []
  }
]