[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address", "name": "initialAccount", "type": "address" }, { "internalType": "uint256", "name": "initialBalance", "type": "uint256" } ], "stateMutability": "payable", "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" }, { "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": "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": [], "name": "EIP712DOMAIN_HASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NAME_HASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMIT_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERSION_HASH", "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": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approveInternal", "outputs": [], "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": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getChainId", "outputs": [ { "internalType": "uint256", "name": "chainId", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "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": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferInternal", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526110b880380380610014816103cb565b92833981016080828203126103c65781516001600160401b0381116103c6578161003f9184016103f0565b602083015190916001600160401b0382116103c65761005f9184016103f0565b604083015190926001600160a01b038216918290036103c6576060015182516001600160401b0381116102d057600354600181811c911680156103bc575b60208210146102b057601f8111610357575b50806020601f82116001146102f1576000916102e6575b508160011b916000199060031b1c1916176003555b83516001600160401b0381116102d057600454600181811c911680156102c6575b60208210146102b057601f811161024b575b50602094601f82116001146101e4579481929394956000926101d9575b50508160011b916000199060031b1c1916176004555b81156101c3576002548181018091116101ad576002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060009284845283825260408420818154019055604051908152a360208151910120600655604051610c5c908161045c8239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b01519050388061012b565b601f198216956004600052806000209160005b8881106102335750836001959697981061021a575b505050811b01600455610141565b015160001960f88460031b161c1916905538808061020c565b919260206001819286850151815501940192016101f7565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102a6575b601f0160051c01905b81811061029a575061010e565b6000815560010161028d565b9091508190610284565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fc565b634e487b7160e01b600052604160045260246000fd5b9050840151386100c6565b600360009081528181209250601f198416905b81811061033f57509083600194939210610326575b5050811b016003556100db565b86015160001960f88460031b161c191690553880610319565b9192602060018192868b015181550194019201610304565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103b2575b601f0160051c01905b8181106103a657506100af565b60008155600101610399565b9091508190610390565b90607f169061009d565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102d057604052565b81601f820112156103c6578051906001600160401b0382116102d05761041f601f8301601f19166020016103cb565b92828452602083830101116103c65760005b82811061044657505060206000918301015290565b8060208092840101518282870101520161043156fe608080604052600436101561001357600080fd5b60003560e01c90816304622c2e146109b55750806306fdde03146108f6578063095ea7b3146108d057806318160ddd146108b2578063222f5be01461089b57806323b872dd146107c357806330adf81f14610788578063313ce5671461076c5780633408e470146107515780633644e5151461071857806340c10f191461068257806342966c68146105dc57806356189cb4146105c557806370a082311461058b5780637ecebe001461055157806395d89b41146104495780639e4e73181461040e578063a9059cbb146103dd578063c473af33146103a2578063d505accf1461015c5763dd62ed3e1461010657600080fd5b346101575760403660031901126101575761011f610a19565b610127610a2f565b6001600160a01b039182166000908152600160209081526040808320949093168252928352819020549051908152f35b600080fd5b346101575760e036600319011261015757610175610a19565b61017d610a2f565b6044359060643560843560ff81168091036101575742821061035d576001600160a01b038516600081815260056020526040902080549193919260001984146103475783600093608093600160209701905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9845288604084015260018060a01b038a1660608401528a8684015260a083015260c082015260c0815261022c60e082610a7f565b5190206006546040516102588161024a898201943090469087610ab7565b03601f198101835282610a7f565b51902090604051908682019261190160f01b84526022830152604282015260428152610285606282610a7f565b519020906040519182528482015260a435604082015260c435606082015282805260015afa1561033b576000516001600160a01b0316801515919082610331575b5050156102d8576102d692610bbf565b005b60405162461bcd60e51b815260206004820152602b60248201527f48455a3a3a5f76616c69646174655369676e6564446174613a20494e56414c4960448201526a445f5349474e415455524560a81b6064820152608490fd5b14905084806102c6565b6040513d6000823e3d90fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601960248201527f48455a3a3a7065726d69743a20415554485f45585049524544000000000000006044820152606490fd5b346101575760003660031901126101575760206040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152f35b34610157576040366003190112610157576104036103f9610a19565b6024359033610b26565b602060405160018152f35b346101575760003660031901126101575760206040517fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc68152f35b346101575760003660031901126101575760405160006004548060011c90600181168015610547575b6020831081146105335782855290811561050f57506001146104af575b6104ab8361049f81850382610a7f565b604051918291826109d0565b0390f35b91905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b916000905b8082106104f55750909150810160200161049f61048f565b9192600181602092548385880101520191019092916104dd565b60ff191660208086019190915291151560051b8401909101915061049f905061048f565b634e487b7160e01b84526022600452602484fd5b91607f1691610472565b34610157576020366003190112610157576001600160a01b03610572610a19565b1660005260056020526020604060002054604051908152f35b34610157576020366003190112610157576001600160a01b036105ac610a19565b1660005260006020526020604060002054604051908152f35b34610157576102d66105d636610a45565b91610bbf565b3461015757602036600319011261015757600435331561066c57600033815280602052604081205491808310610653578082933384528360205203604083205580600254036002556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a380f35b60649263391434e360e21b835233600452602452604452fd5b634b637e8f60e11b600052600060045260246000fd5b346101575760403660031901126101575761069b610a19565b602435906001600160a01b031680156107025760025491808301809311610347576020926002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600093849284845283825260408420818154019055604051908152a380f35b63ec442f0560e01b600052600060045260246000fd5b346101575760003660031901126101575760206006546040516107468161024a858201943090469087610ab7565b519020604051908152f35b34610157576000366003190112610157576020604051468152f35b3461015757600036600319011261015757602060405160128152f35b346101575760003660031901126101575760206040517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98152f35b34610157576107d136610a45565b6001600160a01b03831660008181526001602081815260408084203385529091529091205491949293929190810161080f575b506104039350610b26565b83811061087e57841561086857331561085257610403946000526001602052604060002060018060a01b0333166000526020528360406000209103905584610804565b634a1406b160e11b600052600060045260246000fd5b63e602df0560e01b600052600060045260246000fd5b8390637dc7a0d960e11b6000523360045260245260445260646000fd5b34610157576102d66108ac36610a45565b91610b26565b34610157576000366003190112610157576020600254604051908152f35b34610157576040366003190112610157576104036108ec610a19565b6024359033610bbf565b346101575760003660031901126101575760405160006003548060011c906001811680156109ab575b6020831081146105335782855290811561050f575060011461094b576104ab8361049f81850382610a7f565b91905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b916000905b8082106109915750909150810160200161049f61048f565b919260018160209254838588010152019101909291610979565b91607f169161091f565b34610157576000366003190112610157576020906006548152f35b91909160208152825180602083015260005b818110610a03575060409293506000838284010152601f8019910116010190565b80602080928701015160408286010152016109e2565b600435906001600160a01b038216820361015757565b602435906001600160a01b038216820361015757565b6060906003190112610157576004356001600160a01b038116810361015757906024356001600160a01b0381168103610157579060443590565b90601f8019910116810190811067ffffffffffffffff821117610aa157604052565b634e487b7160e01b600052604160045260246000fd5b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815260208101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015260608101919091526001600160a01b03909116608082015260a00190565b6001600160a01b031690811561066c576001600160a01b0316918215610702576000828152806020526040812054828110610ba55791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b916064928463391434e360e21b8452600452602452604452fd5b6001600160a01b0316908115610868576001600160a01b03169182156108525760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a356fea2646970667358221220bf45c91476ce9bff4f7c704cde89b52806e49b0f1547d1d98a310e7b051c3adf64736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000008dc1994f21bf788d8df23921398b288be621aa250000000000000000000000000000000000000000033b2e3c9fd0803ce800000000000000000000000000000000000000000000000000000000000000000000094f6b746f20436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044f4b544f00000000000000000000000000000000000000000000000000000000