import {
  createUseReadContract,
  createUseWriteContract,
  createUseSimulateContract,
  createUseWatchContractEvent,
} from 'wagmi/codegen'

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ILSP8IdentifiableDigitalAsset
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const ilsp8IdentifiableDigitalAssetAbi = [
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValues', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8Burnable
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8BurnableAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'burn',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8BurnableInitAbstract
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8BurnableInitAbstractAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
    ],
    name: 'Initialized',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'burn',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8CappedSupply
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8CappedSupplyAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8CappedSupplyCannotMintOverCap' },
  { type: 'error', inputs: [], name: 'LSP8CappedSupplyRequired' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'tokenSupplyCap',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8CappedSupplyInitAbstract
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8CappedSupplyInitAbstractAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8CappedSupplyCannotMintOverCap' },
  { type: 'error', inputs: [], name: 'LSP8CappedSupplyRequired' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
    ],
    name: 'Initialized',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'tokenSupplyCap',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8Enumerable
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8EnumerableAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }],
    name: 'tokenAt',
    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8EnumerableInitAbstract
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8EnumerableInitAbstractAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
    ],
    name: 'Initialized',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }],
    name: 'tokenAt',
    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8IdentifiableDigitalAsset
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8IdentifiableDigitalAssetAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8IdentifiableDigitalAssetInitAbstract
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8IdentifiableDigitalAssetInitAbstractAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
    ],
    name: 'Initialized',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8Mintable
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8MintableAbi = [
  {
    type: 'constructor',
    inputs: [
      { name: 'name_', internalType: 'string', type: 'string' },
      { name: 'symbol_', internalType: 'string', type: 'string' },
      { name: 'newOwner_', internalType: 'address', type: 'address' },
      { name: 'lsp4TokenType_', internalType: 'uint256', type: 'uint256' },
      { name: 'lsp8TokenIdFormat_', internalType: 'uint256', type: 'uint256' },
    ],
    stateMutability: 'nonpayable',
  },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8TokenIdAlreadyMinted',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'mint',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8MintableInit
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8MintableInitAbi = [
  { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8TokenIdAlreadyMinted',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
    ],
    name: 'Initialized',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'name_', internalType: 'string', type: 'string' },
      { name: 'symbol_', internalType: 'string', type: 'string' },
      { name: 'newOwner_', internalType: 'address', type: 'address' },
      { name: 'lsp4TokenType_', internalType: 'uint256', type: 'uint256' },
      { name: 'lsp8TokenIdFormat_', internalType: 'uint256', type: 'uint256' },
    ],
    name: 'initialize',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'mint',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8Votes
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8VotesAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'InvalidShortString' },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'OwnableCannotSetZeroAddressAsOwner' },
  {
    type: 'error',
    inputs: [{ name: 'str', internalType: 'string', type: 'string' }],
    name: 'StringTooLong',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'delegator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'fromDelegate',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'toDelegate',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'DelegateChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'delegate',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'previousBalance',
        internalType: 'uint256',
        type: 'uint256',
        indexed: false,
      },
      {
        name: 'newBalance',
        internalType: 'uint256',
        type: 'uint256',
        indexed: false,
      },
    ],
    name: 'DelegateVotesChanged',
  },
  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [],
    name: 'CLOCK_MODE',
    outputs: [{ name: '', internalType: 'string', type: 'string' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'DOMAIN_SEPARATOR',
    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [],
    name: 'clock',
    outputs: [{ name: '', internalType: 'uint48', type: 'uint48' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'delegatee', internalType: 'address', type: 'address' }],
    name: 'delegate',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'delegatee', internalType: 'address', type: 'address' },
      { name: 'nonce', internalType: 'uint256', type: 'uint256' },
      { name: 'expiry', internalType: 'uint256', type: 'uint256' },
      { name: 'v', internalType: 'uint8', type: 'uint8' },
      { name: 'r', internalType: 'bytes32', type: 'bytes32' },
      { name: 's', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'delegateBySig',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
    name: 'delegates',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'eip712Domain',
    outputs: [
      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
      { name: 'name', internalType: 'string', type: 'string' },
      { name: 'version', internalType: 'string', type: 'string' },
      { name: 'chainId', internalType: 'uint256', type: 'uint256' },
      { name: 'verifyingContract', internalType: 'address', type: 'address' },
      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
    ],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'timepoint', internalType: 'uint256', type: 'uint256' }],
    name: 'getPastTotalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'account', internalType: 'address', type: 'address' },
      { name: 'timepoint', internalType: 'uint256', type: 'uint256' },
    ],
    name: 'getPastVotes',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
    name: 'getVotes',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
    name: 'nonces',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// LSP8VotesInitAbstract
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

