[ { "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": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Snapshot", "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": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "snapshotId", "type": "uint256" } ], "name": "balanceOfAt", "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": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [], "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" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "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": "uint256", "name": "snapshotId", "type": "uint256" } ], "name": "totalSupplyAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60c06040523480156200001157600080fd5b5060408051808201825260078152661353d1c810d05560ca1b602080830191909152825180840190935260038352624d4f4760e81b908301529081620000746000620000656001600160e01b03620002c916565b6001600160e01b03620002ce16565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b019020620000ac90620000656001600160e01b03620002c916565b60408051600481526024810182526020810180516001600160e01b031663701770bf60e01b17815291518151606093738e1f3ace1e04f687ef629d4997a17d5e97e27da59392918291908083835b602083106200011b5780518252601f199092019160209182019101620000fa565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200017f576040519150601f19603f3d011682016040523d82523d6000602084013e62000184565b606091505b509150600090506200019e6001600160e01b03620002e716565b9050604051808062001d2a60529139604080519182900360520182208651602080890191909120848401845260018552603160f81b94820194909452825180820192909252818301939093527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808082018690523060a0808401919091528351808403909101815260c0909201909252805190830120905283518482019250908110156200025157600080fd5b505160601b6001600160601b03191660a052505082516200027b9150600590602085019062000566565b5080516200029190600690602084019062000566565b50506007805460ff1916601217905550620002c3336c048b390540bd3455a6400000006001600160e01b03620002eb16565b62000608565b335b90565b620002e382826001600160e01b03620003f016565b5050565b4690565b6001600160a01b03821662000347576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000363816004546200047260201b62000cf81790919060201c565b6004556001600160a01b0382166000908152600260209081526040909120546200039891839062000cf862000472821b17901c565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828152602081815260409091206200041591839062000d52620004d6821b17901c565b15620002e3576200042e6001600160e01b03620002c916565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082820183811015620004cd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6000620004cd836001600160a01b0384166001600160e01b03620004f616565b60006200050d83836001600160e01b036200054e16565b6200054557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620004d0565b506000620004d0565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005a957805160ff1916838001178555620005d9565b82800160010185558215620005d9579182015b82811115620005d9578251825591602001919060010190620005bc565b50620005e7929150620005eb565b5090565b620002cb91905b80821115620005e75760008155600101620005f2565b60805160a05160601c6116e7620006436000398061069052806109725280610c235280610e085280610f9a52508061083152506116e76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80637ecebe00116100de578063a457c2d711610097578063d539139311610071578063d5391393146104f6578063d547741f146104fe578063d93aef111461052a578063dd62ed3e146105aa5761018e565b8063a457c2d714610481578063a9059cbb146104ad578063ca15c873146104d95761018e565b80637ecebe00146103c35780639010d07c146103e957806391d148541461042857806395d89b4114610454578063981b24d01461045c578063a217fddf146104795761018e565b8063313ce5671161014b5780633950935111610125578063395093511461033d5780634ee2cd7e1461036957806354fd4d501461039557806370a082311461039d5761018e565b8063313ce567146102eb5780633644e5151461030957806336568abe146103115761018e565b806306fdde0314610193578063095ea7b31461021057806318160ddd1461025057806323b872dd1461026a578063248a9ca3146102a05780632f2ff15d146102bd575b600080fd5b61019b6105d8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101d55781810151838201526020016101bd565b50505050905090810190601f1680156102025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61023c6004803603604081101561022657600080fd5b506001600160a01b03813516906020013561066e565b604080519115158252519081900360200190f35b61025861068c565b60408051918252519081900360200190f35b61023c6004803603606081101561028057600080fd5b506001600160a01b03813581169160208101359091169060400135610718565b610258600480360360208110156102b657600080fd5b50356107a5565b6102e9600480360360408110156102d357600080fd5b50803590602001356001600160a01b03166107ba565b005b6102f3610826565b6040805160ff9092168252519081900360200190f35b61025861082f565b6102e96004803603604081101561032757600080fd5b50803590602001356001600160a01b0316610853565b61023c6004803603604081101561035357600080fd5b506001600160a01b0381351690602001356108b4565b6102586004803603604081101561037f57600080fd5b506001600160a01b038135169060200135610908565b61019b610951565b610258600480360360208110156103b357600080fd5b50356001600160a01b031661096e565b610258600480360360208110156103d957600080fd5b50356001600160a01b0316610a18565b61040c600480360360408110156103ff57600080fd5b5080359060200135610a2a565b604080516001600160a01b039092168252519081900360200190f35b61023c6004803603604081101561043e57600080fd5b50803590602001356001600160a01b0316610a4f565b61019b610a6d565b6102586004803603602081101561047257600080fd5b5035610ace565b610258610afe565b61023c6004803603604081101561049757600080fd5b506001600160a01b038135169060200135610b03565b61023c600480360360408110156104c357600080fd5b506001600160a01b038135169060200135610b71565b610258600480360360208110156104ef57600080fd5b5035610b85565b610258610b9c565b6102e96004803603604081101561051457600080fd5b50803590602001356001600160a01b0316610bbf565b6102e96004803603606081101561054057600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056b57600080fd5b82018360208201111561057d57600080fd5b8035906020019184602083028401116401000000008311171561059f57600080fd5b919350915035610c18565b610258600480360360408110156105c057600080fd5b506001600160a01b0381358116916020013516610ccd565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106645780601f1061063957610100808354040283529160200191610664565b820191906000526020600020905b81548152906001019060200180831161064757829003601f168201915b5050505050905090565b600061068261067b610d67565b8484610d6b565b5060015b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106e757600080fd5b505afa1580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b5051905090565b6000610725848484610eee565b61079b84610731610d67565b61079685604051806060016040528060288152602001611612602891396001600160a01b038a1660009081526003602052604081209061076f610d67565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61105f16565b610d6b565b5060019392505050565b60009081526020819052604090206002015490565b6000828152602081905260409020600201546107dd906107d8610d67565b610a4f565b6108185760405162461bcd60e51b815260040180806020018281038252602f815260200180611591602f913960400191505060405180910390fd5b61082282826110f6565b5050565b60075460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b61085b610d67565b6001600160a01b0316816001600160a01b0316146108aa5760405162461bcd60e51b815260040180806020018281038252602f815260200180611683602f913960400191505060405180910390fd5b6108228282611165565b60006106826108c1610d67565b8461079685600360006108d2610d67565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610cf816565b6001600160a01b03821660009081526008602052604081208190819061092f9085906111d4565b9150915081610946576109418561096e565b610948565b805b95945050505050565b604051806040016040528060018152602001603160f81b81525081565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156109e657600080fd5b505afa1580156109fa573d6000803e3d6000fd5b505050506040513d6020811015610a1057600080fd5b505192915050565b60016020526000908152604090205481565b6000828152602081905260408120610a48908363ffffffff6112d716565b9392505050565b6000828152602081905260408120610a48908363ffffffff6112e316565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106645780601f1061063957610100808354040283529160200191610664565b6000806000610ade8460096111d4565b9150915081610af457610aef61068c565b610af6565b805b949350505050565b600081565b6000610682610b10610d67565b846107968560405180606001604052806025815260200161165e6025913960036000610b3a610d67565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61105f16565b6000610682610b7e610d67565b8484610eee565b6000818152602081905260408120610686906112f8565b604080516a4d494e5445525f524f4c4560a81b8152905190819003600b01902081565b600082815260208190526040902060020154610bdd906107d8610d67565b6108aa5760405162461bcd60e51b81526004018080602001828103825260308152602001806115e26030913960400191505060405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c4d57600080fd5b60005b82811015610cc657838382818110610c6457fe5b905060200201356001600160a01b03166001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600101610c50565b5050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b600082820183811015610a48576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610a48836001600160a01b038416611303565b3390565b6001600160a01b038316610db05760405162461bcd60e51b815260040180806020018281038252602481526020018061163a6024913960400191505060405180910390fd5b6001600160a01b038216610df55760405162461bcd60e51b81526004018080602001828103825260228152602001806115c06022913960400191505060405180910390fd5b336001600160a01b0384161415610e8c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633644e5156040518163ffffffff1660e01b815260040160206040518083038186803b158015610e5f57600080fd5b505afa158015610e73573d6000803e3d6000fd5b505050506040513d6020811015610e8957600080fd5b50505b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3604080516001600160a01b038581166024830152848116604483015260648201849052336084808401919091528351808403909101815260a490920183526020820180516001600160e01b03166335b643eb60e11b178152925182516000947f000000000000000000000000000000000000000000000000000000000000000093909316939282918083835b60208310610fe45780518252601f199092019160209182019101610fc5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611046576040519150601f19603f3d011682016040523d82523d6000602084013e61104b565b606091505b505090508061105957600080fd5b50505050565b600081848411156110ee5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110b357818101518382015260200161109b565b50505050905090810190601f1680156110e05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152602081905260409020611114908263ffffffff610d5216565b1561082257611121610d67565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020611183908263ffffffff61134d16565b1561082257611190610d67565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b60008060008411611225576040805162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b604482015290519081900360640190fd5b61122f600b611362565b841115611283576040805162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000604482015290519081900360640190fd5b6000611295848663ffffffff61136616565b84549091508114156112ae5750600091508190506112d0565b60018460010182815481106112bf57fe5b906000526020600020015492509250505b9250929050565b6000610a488383611407565b6000610a48836001600160a01b03841661146b565b600061068682611362565b600061130f838361146b565b61134557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610686565b506000610686565b6000610a48836001600160a01b038416611483565b5490565b815460009061137757506000610686565b82546000905b808210156113c65760006113918383611549565b9050848682815481106113a057fe5b906000526020600020015411156113b9578091506113c0565b8060010192505b5061137d565b6000821180156113ee5750838560018403815481106113e157fe5b9060005260206000200154145b156113ff5750600019019050610686565b509050610686565b815460009082106114495760405162461bcd60e51b815260040180806020018281038252602281526020018061156f6022913960400191505060405180910390fd5b82600001828154811061145857fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b6000818152600183016020526040812054801561153f57835460001980830191908101906000908790839081106114b657fe5b90600052602060002001549050808760000184815481106114d357fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061150357fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610686565b6000915050610686565b6000600280830660028506018161155c57fe5b0460028304600285040101939250505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a20617070726f766520746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220fb75dc103bc6a3f75edc7ca7c4af241b5f0efd78c89bfc94efd3d2379fe8610564736f6c63430006080033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429