[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newMintCap", "type": "uint256" } ], "name": "MintCapChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newMinter", "type": "address" } ], "name": "MinterChanged", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_TYPEHASH", "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": [ { "internalType": "address", "name": "srcRep", "type": "address" }, { "internalType": "address[]", "name": "dstRep", "type": "address[]" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "_moveDelegates", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": "rawAmount", "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": "address", "name": "", "type": "address" }, { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint96", "name": "votes", "type": "uint96" } ], "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": "rawAmount", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minimumTimeBetweenMints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintCap", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintingAllowedAfter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "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": "dst", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "src", "type": "address" }, { "internalType": "address", "name": "dst", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60a06040526c0142be8e393b9b5cbcfaf000006000556003805460ff191660051790553480156200002f57600080fd5b50600080543380835260056020908152604080852080546001600160601b0319166001600160601b0390951694909417909355835492519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600180546001600160a01b031916905560408051600080825260208201527f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6910160405180910390a16000600281905560408051600481526024810182526020810180516001600160e01b03166376ad2ebb60e11b17905290517345aa2859fefe62b0ba601af95f4d80ee9cec0644916200013291620001a3565b6000604051808303816000865af19150503d806000811462000171576040519150601f19603f3d011682016040523d82523d6000602084013e62000176565b606091505b5091505080806020019051810190620001909190620001e1565b6001600160a01b03166080525062000213565b6000825160005b81811015620001c65760208186018101518583015201620001aa565b81811115620001d6576000828501525b509190910192915050565b600060208284031215620001f457600080fd5b81516001600160a01b03811681146200020c57600080fd5b9392505050565b6080516119116200024b6000396000818161052a01528181610667015281816110f30152818161125301526113c401526119116000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636fcfff45116100f9578063a9059cbb11610097578063d505accf11610071578063d505accf14610448578063dd62ed3e1461045b578063f1127ed814610494578063fb9613cf146104fc57600080fd5b8063a9059cbb1461040f578063b4b5ea5714610422578063c3cda5201461043557600080fd5b8063782d6fe1116100d3578063782d6fe11461038d5780637ecebe00146103b857806395d89b41146103d8578063a457c2d7146103fc57600080fd5b80636fcfff451461034757806370a082311461036d57806376c71ca11461038057600080fd5b806330adf81f11610166578063395093511161014057806339509351146102d6578063587cde1e146102e95780635c11d62f146103125780635c19a95c1461033257600080fd5b806330adf81f1461028c57806330b36cef146102b3578063313ce567146102bc57600080fd5b806306fdde03146101ae57806307546172146101ee578063095ea7b31461021957806318160ddd1461023c57806320606b701461025257806323b872dd14610279575b600080fd5b6101d86040518060400160405280600b81526020016a1d1c9d5b5c1dda599a185d60aa1b81525081565b6040516101e591906114fd565b60405180910390f35b600154610201906001600160a01b031681565b6040516001600160a01b0390911681526020016101e5565b61022c61022736600461154c565b61050f565b60405190151581526020016101e5565b610244610526565b6040519081526020016101e5565b6102447f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b61022c610287366004611576565b6105af565b6102447f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61024460025481565b6102c4601281565b60405160ff90911681526020016101e5565b61022c6102e436600461154c565b610601565b6102016102f73660046115b2565b6006602052600090815260409020546001600160a01b031681565b61031d6301e1338081565b60405163ffffffff90911681526020016101e5565b6103456103403660046115b2565b610638565b005b61031d6103553660046115b2565b60086020526000908152604090205463ffffffff1681565b61024461037b3660046115b2565b610645565b6003546102c49060ff1681565b6103a061039b36600461154c565b6106d4565b6040516001600160601b0390911681526020016101e5565b6102446103c63660046115b2565b60096020526000908152604090205481565b6101d86040518060400160405280600581526020016405452554d560dc1b81525081565b61022c61040a36600461154c565b610964565b61022c61041d36600461154c565b61099b565b6103a06104303660046115b2565b6109a8565b6103456104433660046115de565b610a27565b610345610456366004611636565b610d0c565b6102446104693660046116a0565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6104d86104a23660046116d3565b600760209081526000928352604080842090915290825290205463ffffffff81169064010000000090046001600160601b031682565b6040805163ffffffff90931683526001600160601b039091166020830152016101e5565b61034561050a366004611713565b6110e8565b600061051c338484611201565b5060015b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa919061179f565b905090565b60006105bc848484611319565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546105f79186916105f29086906117ce565b611201565b5060019392505050565b3360008181526004602090815260408083206001600160a01b0387168452909152812054909161051c9185906105f29086906117e5565b610642338261143e565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa1580156106b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610520919061179f565b600043821061073b5760405162461bcd60e51b815260206004820152602860248201527f5452554d503a3a6765745072696f72566f7465733a206e6f74207965742064656044820152671d195c9b5a5b995960c21b60648201526084015b60405180910390fd5b6001600160a01b03831660009081526008602052604090205463ffffffff1680610769576000915050610520565b6001600160a01b0384166000908152600760205260408120849161078e6001856117fd565b63ffffffff90811682526020820192909252604001600020541611610802576001600160a01b0384166000908152600760205260408120906107d16001846117fd565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b031691506105209050565b6001600160a01b038416600090815260076020908152604080832083805290915290205463ffffffff1683101561083d576000915050610520565b60008061084b6001846117fd565b90505b8163ffffffff168163ffffffff16111561091e576000600261087084846117fd565b61087a9190611822565b61088490836117fd565b6001600160a01b038816600090815260076020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046001600160601b0316918101919091529192508714156108f2576020015194506105209350505050565b805163ffffffff1687111561090957819350610917565b6109146001836117fd565b92505b505061084e565b506001600160a01b038516600090815260076020908152604080832063ffffffff909416835292905220546001600160601b036401000000009091041691505092915050565b3360008181526004602090815260408083206001600160a01b0387168452909152812054909161051c9185906105f29086906117ce565b600061051c338484611319565b6001600160a01b03811660009081526008602052604081205463ffffffff16806109d3576000610a20565b6001600160a01b0383166000908152600760205260408120906109f76001846117fd565b63ffffffff16815260208101919091526040016000205464010000000090046001600160601b03165b9392505050565b604080518082018252600b81526a1d1c9d5b5c1dda599a185d60aa1b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f8bb59dd034ac727ed70e55a7776c5c38d078a28c9ad0f00c05946a427892295e81840152466060820152306080808301919091528351808303909101815260a0820184528051908301207345aa2859fefe62b0ba601af95f4d80ee9cec064460c08301526001600160a01b038a1660e083015261010082018990526101208083018990528451808403909101815261014083019094528351939092019290922061190160f01b6101608401526101628301829052610182830181905290916000906101a20160408051601f198184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015610ba1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610c145760405162461bcd60e51b815260206004820152602760248201527f5452554d503a3a64656c656761746542795369673a20696e76616c6964207369604482015266676e617475726560c81b6064820152608401610732565b6001600160a01b0381166000908152600960205260408120805491610c3883611853565b919050558914610c965760405162461bcd60e51b815260206004820152602360248201527f5452554d503a3a64656c656761746542795369673a20696e76616c6964206e6f6044820152626e636560e81b6064820152608401610732565b87421115610cf65760405162461bcd60e51b815260206004820152602760248201527f5452554d503a3a64656c656761746542795369673a207369676e617475726520604482015266195e1c1a5c995960ca1b6064820152608401610732565b610d00818b61143e565b50505050505050505050565b6000600019861415610d2657506001600160601b03610d4b565b610d48866040518060600160405280602581526020016118b7602591396114a2565b90505b604080518082018252600b81526a1d1c9d5b5c1dda599a185d60aa1b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f8bb59dd034ac727ed70e55a7776c5c38d078a28c9ad0f00c05946a427892295e81840152466060820152306080808301919091528351808303909101815260a090910183528051908201206001600160a01b038b166000908152600990925291812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918c918c918c919086610e2c83611853565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e00160405160208183030381529060405280519060200120905060008282604051602001610eab92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8b169284019290925260608301899052608083018890529092509060019060a0016020604051602081039080840390855afa158015610f16573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f795760405162461bcd60e51b815260206004820181905260248201527f5452554d503a3a7065726d69743a20696e76616c6964207369676e61747572656044820152606401610732565b8b6001600160a01b0316816001600160a01b031614610fda5760405162461bcd60e51b815260206004820152601b60248201527f5452554d503a3a7065726d69743a20756e617574686f72697a656400000000006044820152606401610732565b8842111561102a5760405162461bcd60e51b815260206004820181905260248201527f5452554d503a3a7065726d69743a207369676e617475726520657870697265646044820152606401610732565b846001600160601b0316600460008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020819055508a6001600160a01b03168c6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925876040516110d291906001600160601b0391909116815260200190565b60405180910390a3505050505050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461111d57600080fd5b828260008181106111305761113061186e565b905060200201602081019061114591906115b2565b6001600160a01b0316846001600160a01b0316141580156111665750600081115b156111fb5760005b828110156111f9578383828181106111885761118861186e565b905060200201602081019061119d91906115b2565b6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111e191815260200190565b60405180910390a36111f281611853565b905061116e565b505b50505050565b6001600160a01b03831661121757611217611884565b6001600160a01b03821661122d5761122d611884565b336001600160a01b03841614156112b8576040516317066a5760e21b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635c19a95c90602401600060405180830381600087803b15801561129f57600080fd5b505af11580156112b3573d6000803e3d6000fd5b505050505b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161135e91815260200190565b60405180910390a3604080516001600160a01b038581166024830152848116604483015260648201849052336084808401919091528351808403909101815260a490920183526020820180516001600160e01b0316622acc1360e41b17905291516000927f000000000000000000000000000000000000000000000000000000000000000016916113ee9161189a565b6000604051808303816000865af19150503d806000811461142b576040519150601f19603f3d011682016040523d82523d6000602084013e611430565b606091505b50509050806111fb57600080fd5b6001600160a01b0380831660008181526006602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4505050565b600081600160601b84106114c95760405162461bcd60e51b815260040161073291906114fd565b509192915050565b60005b838110156114ec5781810151838201526020016114d4565b838111156111fb5750506000910152565b602081526000825180602084015261151c8160408501602087016114d1565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461154757600080fd5b919050565b6000806040838503121561155f57600080fd5b61156883611530565b946020939093013593505050565b60008060006060848603121561158b57600080fd5b61159484611530565b92506115a260208501611530565b9150604084013590509250925092565b6000602082840312156115c457600080fd5b610a2082611530565b803560ff8116811461154757600080fd5b60008060008060008060c087890312156115f757600080fd5b61160087611530565b9550602087013594506040870135935061161c606088016115cd565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561165157600080fd5b61165a88611530565b965061166860208901611530565b95506040880135945060608801359350611684608089016115cd565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156116b357600080fd5b6116bc83611530565b91506116ca60208401611530565b90509250929050565b600080604083850312156116e657600080fd5b6116ef83611530565b9150602083013563ffffffff8116811461170857600080fd5b809150509250929050565b6000806000806060858703121561172957600080fd5b61173285611530565b9350602085013567ffffffffffffffff8082111561174f57600080fd5b818701915087601f83011261176357600080fd5b81358181111561177257600080fd5b8860208260051b850101111561178757600080fd5b95986020929092019750949560400135945092505050565b6000602082840312156117b157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156117e0576117e06117b8565b500390565b600082198211156117f8576117f86117b8565b500190565b600063ffffffff8381169083168181101561181a5761181a6117b8565b039392505050565b600063ffffffff8084168061184757634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b6000600019821415611867576118676117b8565b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082516118ac8184602087016114d1565b919091019291505056fe5452554d503a3a7065726d69743a20616d6f756e7420657863656564732039362062697473a2646970667358221220aa9c3b73d05fd9691b63f012371c483eec8040c57c0b28bb1f285228f96779ed64736f6c634300080b0033