[ { "inputs": [ { "internalType": "address", "name": "_initialOwner", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_numTotalTokens", "type": "uint256" }, { "internalType": "uint8", "name": "_decimals", "type": "uint8" } ], "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": [ { "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": 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" }, { "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": [], "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": [], "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": [ { "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" } ]
6101608060405234620006725762001b488038038060405192620000248285620006bf565b8339810160a08282031262000622578151906001600160a01b0382168203620006175760208301516001600160401b0381116200061c57816200006991850162000758565b604084015190916001600160401b0382116200061c576200008c91850162000758565b92608060608201519101519260ff84168403620006175760408051959086016001600160401b03811187821017620003cc5760405260018652603160f81b602087015283516001600160401b038111620003cc57600354600181811c911680156200060c575b6020821014620004ef57601f8111620005a6575b50806020601f82116001146200051c5760009162000510575b508160011b916000199060031b1c1916176003555b8051906001600160401b038211620003cc5760045490600182811c9216801562000505575b6020831014620004ef5781601f8493116200047d575b50602090601f8311600114620003ee57600092620003e2575b50508160011b916000199060031b1c1916176004555b620001a98362000861565b93610120948552620001bb8662000a06565b9361014094855260208151910120958660e0526020815191012095610100968088524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c081019181831060018060401b03841117620003cc576040839052815190206080523060c0526001600160a01b03841615620003b557505060085460405192906001600160a01b038083169082167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36001600160a81b0319166001600160a01b039091161760a082901b60ff60a01b1617600855604d60ff821611620003895760ff16600a0a91828102928184041490151715620003895733156200039f57506002548181018091116200038957600255336000526000602052604060002081815401905560405190815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a360405191610fea938462000b5e853960805184610b78015260a05184610c44015260c05184610b42015260e05184610bc701525183610bed015251826104b3015251816104dd0152f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b815260006004820152602490fd5b631e4fbdf760e01b8252600060c490910152602490fd5b634e487b7160e01b600052604160045260246000fd5b01519050878062000188565b6004600090815293507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91905b601f198416851062000461576001945083601f1981161062000447575b505050811b016004556200019e565b015160001960f88460031b161c1916905587808062000438565b818101518355602094850194600190930192909101906200041b565b60046000529091507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f840160051c810160208510620004e7575b90849392915b601f830160051c82018110620004d75750506200016f565b60008155859450600101620004bf565b5080620004b9565b634e487b7160e01b600052602260045260246000fd5b91607f169162000159565b9050850151886200011f565b6003600090815292507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b905b601f19831684106200058d576001935082601f1981161062000573575b5050811b0160035562000134565b87015160001960f88460031b161c19169055888062000565565b8781015182556020938401936001909201910162000548565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81016020841062000604575b601f830160051c82018110620005f757505062000106565b60008155600101620005df565b5080620005df565b90607f1690620000f2565b600080fd5b620006e3565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608490fd5b62461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e63746960448201526137b760f11b6064820152608490fd5b601f909101601f19168101906001600160401b03821190821017620003cc57604052565b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a20696e76616c6964207475706c65206f666673604482015261195d60f21b6064820152608490fd5b60005b838110620007475750506000910152565b818101518382015260200162000736565b81601f82011215620008085780516001600160401b038111620003cc57604051926200078f601f8301601f191660200185620006bf565b81845260208284010111620007b357620007b0916020808501910162000733565b90565b60405162461bcd60e51b815260206004820152602760248201527f414249206465636f64696e673a20696e76616c69642062797465206172726179604482015266040d8cadccee8d60cb1b6064820152608490fd5b60405162461bcd60e51b815260206004820152602b60248201527f414249206465636f64696e673a20696e76616c69642063616c6c64617461206160448201526a1c9c985e481bd9999cd95d60aa1b6064820152608490fd5b80516020919082811015620008e1575090601f8251116200089f57808251920151908083106200089057501790565b82600019910360031b1b161790565b604490620008d39260405193849263305a27a960e01b84528060048501528251928391826024870152868601910162000733565b601f01601f19168101030190fd5b6001600160401b038111620003cc576005928354926001938481811c91168015620009fb575b83821014620004ef57601f8111620009c4575b5081601f84116001146200095a57509282939183926000946200094e575b50501b916000199060031b1c191617905560ff90565b01519250388062000938565b919083601f1981168760005284600020946000905b88838310620009a957505050106200098f575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808062000982565b8587015188559096019594850194879350908101906200096f565b8560005284601f846000209201871c820191601f8601881c015b828110620009ee5750506200091a565b60008155018590620009de565b90607f169062000907565b80516020908181101562000a335750601f8251116200089f57808251920151908083106200089057501790565b906001600160401b038211620003cc57600654926001938481811c9116801562000b52575b83821014620004ef57601f811162000b18575b5081601f841160011462000aac575092829391839260009462000aa0575b50501b916000199060031b1c19161760065560ff90565b01519250388062000a89565b919083601f198116600660005284600020946000905b8883831062000afd575050501062000ae3575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000ad5565b85870151885590960195948501948793509081019062000ac2565b600660005284601f84600020920160051c820191601f860160051c015b82811062000b4557505062000a6b565b6000815501859062000b35565b90607f169062000a5856fe60406080815260049081361015610072575b906020608492519162461bcd60e51b8352820152603560248201527f436f6e747261637420646f6573206e6f7420686176652066616c6c6261636b206044820152746e6f7220726563656976652066756e6374696f6e7360581b6064820152fd5b6000803560e01c806306fdde0314610806578063095ea7b3146107dd57806318160ddd146107c057806323b872dd146106cc578063313ce567146106a95780633644e5151461068757806370a0823114610650578063715018a6146105f35780637ecebe00146105bb57806384b0196e1461049b5780638da5cb5b1461047457806395d89b41146103a1578063a9059cbb14610371578063d505accf1461020a578063dd62ed3e146101c15763f2fde38b1461012e5750610011565b91346101bc5760203660031901126101b7576101486109a2565b90610151610c6a565b6001600160a01b039182169283156101a1575050600880546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b610912565b6108c2565b5090346101bc57806003193601126101b757806020926101df6109a2565b6101e76109bd565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5082346101bc5760e03660031901126101b7576102256109a2565b61022d6109bd565b906044359260643560843560ff8116810361036d578142116103565760018060a01b0390818516928389526007602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff821117610343578b5251902061031191610308916102e2610b3f565b908c519161190160f01b83526002830152602282015260c43591604260a4359220610ea9565b90929192610f2f565b168181036103285786610325878787610c96565b80f35b87516325c0072360e11b815292830152602482015260449150fd5b634e487b7160e01b8b526041875260248bfd5b875163313c898160e11b8152808401839052602490fd5b8680fd5b82346101bc57806003193601126101b75760209061039a6103906109a2565b6024359033610a61565b5160018152f35b509190346101bc57826003193601126101b75780518381949084546103c5816109d3565b918285526020966001928860018216918260001461044a57505060011461040c575b8588610408896103f9848a0385610a3f565b51928284938452830190610962565b0390f35b87945081939291528383205b82841061043257505050820101816103f9610408386103e7565b8054848a018601528895508794909301928101610418565b60ff19168882015294151560051b870190940194508593506103f9925061040891503890506103e7565b50346101bc573660031901126101b75760085490516001600160a01b039091168152602090f35b509190346101bc57826003193601126101b7576104d77f0000000000000000000000000000000000000000000000000000000000000000610d29565b926105017f0000000000000000000000000000000000000000000000000000000000000000610e09565b90825192602092602085019585871067ffffffffffffffff8811176105a8575092602061055e838896610551998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610962565b91898303908a0152610962565b924660608801523060808801528460a088015286840360c088015251928381520193925b82811061059157505050500390f35b835185528695509381019392810192600101610582565b634e487b7160e01b845260419052602483fd5b5090346101bc5760203660031901126101b75760209181906001600160a01b036105e36109a2565b1681526007845220549051908152f35b50346101bc57806003193601126101b75761060c610c6a565b600880546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5090346101bc5760203660031901126101b75760209181906001600160a01b036106786109a2565b16815280845220549051908152f35b50346101bc573660031901126101b7576020906106a2610b3f565b9051908152f35b50346101bc573660031901126101b75760209060ff60085460a01c169051908152f35b508290346101bc5760603660031901126101b7576106e86109a2565b6106f06109bd565b916044359360018060a01b03831680835260016020528683203384526020528683205491600019830361072c575b60208861039a898989610a61565b86831061079457811561077d5733156107665750825260016020908152868320338452815291869020908590039055829061039a8761071e565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b8751637dc7a0d960e11b8152339181019182526020820193909352604081018790528291506060010390fd5b50346101bc573660031901126101b7576020906002549051908152f35b82346101bc57806003193601126101b75760209061039a6107fc6109a2565b6024359033610c96565b50346108c257806003193601126101b7578151918282600354610828816109d3565b908184526020956001918760018216918260001461089b57505060011461085d575b50505061040892916103f9910385610a3f565b9190869350600383528383205b82841061088357505050820101816103f961040861084a565b8054848a01860152889550879490930192810161086a565b60ff19168782015293151560051b860190930193508492506103f99150610408905061084a565b60405162461bcd60e51b815260206004820152602260248201527f45746865722073656e7420746f206e6f6e2d70617961626c652066756e63746960448201526137b760f11b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f414249206465636f64696e673a207475706c65206461746120746f6f2073686f6044820152611c9d60f21b6064820152608490fd5b919082519283825260005b84811061098e575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161096d565b600435906001600160a01b03821682036109b857565b600080fd5b602435906001600160a01b03821682036109b857565b90600182811c92168015610a03575b60208310146109ed57565b634e487b7160e01b600052602260045260246000fd5b91607f16916109e2565b6040810190811067ffffffffffffffff821117610a2957604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610a2957604052565b916001600160a01b03808416928315610b265716928315610b0d5760009083825281602052604082205490838210610adb575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480610c41575b15610b9a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff821117610a295760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614610b71565b6008546001600160a01b03163303610c7e57565b60405163118cdaa760e01b8152336004820152602490fd5b6001600160a01b03908116918215610d105716918215610cf75760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b60ff8114610d675760ff811690601f8211610d555760405191610d4b83610a0d565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000610d7a836109d3565b808352602093600190818116908115610de95750600114610da7575b5050610da492500382610a3f565b90565b90939150600560005281600020936000915b818310610dd1575050610da493508201013880610d96565b85548784018501529485019486945091830191610db9565b915050610da494925060ff191682840152151560051b8201013880610d96565b60ff8114610e2b5760ff811690601f8211610d555760405191610d4b83610a0d565b50604051600654816000610e3e836109d3565b808352602093600190818116908115610de95750600114610e67575050610da492500382610a3f565b90939150600660005281600020936000915b818310610e91575050610da493508201013880610d96565b85548784018501529485019486945091830191610e79565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411610f2357926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15610f175780516001600160a01b03811615610f0e57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6004811015610f9e5780610f41575050565b60018103610f5b5760405163f645eedf60e01b8152600490fd5b60028103610f7c5760405163fce698f760e01b815260048101839052602490fd5b600314610f865750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fdfea2646970667358221220456f49722918c629cc92ed07257f5c127b8b2a8c24a83a9ba45a83705903c8b164736f6c63430008180033000000000000000000000000c8aeba4d77f4b4c95428d90abdf0baf9c61e6f2500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000019133b020000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000f4d61676d612042656c696576657273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d41474d41000000000000000000000000000000000000000000000000000000