// This file was autogenerated by hardhat-viem, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable

import type { Address } from "viem";
import type { AbiParameterToPrimitiveType, GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
import "@nomicfoundation/hardhat-viem/types";

export interface GenericToken$Type {
  "_format": "hh-sol-artifact-1",
  "contractName": "GenericToken",
  "sourceName": "contracts/GenericToken.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name_",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbol_",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "approver",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidApprover",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidReceiver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidSender",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "ERC20InvalidSpender",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EnforcedPause",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ExpectedPause",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523461041b5760006112bd908138038061001c81610420565b93843982016040838203126104175782516001600160401b038111610413578161004791850161045b565b602084015190936001600160401b03821161040f5761006792910161045b565b82519091906001600160401b03811161032057600354600181811c91168015610405575b602082101461030257601f81116103a2575b506020601f821160011461033f57829394829392610334575b50508160011b916000199060031b1c1916176003555b81516001600160401b03811161032057600454600181811c91168015610316575b602082101461030257601f811161029f575b50602092601f821160011461023d57928293829392610232575b50508160011b916000199060031b1c1916176004555b600554331561021e576001600160a81b0319811633600881811b610100600160a81b03169290921760055591901c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a35060025469d3c21bcecceda10000008101809111610208576002556000338152806020526040812069d3c21bcecceda100000081540190556040519069d3c21bcecceda100000082527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3604051610df690816104c78239f35b634e487b7160e01b600052601160045260246000fd5b631e4fbdf760e01b82526004829052602482fd5b015190503880610119565b601f198216936004845280842091845b868110610287575083600195961061026e575b505050811b0160045561012f565b015160001960f88460031b161c19169055388080610260565b9192602060018192868501518155019401920161024d565b600483527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102f8575b601f0160051c01905b8181106102ed57506100ff565b8381556001016102e0565b90915081906102d7565b634e487b7160e01b83526022600452602483fd5b90607f16906100ed565b634e487b7160e01b82526041600452602482fd5b0151905038806100b6565b6003835280832090601f198316845b81811061038a57509583600195969710610371575b505050811b016003556100cc565b015160001960f88460031b161c19169055388080610363565b9192602060018192868b01518155019401920161034e565b600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103fb575b601f0160051c01905b8181106103f0575061009d565b8381556001016103e3565b90915081906103da565b90607f169061008b565b8380fd5b8280fd5b5080fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761044557604052565b634e487b7160e01b600052604160045260246000fd5b81601f8201121561041b578051906001600160401b0382116104455761048a601f8301601f1916602001610420565b928284526020838301011161041b5760005b8281106104b157505060206000918301015290565b8060208092840101518282870101520161049c56fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde03146108ed57508063095ea7b3146107fc57806318160ddd146107de57806323b872dd146107a6578063313ce5671461078a5780633f4ba83a146106ea57806340c10f19146105ef57806342966c68146105d25780635c975abb146105af57806370a0823114610568578063715018a6146104e557806379cc6790146104b35780638456cb591461043b5780638da5cb5b1461040457806395d89b4114610281578063a9059cbb14610250578063dd62ed3e146101de5763f2fde38b146100e557600080fd5b346101d95760206003193601126101d9576100fe610a14565b610106610c89565b73ffffffffffffffffffffffffffffffffffffffff81169081156101aa5773ffffffffffffffffffffffffffffffffffffffff9074ffffffffffffffffffffffffffffffffffffffff006005549160081b167fffffffffffffffffffffff0000000000000000000000000000000000000000ff82161760055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600080fd5b346101d95760406003193601126101d9576101f7610a14565b73ffffffffffffffffffffffffffffffffffffffff610214610a37565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346101d95760406003193601126101d95761027661026c610a14565b6024359033610b86565b602060405160018152f35b346101d95760006003193601126101d957604051600090600454918260011c600184169384156103fa575b6020821085146103cd578394828552908160001461038b575060011461032e575b5003601f01601f191681019067ffffffffffffffff8211818310176102ff576102fb829182604052826109ca565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81831061036f5750508101602001601f196102cd565b6020919350806001915483858801015201910190918392610359565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f1990506102cd565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906102ac565b346101d95760006003193601126101d957602073ffffffffffffffffffffffffffffffffffffffff60055460081c16604051908152f35b346101d95760006003193601126101d957610454610c89565b61045c610cdb565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101d95760406003193601126101d9576104e36104cf610a14565b602435906104de823383610a5a565b610d11565b005b346101d95760006003193601126101d9576104fe610c89565b600073ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffff0000000000000000000000000000000000000000ff811660055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d95760206003193601126101d95773ffffffffffffffffffffffffffffffffffffffff610596610a14565b1660005260006020526020604060002054604051908152f35b346101d95760006003193601126101d957602060ff600554166040519015158152f35b346101d95760206003193601126101d9576104e360043533610d11565b346101d95760406003193601126101d957610608610a14565b73ffffffffffffffffffffffffffffffffffffffff60243591610629610cdb565b1680156106bb57610638610cdb565b6002549180830180931161068c576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b346101d95760006003193601126101d957610703610c89565b60055460ff811615610760577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b346101d95760006003193601126101d957602060405160128152f35b346101d95760606003193601126101d9576102766107c2610a14565b6107ca610a37565b604435916107d9833383610a5a565b610b86565b346101d95760006003193601126101d9576020600254604051908152f35b346101d95760406003193601126101d957610815610a14565b6024359033156108be5773ffffffffffffffffffffffffffffffffffffffff1690811561088f57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b346101d95760006003193601126101d957600090600354918260011c600184169384156109c0575b6020821085146103cd578394828552908160001461038b5750600114610963575003601f01601f191681019067ffffffffffffffff8211818310176102ff576102fb829182604052826109ca565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106109a45750508101602001601f196102cd565b602091935080600191548385880101520191019091839261098e565b90607f1690610915565b9190916020815282519283602083015260005b8481106109fe575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016109dd565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d957565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101d957565b73ffffffffffffffffffffffffffffffffffffffff909291921691826000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8410610ad5575b50505050565b828410610b3a5780156108be5773ffffffffffffffffffffffffffffffffffffffff82161561088f57600052600160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000209103905538808080610acf565b5073ffffffffffffffffffffffffffffffffffffffff83917ffb8f41b2000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff16908115610c5a5773ffffffffffffffffffffffffffffffffffffffff169182156106bb57610bc8610cdb565b6000828152806020526040812054828110610c275791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff60055460081c163303610cad57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b60ff60055416610ce757565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff168015610c5a57610d35610cdb565b600091818352826020526040832054818110610d8e57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b83927fe450d38c0000000000000000000000000000000000000000000000000000000060649552600452602452604452fdfea264697066735822122076102e29122e95eb365d82cb5f33c09c6ee07d8fbec8b3f7b1b080c1e3145cd864736f6c634300081b0033",
  "deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde03146108ed57508063095ea7b3146107fc57806318160ddd146107de57806323b872dd146107a6578063313ce5671461078a5780633f4ba83a146106ea57806340c10f19146105ef57806342966c68146105d25780635c975abb146105af57806370a0823114610568578063715018a6146104e557806379cc6790146104b35780638456cb591461043b5780638da5cb5b1461040457806395d89b4114610281578063a9059cbb14610250578063dd62ed3e146101de5763f2fde38b146100e557600080fd5b346101d95760206003193601126101d9576100fe610a14565b610106610c89565b73ffffffffffffffffffffffffffffffffffffffff81169081156101aa5773ffffffffffffffffffffffffffffffffffffffff9074ffffffffffffffffffffffffffffffffffffffff006005549160081b167fffffffffffffffffffffff0000000000000000000000000000000000000000ff82161760055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600080fd5b346101d95760406003193601126101d9576101f7610a14565b73ffffffffffffffffffffffffffffffffffffffff610214610a37565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346101d95760406003193601126101d95761027661026c610a14565b6024359033610b86565b602060405160018152f35b346101d95760006003193601126101d957604051600090600454918260011c600184169384156103fa575b6020821085146103cd578394828552908160001461038b575060011461032e575b5003601f01601f191681019067ffffffffffffffff8211818310176102ff576102fb829182604052826109ca565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b81831061036f5750508101602001601f196102cd565b6020919350806001915483858801015201910190918392610359565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f1990506102cd565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906102ac565b346101d95760006003193601126101d957602073ffffffffffffffffffffffffffffffffffffffff60055460081c16604051908152f35b346101d95760006003193601126101d957610454610c89565b61045c610cdb565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101d95760406003193601126101d9576104e36104cf610a14565b602435906104de823383610a5a565b610d11565b005b346101d95760006003193601126101d9576104fe610c89565b600073ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffff0000000000000000000000000000000000000000ff811660055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101d95760206003193601126101d95773ffffffffffffffffffffffffffffffffffffffff610596610a14565b1660005260006020526020604060002054604051908152f35b346101d95760006003193601126101d957602060ff600554166040519015158152f35b346101d95760206003193601126101d9576104e360043533610d11565b346101d95760406003193601126101d957610608610a14565b73ffffffffffffffffffffffffffffffffffffffff60243591610629610cdb565b1680156106bb57610638610cdb565b6002549180830180931161068c576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b346101d95760006003193601126101d957610703610c89565b60055460ff811615610760577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b346101d95760006003193601126101d957602060405160128152f35b346101d95760606003193601126101d9576102766107c2610a14565b6107ca610a37565b604435916107d9833383610a5a565b610b86565b346101d95760006003193601126101d9576020600254604051908152f35b346101d95760406003193601126101d957610815610a14565b6024359033156108be5773ffffffffffffffffffffffffffffffffffffffff1690811561088f57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b346101d95760006003193601126101d957600090600354918260011c600184169384156109c0575b6020821085146103cd578394828552908160001461038b5750600114610963575003601f01601f191681019067ffffffffffffffff8211818310176102ff576102fb829182604052826109ca565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106109a45750508101602001601f196102cd565b602091935080600191548385880101520191019091839261098e565b90607f1690610915565b9190916020815282519283602083015260005b8481106109fe575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016109dd565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d957565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101d957565b73ffffffffffffffffffffffffffffffffffffffff909291921691826000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8410610ad5575b50505050565b828410610b3a5780156108be5773ffffffffffffffffffffffffffffffffffffffff82161561088f57600052600160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000209103905538808080610acf565b5073ffffffffffffffffffffffffffffffffffffffff83917ffb8f41b2000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff16908115610c5a5773ffffffffffffffffffffffffffffffffffffffff169182156106bb57610bc8610cdb565b6000828152806020526040812054828110610c275791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff60055460081c163303610cad57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b60ff60055416610ce757565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff168015610c5a57610d35610cdb565b600091818352826020526040832054818110610d8e57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b83927fe450d38c0000000000000000000000000000000000000000000000000000000060649552600452602452604452fdfea264697066735822122076102e29122e95eb365d82cb5f33c09c6ee07d8fbec8b3f7b1b080c1e3145cd864736f6c634300081b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}

declare module "@nomicfoundation/hardhat-viem/types" {
  export function deployContract(
    contractName: "GenericToken",
    constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>],
    config?: DeployContractConfig
  ): Promise<GetContractReturnType<GenericToken$Type["abi"]>>;
  export function deployContract(
    contractName: "contracts/GenericToken.sol:GenericToken",
    constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>],
    config?: DeployContractConfig
  ): Promise<GetContractReturnType<GenericToken$Type["abi"]>>;

  export function sendDeploymentTransaction(
    contractName: "GenericToken",
    constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>],
    config?: SendDeploymentTransactionConfig
  ): Promise<{
    contract: GetContractReturnType<GenericToken$Type["abi"]>;
    deploymentTransaction: GetTransactionReturnType;
  }>;
  export function sendDeploymentTransaction(
    contractName: "contracts/GenericToken.sol:GenericToken",
    constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>],
    config?: SendDeploymentTransactionConfig
  ): Promise<{
    contract: GetContractReturnType<GenericToken$Type["abi"]>;
    deploymentTransaction: GetTransactionReturnType;
  }>;

  export function getContractAt(
    contractName: "GenericToken",
    address: Address,
    config?: GetContractAtConfig
  ): Promise<GetContractReturnType<GenericToken$Type["abi"]>>;
  export function getContractAt(
    contractName: "contracts/GenericToken.sol:GenericToken",
    address: Address,
    config?: GetContractAtConfig
  ): Promise<GetContractReturnType<GenericToken$Type["abi"]>>;
}
