Loading
[ { "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": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "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": "SNAPSHOT_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": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "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": "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": "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": "snapshot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "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" } ]
60806040523480156200001157600080fd5b50604051806040016040528060128152602001712637bb329026b7b739ba32b9102a37b5b2b760711b8152506040518060400160405280600381526020016213135560ea1b81525081600390816200006a9190620004c5565b506004620000798282620004c5565b506200008b91506000905033620000e9565b620000b77f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f33620000e9565b6402540be400620000e233620000d06012600a620006a4565b620000dc9084620006bc565b62000174565b5062000718565b620000f582826200026a565b620001705760008281526009602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200012f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6001600160a01b038216620001cf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b620001dd6000838362000297565b8060026000828254620001f19190620006d6565b90915550506001600160a01b0382166000908152602081905260408120805483929062000220908490620006d6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60008281526009602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b620002af838383620002b460201b620007061760201c565b505050565b620002cc838383620002af60201b620004661760201c565b6001600160a01b038316620002f057620002e6826200031b565b620002af62000353565b6001600160a01b0382166200030a57620002e6836200031b565b62000315836200031b565b620002af825b6001600160a01b0381166000908152600560209081526040808320918390529091205462000350919062000365565b62000365565b50565b6200036360066200034a60025490565b565b600062000371620003b4565b9050806200037f84620003d2565b1015620002af578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b6000620003cd60086200041d60201b6200074e1760201c565b905090565b80546000908103620003e657506000919050565b81548290620003f890600190620006ec565b815481106200040b576200040b62000702565b90600052602060002001549050919050565b5490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200044c57607f821691505b6020821081036200046d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002af57600081815260208120601f850160051c810160208610156200049c5750805b601f850160051c820191505b81811015620004bd57828155600101620004a8565b505050505050565b81516001600160401b03811115620004e157620004e162000421565b620004f981620004f2845462000437565b8462000473565b602080601f831160018114620005315760008415620005185750858301515b600019600386901b1c1916600185901b178555620004bd565b600085815260208120601f198616915b82811015620005625788860151825594840194600190910190840162000541565b5085821015620005815787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005e8578160001904821115620005cc57620005cc62000591565b80851615620005da57918102915b93841c9390800290620005ac565b509250929050565b600082620006015750600162000291565b81620006105750600062000291565b8160018114620006295760028114620006345762000654565b600191505062000291565b60ff84111562000648576200064862000591565b50506001821b62000291565b5060208310610133831016604e8410600b841016171562000679575081810a62000291565b620006858383620005a7565b80600019048211156200069c576200069c62000591565b029392505050565b6000620006b560ff841683620005f0565b9392505050565b808202811582820484141762000291576200029162000591565b8082018082111562000291576200029162000591565b8181038181111562000291576200029162000591565b634e487b7160e01b600052603260045260246000fd5b61155980620007286000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80637028e2cd116100c3578063981b24d01161007c578063981b24d0146102d5578063a217fddf146102e8578063a457c2d7146102f0578063a9059cbb14610303578063d547741f14610316578063dd62ed3e1461032957600080fd5b80637028e2cd1461026557806370a082311461028c57806379cc67901461029f57806391d14854146102b257806395d89b41146102c55780639711715a146102cd57600080fd5b80632f2ff15d116101155780632f2ff15d146101f5578063313ce5671461020a57806336568abe14610219578063395093511461022c57806342966c681461023f5780634ee2cd7e1461025257600080fd5b806301ffc9a71461015d57806306fdde0314610185578063095ea7b31461019a57806318160ddd146101ad57806323b872dd146101bf578063248a9ca3146101d2575b600080fd5b61017061016b36600461123a565b61033c565b60405190151581526020015b60405180910390f35b61018d610373565b60405161017c9190611288565b6101706101a83660046112d2565b610405565b6002545b60405190815260200161017c565b6101706101cd3660046112fc565b61041d565b6101b16101e0366004611338565b60009081526009602052604090206001015490565b610208610203366004611351565b610441565b005b6040516012815260200161017c565b610208610227366004611351565b61046b565b61017061023a3660046112d2565b6104ee565b61020861024d366004611338565b610510565b6101b16102603660046112d2565b61051d565b6101b17f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f81565b6101b161029a36600461137d565b610566565b6102086102ad3660046112d2565b610581565b6101706102c0366004611351565b610596565b61018d6105c1565b6102086105d0565b6101b16102e3366004611338565b610602565b6101b1600081565b6101706102fe3660046112d2565b61062d565b6101706103113660046112d2565b6106a8565b610208610324366004611351565b6106b6565b6101b1610337366004611398565b6106db565b60006001600160e01b03198216637965db0b60e01b148061036d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060038054610382906113c2565b80601f01602080910402602001604051908101604052809291908181526020018280546103ae906113c2565b80156103fb5780601f106103d0576101008083540402835291602001916103fb565b820191906000526020600020905b8154815290600101906020018083116103de57829003601f168201915b5050505050905090565b600033610413818585610752565b5060019392505050565b60003361042b858285610876565b6104368585856108f0565b506001949350505050565b60008281526009602052604090206001015461045c81610ac9565b6104668383610ad3565b505050565b6001600160a01b03811633146104e05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104ea8282610b59565b5050565b60003361041381858561050183836106db565b61050b9190611412565b610752565b61051a3382610bc0565b50565b6001600160a01b038216600090815260056020526040812081908190610544908590610d1a565b915091508161055b5761055685610566565b61055d565b805b95945050505050565b6001600160a01b031660009081526020819052604090205490565b61058c823383610876565b6104ea8282610bc0565b60009182526009602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060048054610382906113c2565b7f5fdbd35e8da83ee755d5e62a539e5ed7f47126abede0b8b10f9ea43dc6eed07f6105fa81610ac9565b6104ea610e10565b6000806000610612846006610d1a565b915091508161062357600254610625565b805b949350505050565b6000338161063b82866106db565b90508381101561069b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104d7565b6104368286868403610752565b6000336104138185856108f0565b6000828152600960205260409020600101546106d181610ac9565b6104668383610b59565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166107255761071d82610e6a565b610466610e94565b6001600160a01b03821661073c5761071d83610e6a565b61074583610e6a565b61046682610e6a565b5490565b6001600160a01b0383166107b45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d7565b6001600160a01b0382166108155760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061088284846106db565b905060001981146108ea57818110156108dd5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104d7565b6108ea8484848403610752565b50505050565b6001600160a01b0383166109545760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d7565b6001600160a01b0382166109b65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d7565b6109c1838383610ea4565b6001600160a01b03831660009081526020819052604090205481811015610a395760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104d7565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610a70908490611412565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610abc91815260200190565b60405180910390a36108ea565b61051a8133610eaf565b610add8282610596565b6104ea5760008281526009602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610b153390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610b638282610596565b156104ea5760008281526009602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b038216610c205760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104d7565b610c2c82600083610ea4565b6001600160a01b03821660009081526020819052604090205481811015610ca05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016104d7565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610ccf908490611425565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60008060008411610d665760405162461bcd60e51b815260206004820152601660248201527504552433230536e617073686f743a20696420697320360541b60448201526064016104d7565b610d6e610f13565b841115610dbd5760405162461bcd60e51b815260206004820152601d60248201527f4552433230536e617073686f743a206e6f6e6578697374656e7420696400000060448201526064016104d7565b6000610dc98486610f23565b84549091508103610de1576000809250925050610e09565b6001846001018281548110610df857610df8611438565b906000526020600020015492509250505b9250929050565b6000610e20600880546001019055565b6000610e2a610f13565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb6781604051610e5d91815260200190565b60405180910390a1919050565b6001600160a01b038116600090815260056020526040902061051a90610e8f83610566565b610fe8565b610ea26006610e8f60025490565b565b610466838383610706565b610eb98282610596565b6104ea57610ed1816001600160a01b03166014611032565b610edc836020611032565b604051602001610eed92919061144e565b60408051601f198184030181529082905262461bcd60e51b82526104d791600401611288565b6000610f1e60085490565b905090565b81546000908103610f365750600061036d565b82546000905b80821015610f92576000610f5083836111d5565b905084868281548110610f6557610f65611438565b90600052602060002001541115610f7e57809150610f8c565b610f89816001611412565b92505b50610f3c565b600082118015610fc757508385610faa600185611425565b81548110610fba57610fba611438565b9060005260206000200154145b15610fe057610fd7600183611425565b9250505061036d565b50905061036d565b6000610ff2610f13565b905080610ffe846111f0565b1015610466578254600180820185556000858152602080822090930193909355938401805494850181558252902090910155565b606060006110418360026114bd565b61104c906002611412565b67ffffffffffffffff811115611064576110646114d4565b6040519080825280601f01601f19166020018201604052801561108e576020820181803683370190505b509050600360fc1b816000815181106110a9576110a9611438565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106110d8576110d8611438565b60200101906001600160f81b031916908160001a90535060006110fc8460026114bd565b611107906001611412565b90505b600181111561117f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061113b5761113b611438565b1a60f81b82828151811061115157611151611438565b60200101906001600160f81b031916908160001a90535060049490941c93611178816114ea565b905061110a565b5083156111ce5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104d7565b9392505050565b60006111e46002848418611501565b6111ce90848416611412565b8054600090810361120357506000919050565b8154829061121390600190611425565b8154811061122357611223611438565b90600052602060002001549050919050565b919050565b60006020828403121561124c57600080fd5b81356001600160e01b0319811681146111ce57600080fd5b60005b8381101561127f578181015183820152602001611267565b50506000910152565b60208152600082518060208401526112a7816040850160208701611264565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461123557600080fd5b600080604083850312156112e557600080fd5b6112ee836112bb565b946020939093013593505050565b60008060006060848603121561131157600080fd5b61131a846112bb565b9250611328602085016112bb565b9150604084013590509250925092565b60006020828403121561134a57600080fd5b5035919050565b6000806040838503121561136457600080fd5b82359150611374602084016112bb565b90509250929050565b60006020828403121561138f57600080fd5b6111ce826112bb565b600080604083850312156113ab57600080fd5b6113b4836112bb565b9150611374602084016112bb565b600181811c908216806113d657607f821691505b6020821081036113f657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561036d5761036d6113fc565b8181038181111561036d5761036d6113fc565b634e487b7160e01b600052603260045260246000fd5b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611480816017850160208801611264565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516114b1816028840160208801611264565b01602801949350505050565b808202811582820484141761036d5761036d6113fc565b634e487b7160e01b600052604160045260246000fd5b6000816114f9576114f96113fc565b506000190190565b60008261151e57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122048c9d1bb433041f7a085cdcb48e19434a0cefddc39b46c875cc1f37cc488c3ba64736f6c63430008110033