@settlemint/solidity-token-erc20-metatx
Version:
Smart contract set to use ERC20 meta transactions in SettleMint
832 lines (826 loc) • 48.2 kB
TypeScript
// 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 GenericTokenMeta$Type {
"_format": "hh-sol-artifact-1",
"contractName": "GenericTokenMeta",
"sourceName": "contracts/GenericTokenMeta.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "address",
"name": "trustedForwarder_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ECDSAInvalidSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "ECDSAInvalidSignatureLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "ECDSAInvalidSignatureS",
"type": "error"
},
{
"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": [
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "ERC2612ExpiredSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "ERC2612InvalidSigner",
"type": "error"
},
{
"inputs": [],
"name": "EnforcedPause",
"type": "error"
},
{
"inputs": [],
"name": "ExpectedPause",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "currentNonce",
"type": "uint256"
}
],
"name": "InvalidAccountNonce",
"type": "error"
},
{
"inputs": [],
"name": "InvalidShortString",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnableInvalidOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "OwnableUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "string",
"name": "str",
"type": "string"
}
],
"name": "StringTooLong",
"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": [],
"name": "EIP712DomainChanged",
"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": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"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": [],
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "version",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "forwarder",
"type": "address"
}
],
"name": "isTrustedForwarder",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"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": "msgData",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"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": "trustedForwarder",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x610180806040523461056c57612130803803809161001d8285610571565b833981019060608183031261056c5780516001600160401b03811161056c57826100489183016105b7565b60208201519092906001600160401b03811161056c5760409161006c9184016105b7565b910151906001600160a01b038216820361056c576040928351926100908585610571565b60018452603160f81b6020850190815282519093906001600160401b03811161047657600354600181811c91168015610562575b602082101461045657601f81116104fd575b50806020601f82116001146104975760009161048c575b508160011b916000199060031b1c1916176003555b8051906001600160401b0382116104765760045490600182811c9216801561046c575b60208310146104565781601f8493116103e6575b50602090601f831160011461037e57600092610373575b50508160011b916000199060031b1c1916176004555b608052331561035d5760058054610100600160a81b0319811633600881811b610100600160a81b0316929092179093551c6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36101ce8161060b565b610140526101db8361079c565b610160526020815191012091826101005251902080610120524660c05282519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84528483015260608201524660808201523060a082015260a0815261024760c082610571565b51902060a0523060e052600060ff6005541661034e5760025469d3c21bcecceda1000000810180911161033a57600255503360005260006020528060002069d3c21bcecceda10000008154019055805169d3c21bcecceda1000000815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a35161185190816108df8239608051818181610830015281816109af015281816114880152611666015260a051816111d7015260c05181611294015260e051816111a8015261010051816112260152610120518161124c015261014051816106260152610160518161064f0152f35b634e487b7160e01b82526011600452602482fd5b63d93c066560e01b8152600490fd5b631e4fbdf760e01b600052600060045260246000fd5b015190503880610150565b600460009081528281209350601f198516905b8181106103ce57509084600195949392106103b5575b505050811b01600455610166565b015160001960f88460031b161c191690553880806103a7565b92936020600181928786015181550195019301610391565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c8101916020851061044c575b90601f859493920160051c01905b81811061043d5750610139565b60008155849350600101610430565b9091508190610422565b634e487b7160e01b600052602260045260246000fd5b91607f1691610125565b634e487b7160e01b600052604160045260246000fd5b9050840151386100ed565b600360009081528181209250601f198416905b8181106104e5575090836001949392106104cc575b5050811b01600355610102565b86015160001960f88460031b161c1916905538806104bf565b9192602060018192868b0151815501940192016104aa565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610558575b601f0160051c01905b81811061054c57506100d6565b6000815560010161053f565b9091508190610536565b90607f16906100c4565b600080fd5b601f909101601f19168101906001600160401b0382119082101761047657604052565b60005b8381106105a75750506000910152565b8181015183820152602001610597565b81601f8201121561056c5780516001600160401b03811161047657604051926105ea601f8301601f191660200185610571565b8184526020828401011161056c576106089160208085019101610594565b90565b90815160208110600014610686575090601f815111610647576020815191015160208210610637571790565b6000198260200360031b1b161790565b6044604051809263305a27a960e01b8252602060048301526106788151809281602486015260208686019101610594565b601f01601f19168101030190fd5b6001600160401b03811161047657600654600181811c91168015610792575b602082101461045657601f811161075c575b50602092601f82116001146106f757928192936000926106ec575b50508160011b916000199060031b1c19161760065560ff90565b0151905038806106d2565b601f198216936006600052806000209160005b868110610744575083600195961061072b575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808061071d565b9192602060018192868501518155019401920161070a565b6006600052601f6020600020910160051c810190601f830160051c015b81811061078657506106b7565b60008155600101610779565b90607f16906106a5565b908151602081106000146107c8575090601f815111610647576020815191015160208210610637571790565b6001600160401b03811161047657600754600181811c911680156108d4575b602082101461045657601f811161089e575b50602092601f8211600114610839579281929360009261082e575b50508160011b916000199060031b1c19161760075560ff90565b015190503880610814565b601f198216936007600052806000209160005b868110610886575083600195961061086d575b505050811b0160075560ff90565b015160001960f88460031b161c1916905538808061085f565b9192602060018192868501518155019401920161084c565b6007600052601f6020600020910160051c810190601f830160051c015b8181106108c857506107f9565b600081556001016108bb565b90607f16906107e756fe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610c5557508063095ea7b314610c2857806318160ddd14610c0a57806323b872dd14610bd6578063313ce56714610bba5780633644e51514610b975780633f4ba83a14610af857806340c10f19146109f557806342966c68146109d6578063572b6c05146109785780635c975abb1461095557806370a082311461090e578063715018a61461088b57806379cc6790146108545780637da0a877146108035780637ecebe00146107bc5780638456cb591461072657806384b0196e1461060d5780638da5cb5b146105d657806395d89b41146104d3578063a9059cbb1461049b578063c4c2bfdc14610436578063d505accf1461029d578063dd62ed3e1461022b5763f2fde38b1461013257600080fd5b346102265760206003193601126102265761014b610d59565b6101536112ba565b73ffffffffffffffffffffffffffffffffffffffff81169081156101f75773ffffffffffffffffffffffffffffffffffffffff9074ffffffffffffffffffffffffffffffffffffffff006005549160081b167fffffffffffffffffffffff0000000000000000000000000000000000000000ff82161760055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600080fd5b3461022657604060031936011261022657610244610d59565b73ffffffffffffffffffffffffffffffffffffffff610261610d7c565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346102265760e0600319360112610226576102b6610d59565b6102be610d7c565b604435906064359260843560ff8116810361022657844211610408576103c16103b873ffffffffffffffffffffffffffffffffffffffff92838516978860005260086020526040600020908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528b6040840152878a1660608401528a608084015260a083015260c082015260c0815261036b60e082610e94565b519020610376611191565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015260c43591604260a435922061168d565b9092919261172f565b168481036103d657506103d493506114af565b005b84907f4b800e460000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b847f627913020000000000000000000000000000000000000000000000000000000060005260045260246000fd5b34610226576000600319360112610226576040610451611606565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b34610226576040600319360112610226576104c86104b7610d59565b602435906104c361142b565b61108e565b602060405160018152f35b346102265760006003193601126102265760405160006004546104f581610d9f565b80845290600181169081156105945750600114610535575b6105318361051d81850382610e94565b604051918291602083526020830190610cfa565b0390f35b600460009081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b80821061057a5750909150810160200161051d61050d565b919260018160209254838588010152019101909291610562565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061051d905061050d565b3461022657600060031936011261022657602073ffffffffffffffffffffffffffffffffffffffff60055460081c16604051908152f35b34610226576000600319360112610226576106c861064a7f0000000000000000000000000000000000000000000000000000000000000000611530565b6106737f00000000000000000000000000000000000000000000000000000000000000006115cf565b60206106d6604051926106868385610e94565b6000845260003681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610cfa565b908582036040870152610cfa565b466060850152306080850152600060a085015283810360c085015281808451928381520193019160005b82811061070f57505050500390f35b835185528695509381019392810192600101610700565b346102265760006003193601126102265761073f6112ba565b610747611346565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258602061079d61142b565b73ffffffffffffffffffffffffffffffffffffffff60405191168152a1005b346102265760206003193601126102265773ffffffffffffffffffffffffffffffffffffffff6107ea610d59565b1660005260086020526020604060002054604051908152f35b3461022657600060031936011261022657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610226576040600319360112610226576103d4610870610d59565b602435906108868261088061142b565b83610f04565b61137c565b34610226576000600319360112610226576108a46112ba565b600073ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffff0000000000000000000000000000000000000000ff811660055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102265760206003193601126102265773ffffffffffffffffffffffffffffffffffffffff61093c610d59565b1660005260006020526020604060002054604051908152f35b3461022657600060031936011261022657602060ff600554166040519015158152f35b34610226576020600319360112610226576020610993610d59565b6040519073ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b34610226576020600319360112610226576103d460043561088661142b565b3461022657604060031936011261022657610a0e610d59565b73ffffffffffffffffffffffffffffffffffffffff60243591610a2f6112ba565b610a37611346565b168015610ac957610a46611346565b60025491808301809311610a9a576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b3461022657600060031936011261022657610b116112ba565b60055460ff811615610b6d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa602061079d61142b565b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b34610226576000600319360112610226576020610bb2611191565b604051908152f35b3461022657600060031936011261022657602060405160128152f35b34610226576060600319360112610226576104c8610bf2610d59565b610bfa610d7c565b604435916104c38361088061142b565b34610226576000600319360112610226576020600254604051908152f35b34610226576040600319360112610226576104c8610c44610d59565b60243590610c5061142b565b6114af565b34610226576000600319360112610226576000600354610c7481610d9f565b80845290600181169081156105945750600114610c9b576105318361051d81850382610e94565b600360009081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610ce05750909150810160200161051d61050d565b919260018160209254838588010152019101909291610cc8565b919082519283825260005b848110610d445750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610d05565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022657565b90600182811c92168015610de8575b6020831014610db957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610dae565b60009291815491610e0283610d9f565b8083529260018116908115610e585750600114610e1e57505050565b60009081526020812093945091925b838310610e3e575060209250010190565b600181602092949394548385870101520191019190610e2d565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ed557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff909291921691826000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8410610f7f575b50505050565b8284106110425780156110135773ffffffffffffffffffffffffffffffffffffffff821615610fe457600052600160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000209103905538808080610f79565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b5073ffffffffffffffffffffffffffffffffffffffff83917ffb8f41b2000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff169081156111625773ffffffffffffffffffffffffffffffffffffffff16918215610ac9576110d0611346565b600082815280602052604081205482811061112f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480611291575b156111f9577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261128b60c082610e94565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146111d0565b73ffffffffffffffffffffffffffffffffffffffff60055460081c1673ffffffffffffffffffffffffffffffffffffffff6112f361142b565b16036112fb57565b73ffffffffffffffffffffffffffffffffffffffff61131861142b565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b60ff6005541661135257565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff168015611162576113a0611346565b6000918183528260205260408320548181106113f957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b83927fe450d38c0000000000000000000000000000000000000000000000000000000060649552600452602452604452fd5b601436101580611470575b1561146c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601368111610226573560601c90565b3390565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611436565b73ffffffffffffffffffffffffffffffffffffffff169081156110135773ffffffffffffffffffffffffffffffffffffffff16918215610fe45760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60ff81146115b25760ff811690601f82116115885760408051926115548285610e94565b602084527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060208501920136833783525290565b7fb3512b0c0000000000000000000000000000000000000000000000000000000060005260046000fd5b506040516115cc816115c5816006610df2565b0382610e94565b90565b60ff81146115f35760ff811690601f82116115885760408051926115548285610e94565b506040516115cc816115c5816007610df2565b60143610158061164e575b15611647577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116102265760009190565b6000903690565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611611565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611723579160209360809260ff60009560405194855216868401526040830152606082015282805260015afa156117175760005173ffffffffffffffffffffffffffffffffffffffff81161561170b5790600090600090565b50600090600190600090565b6040513d6000823e3d90fd5b50505060009160039190565b91909160048110156117ec578061174557509050565b600060018203611779577ff645eedf0000000000000000000000000000000000000000000000000000000060005260046000fd5b50600281036117b057827ffce698f70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90916003600092146117c0575050565b602492507fd78bce0c000000000000000000000000000000000000000000000000000000008252600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220f27f6f4db3d2bf1e954ca8d7fa3d00e1034a14022244585df505463a61ed4ee464736f6c634300081b0033",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610c5557508063095ea7b314610c2857806318160ddd14610c0a57806323b872dd14610bd6578063313ce56714610bba5780633644e51514610b975780633f4ba83a14610af857806340c10f19146109f557806342966c68146109d6578063572b6c05146109785780635c975abb1461095557806370a082311461090e578063715018a61461088b57806379cc6790146108545780637da0a877146108035780637ecebe00146107bc5780638456cb591461072657806384b0196e1461060d5780638da5cb5b146105d657806395d89b41146104d3578063a9059cbb1461049b578063c4c2bfdc14610436578063d505accf1461029d578063dd62ed3e1461022b5763f2fde38b1461013257600080fd5b346102265760206003193601126102265761014b610d59565b6101536112ba565b73ffffffffffffffffffffffffffffffffffffffff81169081156101f75773ffffffffffffffffffffffffffffffffffffffff9074ffffffffffffffffffffffffffffffffffffffff006005549160081b167fffffffffffffffffffffff0000000000000000000000000000000000000000ff82161760055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f1e4fbdf700000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b600080fd5b3461022657604060031936011261022657610244610d59565b73ffffffffffffffffffffffffffffffffffffffff610261610d7c565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346102265760e0600319360112610226576102b6610d59565b6102be610d7c565b604435906064359260843560ff8116810361022657844211610408576103c16103b873ffffffffffffffffffffffffffffffffffffffff92838516978860005260086020526040600020908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528b6040840152878a1660608401528a608084015260a083015260c082015260c0815261036b60e082610e94565b519020610376611191565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015260c43591604260a435922061168d565b9092919261172f565b168481036103d657506103d493506114af565b005b84907f4b800e460000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b847f627913020000000000000000000000000000000000000000000000000000000060005260045260246000fd5b34610226576000600319360112610226576040610451611606565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b34610226576040600319360112610226576104c86104b7610d59565b602435906104c361142b565b61108e565b602060405160018152f35b346102265760006003193601126102265760405160006004546104f581610d9f565b80845290600181169081156105945750600114610535575b6105318361051d81850382610e94565b604051918291602083526020830190610cfa565b0390f35b600460009081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b80821061057a5750909150810160200161051d61050d565b919260018160209254838588010152019101909291610562565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b8401909101915061051d905061050d565b3461022657600060031936011261022657602073ffffffffffffffffffffffffffffffffffffffff60055460081c16604051908152f35b34610226576000600319360112610226576106c861064a7f0000000000000000000000000000000000000000000000000000000000000000611530565b6106737f00000000000000000000000000000000000000000000000000000000000000006115cf565b60206106d6604051926106868385610e94565b6000845260003681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610cfa565b908582036040870152610cfa565b466060850152306080850152600060a085015283810360c085015281808451928381520193019160005b82811061070f57505050500390f35b835185528695509381019392810192600101610700565b346102265760006003193601126102265761073f6112ba565b610747611346565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060055416176005557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258602061079d61142b565b73ffffffffffffffffffffffffffffffffffffffff60405191168152a1005b346102265760206003193601126102265773ffffffffffffffffffffffffffffffffffffffff6107ea610d59565b1660005260086020526020604060002054604051908152f35b3461022657600060031936011261022657602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610226576040600319360112610226576103d4610870610d59565b602435906108868261088061142b565b83610f04565b61137c565b34610226576000600319360112610226576108a46112ba565b600073ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffff0000000000000000000000000000000000000000ff811660055560081c167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102265760206003193601126102265773ffffffffffffffffffffffffffffffffffffffff61093c610d59565b1660005260006020526020604060002054604051908152f35b3461022657600060031936011261022657602060ff600554166040519015158152f35b34610226576020600319360112610226576020610993610d59565b6040519073ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b34610226576020600319360112610226576103d460043561088661142b565b3461022657604060031936011261022657610a0e610d59565b73ffffffffffffffffffffffffffffffffffffffff60243591610a2f6112ba565b610a37611346565b168015610ac957610a46611346565b60025491808301809311610a9a576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b3461022657600060031936011261022657610b116112ba565b60055460ff811615610b6d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166005557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa602061079d61142b565b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b34610226576000600319360112610226576020610bb2611191565b604051908152f35b3461022657600060031936011261022657602060405160128152f35b34610226576060600319360112610226576104c8610bf2610d59565b610bfa610d7c565b604435916104c38361088061142b565b34610226576000600319360112610226576020600254604051908152f35b34610226576040600319360112610226576104c8610c44610d59565b60243590610c5061142b565b6114af565b34610226576000600319360112610226576000600354610c7481610d9f565b80845290600181169081156105945750600114610c9b576105318361051d81850382610e94565b600360009081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610ce05750909150810160200161051d61050d565b919260018160209254838588010152019101909291610cc8565b919082519283825260005b848110610d445750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201610d05565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022657565b90600182811c92168015610de8575b6020831014610db957565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691610dae565b60009291815491610e0283610d9f565b8083529260018116908115610e585750600114610e1e57505050565b60009081526020812093945091925b838310610e3e575060209250010190565b600181602092949394548385870101520191019190610e2d565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ed557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff909291921691826000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8410610f7f575b50505050565b8284106110425780156110135773ffffffffffffffffffffffffffffffffffffffff821615610fe457600052600160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000209103905538808080610f79565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b5073ffffffffffffffffffffffffffffffffffffffff83917ffb8f41b2000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff169081156111625773ffffffffffffffffffffffffffffffffffffffff16918215610ac9576110d0611346565b600082815280602052604081205482811061112f5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480611291575b156111f9577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261128b60c082610e94565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146111d0565b73ffffffffffffffffffffffffffffffffffffffff60055460081c1673ffffffffffffffffffffffffffffffffffffffff6112f361142b565b16036112fb57565b73ffffffffffffffffffffffffffffffffffffffff61131861142b565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b60ff6005541661135257565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff168015611162576113a0611346565b6000918183528260205260408320548181106113f957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b83927fe450d38c0000000000000000000000000000000000000000000000000000000060649552600452602452604452fd5b601436101580611470575b1561146c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601368111610226573560601c90565b3390565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611436565b73ffffffffffffffffffffffffffffffffffffffff169081156110135773ffffffffffffffffffffffffffffffffffffffff16918215610fe45760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60ff81146115b25760ff811690601f82116115885760408051926115548285610e94565b602084527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060208501920136833783525290565b7fb3512b0c0000000000000000000000000000000000000000000000000000000060005260046000fd5b506040516115cc816115c5816006610df2565b0382610e94565b90565b60ff81146115f35760ff811690601f82116115885760408051926115548285610e94565b506040516115cc816115c5816007610df2565b60143610158061164e575b15611647577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116102265760009190565b6000903690565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611611565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411611723579160209360809260ff60009560405194855216868401526040830152606082015282805260015afa156117175760005173ffffffffffffffffffffffffffffffffffffffff81161561170b5790600090600090565b50600090600190600090565b6040513d6000823e3d90fd5b50505060009160039190565b91909160048110156117ec578061174557509050565b600060018203611779577ff645eedf0000000000000000000000000000000000000000000000000000000060005260046000fd5b50600281036117b057827ffce698f70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b90916003600092146117c0575050565b602492507fd78bce0c000000000000000000000000000000000000000000000000000000008252600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220f27f6f4db3d2bf1e954ca8d7fa3d00e1034a14022244585df505463a61ed4ee464736f6c634300081b0033",
"linkReferences": {},
"deployedLinkReferences": {}
}
declare module "@nomicfoundation/hardhat-viem/types" {
export function deployContract(
contractName: "GenericTokenMeta",
constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>, trustedForwarder_: AbiParameterToPrimitiveType<{"name":"trustedForwarder_","type":"address"}>],
config?: DeployContractConfig
): Promise<GetContractReturnType<GenericTokenMeta$Type["abi"]>>;
export function deployContract(
contractName: "contracts/GenericTokenMeta.sol:GenericTokenMeta",
constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>, trustedForwarder_: AbiParameterToPrimitiveType<{"name":"trustedForwarder_","type":"address"}>],
config?: DeployContractConfig
): Promise<GetContractReturnType<GenericTokenMeta$Type["abi"]>>;
export function sendDeploymentTransaction(
contractName: "GenericTokenMeta",
constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>, trustedForwarder_: AbiParameterToPrimitiveType<{"name":"trustedForwarder_","type":"address"}>],
config?: SendDeploymentTransactionConfig
): Promise<{
contract: GetContractReturnType<GenericTokenMeta$Type["abi"]>;
deploymentTransaction: GetTransactionReturnType;
}>;
export function sendDeploymentTransaction(
contractName: "contracts/GenericTokenMeta.sol:GenericTokenMeta",
constructorArgs: [name_: AbiParameterToPrimitiveType<{"name":"name_","type":"string"}>, symbol_: AbiParameterToPrimitiveType<{"name":"symbol_","type":"string"}>, trustedForwarder_: AbiParameterToPrimitiveType<{"name":"trustedForwarder_","type":"address"}>],
config?: SendDeploymentTransactionConfig
): Promise<{
contract: GetContractReturnType<GenericTokenMeta$Type["abi"]>;
deploymentTransaction: GetTransactionReturnType;
}>;
export function getContractAt(
contractName: "GenericTokenMeta",
address: Address,
config?: GetContractAtConfig
): Promise<GetContractReturnType<GenericTokenMeta$Type["abi"]>>;
export function getContractAt(
contractName: "contracts/GenericTokenMeta.sol:GenericTokenMeta",
address: Address,
config?: GetContractAtConfig
): Promise<GetContractReturnType<GenericTokenMeta$Type["abi"]>>;
}