[ { "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": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "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": "amount", "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": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasury", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": [ { "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
608060405234801561001057600080fd5b506114db806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80637ecebe0011610097578063a9059cbb11610066578063a9059cbb14610207578063c4d66de81461021a578063d505accf1461022f578063dd62ed3e1461024257600080fd5b80637ecebe00146101be57806384b0196e146101d157806395d89b41146101ec578063a457c2d7146101f457600080fd5b8063313ce567116100d3578063313ce5671461016b5780633644e5151461017a578063395093511461018257806370a082311461019557600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d610255565b60405161011a91906110d8565b60405180910390f35b61013661013136600461110e565b6102e7565b604051901515815260200161011a565b6035545b60405190815260200161011a565b610136610166366004611138565b610301565b6040516012815260200161011a565b61014a610325565b61013661019036600461110e565b610334565b61014a6101a3366004611174565b6001600160a01b031660009081526033602052604090205490565b61014a6101cc366004611174565b610356565b6101d9610374565b60405161011a979695949392919061118f565b61010d610417565b61013661020236600461110e565b610426565b61013661021536600461110e565b6104a1565b61022d610228366004611174565b6104af565b005b61022d61023d366004611225565b610636565b61014a610250366004611298565b61079a565b606060368054610264906112cb565b80601f0160208091040260200160405190810160405280929190818152602001828054610290906112cb565b80156102dd5780601f106102b2576101008083540402835291602001916102dd565b820191906000526020600020905b8154815290600101906020018083116102c057829003601f168201915b5050505050905090565b6000336102f58185856107c5565b60019150505b92915050565b60003361030f8582856108e9565b61031a858585610963565b506001949350505050565b600061032f610b0e565b905090565b6000336102f5818585610347838361079a565b61035191906112ff565b6107c5565b6001600160a01b0381166000908152609960205260408120546102fb565b6000606080600080600060606065546000801b1480156103945750606654155b6103dd5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064015b60405180910390fd5b6103e5610b18565b6103ed610b27565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b606060378054610264906112cb565b60003381610434828661079a565b9050838110156104945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103d4565b61031a82868684036107c5565b6000336102f5818585610963565b600054610100900460ff16158080156104cf5750600054600160ff909116105b806104e95750303b1580156104e9575060005460ff166001145b61054c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103d4565b6000805460ff19166001179055801561056f576000805461ff0019166101001790555b6105b260405180604001604052806005815260200164426565667960d81b815250604051806040016040528060048152602001634249464960e01b815250610b36565b6105d860405180604001604052806005815260200164426565667960d81b815250610b67565b6105ec826910f0cf064dd592000000610bb4565b8015610632576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b834211156106865760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016103d4565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886106b58c610c75565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061071082610c9d565b9050600061072082878787610cca565b9050896001600160a01b0316816001600160a01b0316146107835760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016103d4565b61078e8a8a8a6107c5565b50505050505050505050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6001600160a01b0383166108275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d4565b6001600160a01b0382166108885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d4565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108f5848461079a565b9050600019811461095d57818110156109505760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103d4565b61095d84848484036107c5565b50505050565b6001600160a01b0383166109c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d4565b6001600160a01b038216610a295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103d4565b6001600160a01b03831660009081526033602052604090205481811015610aa15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103d4565b6001600160a01b0380851660008181526033602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b019086815260200190565b60405180910390a361095d565b600061032f610cf7565b606060678054610264906112cb565b606060688054610264906112cb565b600054610100900460ff16610b5d5760405162461bcd60e51b81526004016103d490611336565b6106328282610d6b565b600054610100900460ff16610b8e5760405162461bcd60e51b81526004016103d490611336565b610bb181604051806040016040528060018152602001603160f81b815250610dab565b50565b6001600160a01b038216610c0a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103d4565b8060356000828254610c1c91906112ff565b90915550506001600160a01b0382166000818152603360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03811660009081526099602052604090208054600181018255905b50919050565b60006102fb610caa610b0e565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000610cdb87878787610dfa565b91509150610ce881610ebe565b5095945050505050565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610d22611008565b610d2a611061565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600054610100900460ff16610d925760405162461bcd60e51b81526004016103d490611336565b6036610d9e83826113cf565b506037610cf282826113cf565b600054610100900460ff16610dd25760405162461bcd60e51b81526004016103d490611336565b6067610dde83826113cf565b506068610deb82826113cf565b50506000606581905560665550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610e315750600090506003610eb5565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e85573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610eae57600060019250925050610eb5565b9150600090505b94509492505050565b6000816004811115610ed257610ed261148f565b03610eda5750565b6001816004811115610eee57610eee61148f565b03610f3b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103d4565b6002816004811115610f4f57610f4f61148f565b03610f9c5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103d4565b6003816004811115610fb057610fb061148f565b03610bb15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103d4565b600080611013610b18565b80519091501561102a578051602090910120919050565b60655480156110395792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b60008061106c610b27565b805190915015611083578051602090910120919050565b60665480156110395792915050565b6000815180845260005b818110156110b85760208185018101518683018201520161109c565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006110eb6020830184611092565b9392505050565b80356001600160a01b038116811461110957600080fd5b919050565b6000806040838503121561112157600080fd5b61112a836110f2565b946020939093013593505050565b60008060006060848603121561114d57600080fd5b611156846110f2565b9250611164602085016110f2565b9150604084013590509250925092565b60006020828403121561118657600080fd5b6110eb826110f2565b60ff60f81b881681526000602060e0818401526111af60e084018a611092565b83810360408501526111c1818a611092565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b81811015611213578351835292840192918401916001016111f7565b50909c9b505050505050505050505050565b600080600080600080600060e0888a03121561124057600080fd5b611249886110f2565b9650611257602089016110f2565b95506040880135945060608801359350608088013560ff8116811461127b57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156112ab57600080fd5b6112b4836110f2565b91506112c2602084016110f2565b90509250929050565b600181811c908216806112df57607f821691505b602082108103610c9757634e487b7160e01b600052602260045260246000fd5b808201808211156102fb57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115610cf257600081815260208120601f850160051c810160208610156113a85750805b601f850160051c820191505b818110156113c7578281556001016113b4565b505050505050565b815167ffffffffffffffff8111156113e9576113e9611320565b6113fd816113f784546112cb565b84611381565b602080601f831160018114611432576000841561141a5750858301515b600019600386901b1c1916600185901b1785556113c7565b600085815260208120601f198616915b8281101561146157888601518255948401946001909101908401611442565b508582101561147f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fdfea26469706673582212207cf1abf62211f73d5c9c06cb97fd354bf80460d858db1260fc73e68354984ae564736f6c63430008130033