/* eslint-disable @typescript-eslint/no-explicit-any */
/**
 * This file was generated by scripts/codegen.ts
 *
 * Original abi file:
 * - artifacts/contracts/TokenHandler.sol/TokenHandler.json
 *
 * DO NOT EDIT MANUALLY
 */

export default {
  contractName: "TokenHandler",
  abi: [
    {
      inputs: [
        {
          internalType: "address",
          name: "caller",
          type: "address",
        },
        {
          internalType: "address",
          name: "token",
          type: "address",
        },
      ],
      name: "NotToken",
      type: "error",
    },
    {
      inputs: [],
      name: "ReentrantCall",
      type: "error",
    },
    {
      inputs: [],
      name: "TokenTransferFailed",
      type: "error",
    },
    {
      inputs: [
        {
          internalType: "uint256",
          name: "tokenManagerType",
          type: "uint256",
        },
      ],
      name: "UnsupportedTokenManagerType",
      type: "error",
    },
    {
      inputs: [
        {
          internalType: "bytes32",
          name: "tokenId",
          type: "bytes32",
        },
        {
          internalType: "address",
          name: "to",
          type: "address",
        },
        {
          internalType: "uint256",
          name: "amount",
          type: "uint256",
        },
      ],
      name: "giveToken",
      outputs: [
        {
          internalType: "uint256",
          name: "",
          type: "uint256",
        },
        {
          internalType: "address",
          name: "",
          type: "address",
        },
      ],
      stateMutability: "nonpayable",
      type: "function",
    },
    {
      inputs: [
        {
          internalType: "uint256",
          name: "tokenManagerType",
          type: "uint256",
        },
        {
          internalType: "contract ITokenManager",
          name: "tokenManager",
          type: "address",
        },
      ],
      name: "postTokenManagerDeploy",
      outputs: [],
      stateMutability: "payable",
      type: "function",
    },
    {
      inputs: [
        {
          internalType: "bytes32",
          name: "tokenId",
          type: "bytes32",
        },
        {
          internalType: "bool",
          name: "tokenOnly",
          type: "bool",
        },
        {
          internalType: "address",
          name: "from",
          type: "address",
        },
        {
          internalType: "uint256",
          name: "amount",
          type: "uint256",
        },
      ],
      name: "takeToken",
      outputs: [
        {
          internalType: "uint256",
          name: "",
          type: "uint256",
        },
      ],
      stateMutability: "payable",
      type: "function",
    },
    {
      inputs: [
        {
          internalType: "bytes32",
          name: "tokenId",
          type: "bytes32",
        },
        {
          internalType: "address",
          name: "from",
          type: "address",
        },
        {
          internalType: "address",
          name: "to",
          type: "address",
        },
        {
          internalType: "uint256",
          name: "amount",
          type: "uint256",
        },
      ],
      name: "transferTokenFrom",
      outputs: [
        {
          internalType: "uint256",
          name: "",
          type: "uint256",
        },
        {
          internalType: "address",
          name: "",
          type: "address",
        },
      ],
      stateMutability: "nonpayable",
      type: "function",
    },
  ],
} as const;