export const lsp8VotesInitAbstractAbi = [
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesEmptyArray' },
  { type: 'error', inputs: [], name: 'ERC725Y_DataKeysValuesLengthMismatch' },
  { type: 'error', inputs: [], name: 'ERC725Y_MsgValueDisallowed' },
  {
    type: 'error',
    inputs: [{ name: 'storedData', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidExtensionAddress',
  },
  {
    type: 'error',
    inputs: [{ name: 'data', internalType: 'bytes', type: 'bytes' }],
    name: 'InvalidFunctionSelector',
  },
  { type: 'error', inputs: [], name: 'LSP4TokenNameNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenSymbolNotEditable' },
  { type: 'error', inputs: [], name: 'LSP4TokenTypeNotEditable' },
  {
    type: 'error',
    inputs: [{ name: 'callIndex', internalType: 'uint256', type: 'uint256' }],
    name: 'LSP8BatchCallFailed',
  },
  { type: 'error', inputs: [], name: 'LSP8CannotSendToAddressZero' },
  { type: 'error', inputs: [], name: 'LSP8CannotUseAddressZeroAsOperator' },
  { type: 'error', inputs: [], name: 'LSP8InvalidTransferBatch' },
  {
    type: 'error',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'LSP8NonExistentTokenId',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8NonExistingOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOperator',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'caller', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotTokenOwner',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverContractMissingLSP1Interface',
  },
  {
    type: 'error',
    inputs: [
      { name: 'tokenReceiver', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8NotifyTokenReceiverIsEOA',
  },
  {
    type: 'error',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8OperatorAlreadyAuthorized',
  },
  {
    type: 'error',
    inputs: [
      { name: 'caller', internalType: 'address', type: 'address' },
      { name: 'tokenOwner', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'LSP8RevokeOperatorNotAuthorized',
  },
  { type: 'error', inputs: [], name: 'LSP8TokenContractCannotHoldValue' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdFormatNotEditable' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataEmptyArray' },
  { type: 'error', inputs: [], name: 'LSP8TokenIdsDataLengthMismatch' },
  { type: 'error', inputs: [], name: 'LSP8TokenOwnerCannotBeOperator' },
  {
    type: 'error',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'oldOwner', internalType: 'address', type: 'address' },
      { name: 'newOwner', internalType: 'address', type: 'address' },
    ],
    name: 'LSP8TokenOwnerChanged',
  },
  {
    type: 'error',
    inputs: [
      { name: 'functionSelector', internalType: 'bytes4', type: 'bytes4' },
    ],
    name: 'NoExtensionFoundForFunctionSelector',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'DataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'delegator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'fromDelegate',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'toDelegate',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'DelegateChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'delegate',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'previousBalance',
        internalType: 'uint256',
        type: 'uint256',
        indexed: false,
      },
      {
        name: 'newBalance',
        internalType: 'uint256',
        type: 'uint256',
        indexed: false,
      },
    ],
    name: 'DelegateVotesChanged',
  },
  { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      { name: 'version', internalType: 'uint8', type: 'uint8', indexed: false },
    ],
    name: 'Initialized',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorAuthorizationChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'notified', internalType: 'bool', type: 'bool', indexed: false },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'OperatorRevoked',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'previousOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
      {
        name: 'newOwner',
        internalType: 'address',
        type: 'address',
        indexed: true,
      },
    ],
    name: 'OwnershipTransferred',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataKey',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      {
        name: 'dataValue',
        internalType: 'bytes',
        type: 'bytes',
        indexed: false,
      },
    ],
    name: 'TokenIdDataChanged',
  },
  {
    type: 'event',
    anonymous: false,
    inputs: [
      {
        name: 'operator',
        internalType: 'address',
        type: 'address',
        indexed: false,
      },
      { name: 'from', internalType: 'address', type: 'address', indexed: true },
      { name: 'to', internalType: 'address', type: 'address', indexed: true },
      {
        name: 'tokenId',
        internalType: 'bytes32',
        type: 'bytes32',
        indexed: true,
      },
      { name: 'force', internalType: 'bool', type: 'bool', indexed: false },
      { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false },
    ],
    name: 'Transfer',
  },
  { type: 'fallback', stateMutability: 'payable' },
  {
    type: 'function',
    inputs: [],
    name: 'CLOCK_MODE',
    outputs: [{ name: '', internalType: 'string', type: 'string' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'DOMAIN_SEPARATOR',
    outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'authorizeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'balanceOf',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }],
    name: 'batchCalls',
    outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [],
    name: 'clock',
    outputs: [{ name: '', internalType: 'uint48', type: 'uint48' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'delegatee', internalType: 'address', type: 'address' }],
    name: 'delegate',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'delegatee', internalType: 'address', type: 'address' },
      { name: 'nonce', internalType: 'uint256', type: 'uint256' },
      { name: 'expiry', internalType: 'uint256', type: 'uint256' },
      { name: 'v', internalType: 'uint8', type: 'uint8' },
      { name: 'r', internalType: 'bytes32', type: 'bytes32' },
      { name: 's', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'delegateBySig',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
    name: 'delegates',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'eip712Domain',
    outputs: [
      { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
      { name: 'name', internalType: 'string', type: 'string' },
      { name: 'version', internalType: 'string', type: 'string' },
      { name: 'chainId', internalType: 'uint256', type: 'uint256' },
      { name: 'verifyingContract', internalType: 'address', type: 'address' },
      { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
      { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
    ],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'dataKey', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getData',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatch',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
    ],
    name: 'getDataBatchForTokenIds',
    outputs: [{ name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'getDataForTokenId',
    outputs: [{ name: 'dataValue', internalType: 'bytes', type: 'bytes' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'getOperatorsOf',
    outputs: [{ name: '', internalType: 'address[]', type: 'address[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'timepoint', internalType: 'uint256', type: 'uint256' }],
    name: 'getPastTotalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'account', internalType: 'address', type: 'address' },
      { name: 'timepoint', internalType: 'uint256', type: 'uint256' },
    ],
    name: 'getPastVotes',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
    name: 'getVotes',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
    ],
    name: 'isOperatorFor',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
    name: 'nonces',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'owner',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'renounceOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'operator', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'notify', internalType: 'bool', type: 'bool' },
      {
        name: 'operatorNotificationData',
        internalType: 'bytes',
        type: 'bytes',
      },
    ],
    name: 'revokeOperator',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setData',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatch',
    outputs: [],
    stateMutability: 'payable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenIds', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataKeys', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'dataValues', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'setDataBatchForTokenIds',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataKey', internalType: 'bytes32', type: 'bytes32' },
      { name: 'dataValue', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'setDataForTokenId',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }],
    name: 'supportsInterface',
    outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenOwner', internalType: 'address', type: 'address' }],
    name: 'tokenIdsOf',
    outputs: [{ name: '', internalType: 'bytes32[]', type: 'bytes32[]' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [{ name: 'tokenId', internalType: 'bytes32', type: 'bytes32' }],
    name: 'tokenOwnerOf',
    outputs: [{ name: '', internalType: 'address', type: 'address' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [],
    name: 'totalSupply',
    outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }],
    stateMutability: 'view',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address', type: 'address' },
      { name: 'to', internalType: 'address', type: 'address' },
      { name: 'tokenId', internalType: 'bytes32', type: 'bytes32' },
      { name: 'force', internalType: 'bool', type: 'bool' },
      { name: 'data', internalType: 'bytes', type: 'bytes' },
    ],
    name: 'transfer',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [
      { name: 'from', internalType: 'address[]', type: 'address[]' },
      { name: 'to', internalType: 'address[]', type: 'address[]' },
      { name: 'tokenId', internalType: 'bytes32[]', type: 'bytes32[]' },
      { name: 'force', internalType: 'bool[]', type: 'bool[]' },
      { name: 'data', internalType: 'bytes[]', type: 'bytes[]' },
    ],
    name: 'transferBatch',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  {
    type: 'function',
    inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }],
    name: 'transferOwnership',
    outputs: [],
    stateMutability: 'nonpayable',
  },
  { type: 'receive', stateMutability: 'payable' },
] as const

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// React
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__
 */
export const useReadIlsp8IdentifiableDigitalAsset =
  /*#__PURE__*/ createUseReadContract({ abi: ilsp8IdentifiableDigitalAssetAbi })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadIlsp8IdentifiableDigitalAssetBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadIlsp8IdentifiableDigitalAssetGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadIlsp8IdentifiableDigitalAssetIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadIlsp8IdentifiableDigitalAssetTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadIlsp8IdentifiableDigitalAssetTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadIlsp8IdentifiableDigitalAssetTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__
 */
export const useWriteIlsp8IdentifiableDigitalAsset =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetGetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteIlsp8IdentifiableDigitalAssetTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__
 */
export const useSimulateIlsp8IdentifiableDigitalAsset =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetGetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateIlsp8IdentifiableDigitalAssetTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__
 */
export const useWatchIlsp8IdentifiableDigitalAssetEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: ilsp8IdentifiableDigitalAssetAbi,
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchIlsp8IdentifiableDigitalAssetOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchIlsp8IdentifiableDigitalAssetOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchIlsp8IdentifiableDigitalAssetTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link ilsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchIlsp8IdentifiableDigitalAssetTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: ilsp8IdentifiableDigitalAssetAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__
 */
export const useReadLsp8Burnable = /*#__PURE__*/ createUseReadContract({
  abi: lsp8BurnableAbi,
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8BurnableBalanceOf = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8BurnableAbi, functionName: 'balanceOf' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8BurnableGetData = /*#__PURE__*/ createUseReadContract({
  abi: lsp8BurnableAbi,
  functionName: 'getData',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8BurnableGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8BurnableGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8BurnableGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8BurnableGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8BurnableIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8BurnableOwner = /*#__PURE__*/ createUseReadContract({
  abi: lsp8BurnableAbi,
  functionName: 'owner',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8BurnableSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8BurnableTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8BurnableTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8BurnableTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__
 */
export const useWriteLsp8Burnable = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8BurnableAbi,
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8BurnableAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8BurnableBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"burn"`
 */
export const useWriteLsp8BurnableBurn = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8BurnableAbi,
  functionName: 'burn',
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8BurnableRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8BurnableRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8BurnableSetData = /*#__PURE__*/ createUseWriteContract(
  { abi: lsp8BurnableAbi, functionName: 'setData' },
)

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8BurnableSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8BurnableSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8BurnableSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8BurnableTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8BurnableTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8BurnableTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__
 */
export const useSimulateLsp8Burnable = /*#__PURE__*/ createUseSimulateContract({
  abi: lsp8BurnableAbi,
})

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8BurnableAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8BurnableBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"burn"`
 */
export const useSimulateLsp8BurnableBurn =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'burn',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8BurnableRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8BurnableRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8BurnableSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8BurnableSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8BurnableSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8BurnableSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8BurnableTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8BurnableTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8BurnableTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__
 */
export const useWatchLsp8BurnableEvent =
  /*#__PURE__*/ createUseWatchContractEvent({ abi: lsp8BurnableAbi })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8BurnableDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8BurnableOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8BurnableOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8BurnableOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8BurnableTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8BurnableTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__
 */
export const useReadLsp8BurnableInitAbstract =
  /*#__PURE__*/ createUseReadContract({ abi: lsp8BurnableInitAbstractAbi })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8BurnableInitAbstractBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8BurnableInitAbstractGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8BurnableInitAbstractGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8BurnableInitAbstractGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8BurnableInitAbstractGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8BurnableInitAbstractGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8BurnableInitAbstractIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8BurnableInitAbstractOwner =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'owner',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8BurnableInitAbstractSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8BurnableInitAbstractTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8BurnableInitAbstractTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8BurnableInitAbstractTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__
 */
export const useWriteLsp8BurnableInitAbstract =
  /*#__PURE__*/ createUseWriteContract({ abi: lsp8BurnableInitAbstractAbi })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8BurnableInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8BurnableInitAbstractBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"burn"`
 */
export const useWriteLsp8BurnableInitAbstractBurn =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'burn',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8BurnableInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8BurnableInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8BurnableInitAbstractSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8BurnableInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8BurnableInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8BurnableInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8BurnableInitAbstractTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8BurnableInitAbstractTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8BurnableInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__
 */
export const useSimulateLsp8BurnableInitAbstract =
  /*#__PURE__*/ createUseSimulateContract({ abi: lsp8BurnableInitAbstractAbi })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8BurnableInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8BurnableInitAbstractBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"burn"`
 */
export const useSimulateLsp8BurnableInitAbstractBurn =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'burn',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8BurnableInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8BurnableInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8BurnableInitAbstractSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8BurnableInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8BurnableInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8BurnableInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8BurnableInitAbstractTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8BurnableInitAbstractTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8BurnableInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8BurnableInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__
 */
export const useWatchLsp8BurnableInitAbstractEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8BurnableInitAbstractDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"Initialized"`
 */
export const useWatchLsp8BurnableInitAbstractInitializedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'Initialized',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8BurnableInitAbstractOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8BurnableInitAbstractOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8BurnableInitAbstractOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8BurnableInitAbstractTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8BurnableInitAbstractAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8BurnableInitAbstractTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8BurnableInitAbstractAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__
 */
export const useReadLsp8CappedSupply = /*#__PURE__*/ createUseReadContract({
  abi: lsp8CappedSupplyAbi,
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8CappedSupplyBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8CappedSupplyGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8CappedSupplyGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8CappedSupplyGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8CappedSupplyGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8CappedSupplyGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8CappedSupplyIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8CappedSupplyOwner = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8CappedSupplyAbi, functionName: 'owner' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8CappedSupplySupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8CappedSupplyTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8CappedSupplyTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"tokenSupplyCap"`
 */
export const useReadLsp8CappedSupplyTokenSupplyCap =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'tokenSupplyCap',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8CappedSupplyTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__
 */
export const useWriteLsp8CappedSupply = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8CappedSupplyAbi,
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8CappedSupplyAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8CappedSupplyBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8CappedSupplyRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8CappedSupplyRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8CappedSupplySetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8CappedSupplySetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8CappedSupplySetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8CappedSupplySetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8CappedSupplyTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8CappedSupplyTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8CappedSupplyTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__
 */
export const useSimulateLsp8CappedSupply =
  /*#__PURE__*/ createUseSimulateContract({ abi: lsp8CappedSupplyAbi })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8CappedSupplyAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8CappedSupplyBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8CappedSupplyRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8CappedSupplyRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8CappedSupplySetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8CappedSupplySetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8CappedSupplySetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8CappedSupplySetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8CappedSupplyTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8CappedSupplyTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8CappedSupplyTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__
 */
export const useWatchLsp8CappedSupplyEvent =
  /*#__PURE__*/ createUseWatchContractEvent({ abi: lsp8CappedSupplyAbi })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8CappedSupplyDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8CappedSupplyOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8CappedSupplyOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8CappedSupplyOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8CappedSupplyTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8CappedSupplyTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__
 */
export const useReadLsp8CappedSupplyInitAbstract =
  /*#__PURE__*/ createUseReadContract({ abi: lsp8CappedSupplyInitAbstractAbi })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8CappedSupplyInitAbstractBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8CappedSupplyInitAbstractGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8CappedSupplyInitAbstractGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8CappedSupplyInitAbstractGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8CappedSupplyInitAbstractGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8CappedSupplyInitAbstractGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8CappedSupplyInitAbstractIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8CappedSupplyInitAbstractOwner =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'owner',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8CappedSupplyInitAbstractSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8CappedSupplyInitAbstractTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8CappedSupplyInitAbstractTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"tokenSupplyCap"`
 */
export const useReadLsp8CappedSupplyInitAbstractTokenSupplyCap =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'tokenSupplyCap',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8CappedSupplyInitAbstractTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__
 */
export const useWriteLsp8CappedSupplyInitAbstract =
  /*#__PURE__*/ createUseWriteContract({ abi: lsp8CappedSupplyInitAbstractAbi })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8CappedSupplyInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8CappedSupplyInitAbstractBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8CappedSupplyInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8CappedSupplyInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8CappedSupplyInitAbstractSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8CappedSupplyInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8CappedSupplyInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8CappedSupplyInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8CappedSupplyInitAbstractTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8CappedSupplyInitAbstractTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8CappedSupplyInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__
 */
export const useSimulateLsp8CappedSupplyInitAbstract =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8CappedSupplyInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8CappedSupplyInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__
 */
export const useWatchLsp8CappedSupplyInitAbstractEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8CappedSupplyInitAbstractDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"Initialized"`
 */
export const useWatchLsp8CappedSupplyInitAbstractInitializedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'Initialized',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8CappedSupplyInitAbstractOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8CappedSupplyInitAbstractOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8CappedSupplyInitAbstractOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8CappedSupplyInitAbstractTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8CappedSupplyInitAbstractAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8CappedSupplyInitAbstractTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8CappedSupplyInitAbstractAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__
 */
export const useReadLsp8Enumerable = /*#__PURE__*/ createUseReadContract({
  abi: lsp8EnumerableAbi,
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8EnumerableBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8EnumerableGetData = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8EnumerableAbi, functionName: 'getData' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8EnumerableGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8EnumerableGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8EnumerableGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8EnumerableGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8EnumerableIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8EnumerableOwner = /*#__PURE__*/ createUseReadContract({
  abi: lsp8EnumerableAbi,
  functionName: 'owner',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8EnumerableSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"tokenAt"`
 */
export const useReadLsp8EnumerableTokenAt = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8EnumerableAbi, functionName: 'tokenAt' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8EnumerableTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8EnumerableTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8EnumerableTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__
 */
export const useWriteLsp8Enumerable = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8EnumerableAbi,
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8EnumerableAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8EnumerableBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8EnumerableRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8EnumerableRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8EnumerableSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8EnumerableSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8EnumerableSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8EnumerableSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8EnumerableTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8EnumerableTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8EnumerableTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__
 */
export const useSimulateLsp8Enumerable =
  /*#__PURE__*/ createUseSimulateContract({ abi: lsp8EnumerableAbi })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8EnumerableAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8EnumerableBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8EnumerableRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8EnumerableRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8EnumerableSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8EnumerableSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8EnumerableSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8EnumerableSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8EnumerableTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8EnumerableTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8EnumerableTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__
 */
export const useWatchLsp8EnumerableEvent =
  /*#__PURE__*/ createUseWatchContractEvent({ abi: lsp8EnumerableAbi })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8EnumerableDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8EnumerableOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8EnumerableOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8EnumerableOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8EnumerableTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8EnumerableTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__
 */
export const useReadLsp8EnumerableInitAbstract =
  /*#__PURE__*/ createUseReadContract({ abi: lsp8EnumerableInitAbstractAbi })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8EnumerableInitAbstractBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8EnumerableInitAbstractGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8EnumerableInitAbstractGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8EnumerableInitAbstractGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8EnumerableInitAbstractGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8EnumerableInitAbstractGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8EnumerableInitAbstractIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8EnumerableInitAbstractOwner =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'owner',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8EnumerableInitAbstractSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"tokenAt"`
 */
export const useReadLsp8EnumerableInitAbstractTokenAt =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'tokenAt',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8EnumerableInitAbstractTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8EnumerableInitAbstractTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8EnumerableInitAbstractTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__
 */
export const useWriteLsp8EnumerableInitAbstract =
  /*#__PURE__*/ createUseWriteContract({ abi: lsp8EnumerableInitAbstractAbi })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8EnumerableInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8EnumerableInitAbstractBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8EnumerableInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8EnumerableInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8EnumerableInitAbstractSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8EnumerableInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8EnumerableInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8EnumerableInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8EnumerableInitAbstractTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8EnumerableInitAbstractTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8EnumerableInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__
 */
export const useSimulateLsp8EnumerableInitAbstract =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8EnumerableInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8EnumerableInitAbstractBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8EnumerableInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8EnumerableInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8EnumerableInitAbstractSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8EnumerableInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8EnumerableInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8EnumerableInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8EnumerableInitAbstractTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8EnumerableInitAbstractTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8EnumerableInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8EnumerableInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__
 */
export const useWatchLsp8EnumerableInitAbstractEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8EnumerableInitAbstractDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"Initialized"`
 */
export const useWatchLsp8EnumerableInitAbstractInitializedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'Initialized',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8EnumerableInitAbstractOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8EnumerableInitAbstractOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8EnumerableInitAbstractOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8EnumerableInitAbstractTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8EnumerableInitAbstractAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8EnumerableInitAbstractTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8EnumerableInitAbstractAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__
 */
export const useReadLsp8IdentifiableDigitalAsset =
  /*#__PURE__*/ createUseReadContract({ abi: lsp8IdentifiableDigitalAssetAbi })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8IdentifiableDigitalAssetGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8IdentifiableDigitalAssetGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8IdentifiableDigitalAssetGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8IdentifiableDigitalAssetGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8IdentifiableDigitalAssetIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8IdentifiableDigitalAssetOwner =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'owner',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8IdentifiableDigitalAssetSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8IdentifiableDigitalAssetTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__
 */
export const useWriteLsp8IdentifiableDigitalAsset =
  /*#__PURE__*/ createUseWriteContract({ abi: lsp8IdentifiableDigitalAssetAbi })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8IdentifiableDigitalAssetAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8IdentifiableDigitalAssetBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8IdentifiableDigitalAssetRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8IdentifiableDigitalAssetRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8IdentifiableDigitalAssetSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8IdentifiableDigitalAssetSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8IdentifiableDigitalAssetSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8IdentifiableDigitalAssetSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8IdentifiableDigitalAssetTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8IdentifiableDigitalAssetTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8IdentifiableDigitalAssetTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__
 */
export const useSimulateLsp8IdentifiableDigitalAsset =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__
 */
export const useWatchLsp8IdentifiableDigitalAssetEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8IdentifiableDigitalAssetDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8IdentifiableDigitalAssetOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8IdentifiableDigitalAssetOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8IdentifiableDigitalAssetOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8IdentifiableDigitalAssetTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8IdentifiableDigitalAssetTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstract =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractOwner =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'owner',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8IdentifiableDigitalAssetInitAbstractTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstract =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8IdentifiableDigitalAssetInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstract =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8IdentifiableDigitalAssetInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"Initialized"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractInitializedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'Initialized',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8IdentifiableDigitalAssetInitAbstractAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8IdentifiableDigitalAssetInitAbstractTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8IdentifiableDigitalAssetInitAbstractAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__
 */
export const useReadLsp8Mintable = /*#__PURE__*/ createUseReadContract({
  abi: lsp8MintableAbi,
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8MintableBalanceOf = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8MintableAbi, functionName: 'balanceOf' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8MintableGetData = /*#__PURE__*/ createUseReadContract({
  abi: lsp8MintableAbi,
  functionName: 'getData',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8MintableGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8MintableGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8MintableGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8MintableGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8MintableIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8MintableOwner = /*#__PURE__*/ createUseReadContract({
  abi: lsp8MintableAbi,
  functionName: 'owner',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8MintableSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8MintableTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8MintableTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8MintableTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__
 */
export const useWriteLsp8Mintable = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8MintableAbi,
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8MintableAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8MintableBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"mint"`
 */
export const useWriteLsp8MintableMint = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8MintableAbi,
  functionName: 'mint',
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8MintableRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8MintableRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8MintableSetData = /*#__PURE__*/ createUseWriteContract(
  { abi: lsp8MintableAbi, functionName: 'setData' },
)

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8MintableSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8MintableSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8MintableSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8MintableTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8MintableTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8MintableTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__
 */
export const useSimulateLsp8Mintable = /*#__PURE__*/ createUseSimulateContract({
  abi: lsp8MintableAbi,
})

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8MintableAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8MintableBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"mint"`
 */
export const useSimulateLsp8MintableMint =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'mint',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8MintableRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8MintableRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8MintableSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8MintableSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8MintableSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8MintableSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8MintableTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8MintableTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8MintableTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__
 */
export const useWatchLsp8MintableEvent =
  /*#__PURE__*/ createUseWatchContractEvent({ abi: lsp8MintableAbi })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8MintableDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8MintableOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8MintableOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8MintableOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8MintableTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8MintableTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__
 */
export const useReadLsp8MintableInit = /*#__PURE__*/ createUseReadContract({
  abi: lsp8MintableInitAbi,
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8MintableInitBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8MintableInitGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8MintableInitGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8MintableInitGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8MintableInitGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8MintableInitGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8MintableInitIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8MintableInitOwner = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8MintableInitAbi, functionName: 'owner' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8MintableInitSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8MintableInitTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8MintableInitTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8MintableInitTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8MintableInitAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__
 */
export const useWriteLsp8MintableInit = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8MintableInitAbi,
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8MintableInitAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8MintableInitBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"initialize"`
 */
export const useWriteLsp8MintableInitInitialize =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'initialize',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"mint"`
 */
export const useWriteLsp8MintableInitMint =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'mint',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8MintableInitRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8MintableInitRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8MintableInitSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8MintableInitSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8MintableInitSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8MintableInitSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8MintableInitTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8MintableInitTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8MintableInitTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8MintableInitAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__
 */
export const useSimulateLsp8MintableInit =
  /*#__PURE__*/ createUseSimulateContract({ abi: lsp8MintableInitAbi })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8MintableInitAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8MintableInitBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"initialize"`
 */
export const useSimulateLsp8MintableInitInitialize =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'initialize',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"mint"`
 */
export const useSimulateLsp8MintableInitMint =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'mint',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8MintableInitRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8MintableInitRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8MintableInitSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8MintableInitSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8MintableInitSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8MintableInitSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8MintableInitTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8MintableInitTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8MintableInitTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8MintableInitAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__
 */
export const useWatchLsp8MintableInitEvent =
  /*#__PURE__*/ createUseWatchContractEvent({ abi: lsp8MintableInitAbi })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8MintableInitDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"Initialized"`
 */
export const useWatchLsp8MintableInitInitializedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'Initialized',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8MintableInitOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8MintableInitOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8MintableInitOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8MintableInitTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8MintableInitAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8MintableInitTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8MintableInitAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__
 */
export const useReadLsp8Votes = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"CLOCK_MODE"`
 */
export const useReadLsp8VotesClockMode = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'CLOCK_MODE',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"`
 */
export const useReadLsp8VotesDomainSeparator =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'DOMAIN_SEPARATOR',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8VotesBalanceOf = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'balanceOf',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"clock"`
 */
export const useReadLsp8VotesClock = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'clock',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"delegates"`
 */
export const useReadLsp8VotesDelegates = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'delegates',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"eip712Domain"`
 */
export const useReadLsp8VotesEip712Domain = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8VotesAbi, functionName: 'eip712Domain' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8VotesGetData = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'getData',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8VotesGetDataBatch = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8VotesAbi, functionName: 'getDataBatch' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8VotesGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8VotesGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8VotesGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getPastTotalSupply"`
 */
export const useReadLsp8VotesGetPastTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'getPastTotalSupply',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getPastVotes"`
 */
export const useReadLsp8VotesGetPastVotes = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8VotesAbi, functionName: 'getPastVotes' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"getVotes"`
 */
export const useReadLsp8VotesGetVotes = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'getVotes',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8VotesIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"nonces"`
 */
export const useReadLsp8VotesNonces = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'nonces',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8VotesOwner = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'owner',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8VotesSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8VotesTokenIdsOf = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'tokenIdsOf',
})

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8VotesTokenOwnerOf = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8VotesAbi, functionName: 'tokenOwnerOf' },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8VotesTotalSupply = /*#__PURE__*/ createUseReadContract({
  abi: lsp8VotesAbi,
  functionName: 'totalSupply',
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__
 */
export const useWriteLsp8Votes = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8VotesAbi,
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8VotesAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8VotesBatchCalls = /*#__PURE__*/ createUseWriteContract(
  { abi: lsp8VotesAbi, functionName: 'batchCalls' },
)

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"delegate"`
 */
export const useWriteLsp8VotesDelegate = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8VotesAbi,
  functionName: 'delegate',
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"delegateBySig"`
 */
export const useWriteLsp8VotesDelegateBySig =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'delegateBySig',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8VotesRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8VotesRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8VotesSetData = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8VotesAbi,
  functionName: 'setData',
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8VotesSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8VotesSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8VotesSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8VotesTransfer = /*#__PURE__*/ createUseWriteContract({
  abi: lsp8VotesAbi,
  functionName: 'transfer',
})

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8VotesTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8VotesTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__
 */
export const useSimulateLsp8Votes = /*#__PURE__*/ createUseSimulateContract({
  abi: lsp8VotesAbi,
})

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8VotesAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8VotesBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"delegate"`
 */
export const useSimulateLsp8VotesDelegate =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'delegate',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"delegateBySig"`
 */
export const useSimulateLsp8VotesDelegateBySig =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'delegateBySig',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8VotesRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8VotesRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8VotesSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8VotesSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8VotesSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8VotesSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8VotesTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8VotesTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8VotesTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__
 */
export const useWatchLsp8VotesEvent = /*#__PURE__*/ createUseWatchContractEvent(
  { abi: lsp8VotesAbi },
)

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8VotesDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"DelegateChanged"`
 */
export const useWatchLsp8VotesDelegateChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'DelegateChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"DelegateVotesChanged"`
 */
export const useWatchLsp8VotesDelegateVotesChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'DelegateVotesChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"EIP712DomainChanged"`
 */
export const useWatchLsp8VotesEip712DomainChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'EIP712DomainChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8VotesOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8VotesOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8VotesOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8VotesTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8VotesTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesAbi,
    eventName: 'Transfer',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__
 */
export const useReadLsp8VotesInitAbstract = /*#__PURE__*/ createUseReadContract(
  { abi: lsp8VotesInitAbstractAbi },
)

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"CLOCK_MODE"`
 */
export const useReadLsp8VotesInitAbstractClockMode =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'CLOCK_MODE',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"DOMAIN_SEPARATOR"`
 */
export const useReadLsp8VotesInitAbstractDomainSeparator =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'DOMAIN_SEPARATOR',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"balanceOf"`
 */
export const useReadLsp8VotesInitAbstractBalanceOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'balanceOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"clock"`
 */
export const useReadLsp8VotesInitAbstractClock =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'clock',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"delegates"`
 */
export const useReadLsp8VotesInitAbstractDelegates =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'delegates',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"eip712Domain"`
 */
export const useReadLsp8VotesInitAbstractEip712Domain =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'eip712Domain',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getData"`
 */
export const useReadLsp8VotesInitAbstractGetData =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getData',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getDataBatch"`
 */
export const useReadLsp8VotesInitAbstractGetDataBatch =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getDataBatch',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getDataBatchForTokenIds"`
 */
export const useReadLsp8VotesInitAbstractGetDataBatchForTokenIds =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getDataForTokenId"`
 */
export const useReadLsp8VotesInitAbstractGetDataForTokenId =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getDataForTokenId',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getOperatorsOf"`
 */
export const useReadLsp8VotesInitAbstractGetOperatorsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getOperatorsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getPastTotalSupply"`
 */
export const useReadLsp8VotesInitAbstractGetPastTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getPastTotalSupply',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getPastVotes"`
 */
export const useReadLsp8VotesInitAbstractGetPastVotes =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getPastVotes',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"getVotes"`
 */
export const useReadLsp8VotesInitAbstractGetVotes =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'getVotes',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"isOperatorFor"`
 */
export const useReadLsp8VotesInitAbstractIsOperatorFor =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'isOperatorFor',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"nonces"`
 */
export const useReadLsp8VotesInitAbstractNonces =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'nonces',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"owner"`
 */
export const useReadLsp8VotesInitAbstractOwner =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'owner',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"supportsInterface"`
 */
export const useReadLsp8VotesInitAbstractSupportsInterface =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'supportsInterface',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"tokenIdsOf"`
 */
export const useReadLsp8VotesInitAbstractTokenIdsOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'tokenIdsOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"tokenOwnerOf"`
 */
export const useReadLsp8VotesInitAbstractTokenOwnerOf =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'tokenOwnerOf',
  })

/**
 * Wraps __{@link useReadContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"totalSupply"`
 */
export const useReadLsp8VotesInitAbstractTotalSupply =
  /*#__PURE__*/ createUseReadContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'totalSupply',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__
 */
export const useWriteLsp8VotesInitAbstract =
  /*#__PURE__*/ createUseWriteContract({ abi: lsp8VotesInitAbstractAbi })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useWriteLsp8VotesInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useWriteLsp8VotesInitAbstractBatchCalls =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"delegate"`
 */
export const useWriteLsp8VotesInitAbstractDelegate =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'delegate',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"delegateBySig"`
 */
export const useWriteLsp8VotesInitAbstractDelegateBySig =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'delegateBySig',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useWriteLsp8VotesInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useWriteLsp8VotesInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useWriteLsp8VotesInitAbstractSetData =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useWriteLsp8VotesInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useWriteLsp8VotesInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useWriteLsp8VotesInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useWriteLsp8VotesInitAbstractTransfer =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useWriteLsp8VotesInitAbstractTransferBatch =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useWriteContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useWriteLsp8VotesInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseWriteContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__
 */
export const useSimulateLsp8VotesInitAbstract =
  /*#__PURE__*/ createUseSimulateContract({ abi: lsp8VotesInitAbstractAbi })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"authorizeOperator"`
 */
export const useSimulateLsp8VotesInitAbstractAuthorizeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'authorizeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"batchCalls"`
 */
export const useSimulateLsp8VotesInitAbstractBatchCalls =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'batchCalls',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"delegate"`
 */
export const useSimulateLsp8VotesInitAbstractDelegate =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'delegate',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"delegateBySig"`
 */
export const useSimulateLsp8VotesInitAbstractDelegateBySig =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'delegateBySig',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"renounceOwnership"`
 */
export const useSimulateLsp8VotesInitAbstractRenounceOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'renounceOwnership',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"revokeOperator"`
 */
export const useSimulateLsp8VotesInitAbstractRevokeOperator =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'revokeOperator',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setData"`
 */
export const useSimulateLsp8VotesInitAbstractSetData =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setData',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setDataBatch"`
 */
export const useSimulateLsp8VotesInitAbstractSetDataBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setDataBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setDataBatchForTokenIds"`
 */
export const useSimulateLsp8VotesInitAbstractSetDataBatchForTokenIds =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setDataBatchForTokenIds',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"setDataForTokenId"`
 */
export const useSimulateLsp8VotesInitAbstractSetDataForTokenId =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'setDataForTokenId',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"transfer"`
 */
export const useSimulateLsp8VotesInitAbstractTransfer =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'transfer',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"transferBatch"`
 */
export const useSimulateLsp8VotesInitAbstractTransferBatch =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'transferBatch',
  })

/**
 * Wraps __{@link useSimulateContract}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `functionName` set to `"transferOwnership"`
 */
export const useSimulateLsp8VotesInitAbstractTransferOwnership =
  /*#__PURE__*/ createUseSimulateContract({
    abi: lsp8VotesInitAbstractAbi,
    functionName: 'transferOwnership',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__
 */
export const useWatchLsp8VotesInitAbstractEvent =
  /*#__PURE__*/ createUseWatchContractEvent({ abi: lsp8VotesInitAbstractAbi })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"DataChanged"`
 */
export const useWatchLsp8VotesInitAbstractDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'DataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"DelegateChanged"`
 */
export const useWatchLsp8VotesInitAbstractDelegateChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'DelegateChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"DelegateVotesChanged"`
 */
export const useWatchLsp8VotesInitAbstractDelegateVotesChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'DelegateVotesChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"EIP712DomainChanged"`
 */
export const useWatchLsp8VotesInitAbstractEip712DomainChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'EIP712DomainChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"Initialized"`
 */
export const useWatchLsp8VotesInitAbstractInitializedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'Initialized',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"OperatorAuthorizationChanged"`
 */
export const useWatchLsp8VotesInitAbstractOperatorAuthorizationChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'OperatorAuthorizationChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"OperatorRevoked"`
 */
export const useWatchLsp8VotesInitAbstractOperatorRevokedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'OperatorRevoked',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"OwnershipTransferred"`
 */
export const useWatchLsp8VotesInitAbstractOwnershipTransferredEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'OwnershipTransferred',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"TokenIdDataChanged"`
 */
export const useWatchLsp8VotesInitAbstractTokenIdDataChangedEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'TokenIdDataChanged',
  })

/**
 * Wraps __{@link useWatchContractEvent}__ with `abi` set to __{@link lsp8VotesInitAbstractAbi}__ and `eventName` set to `"Transfer"`
 */
export const useWatchLsp8VotesInitAbstractTransferEvent =
  /*#__PURE__*/ createUseWatchContractEvent({
    abi: lsp8VotesInitAbstractAbi,
    eventName: 'Transfer',
  })
