[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" } ], "name": "AddressWhitelisted", "type": "event" }, { "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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" }, { "anonymous": false, "inputs": [], "name": "TransfersEnabled", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "users", "type": "address[]" } ], "name": "allowTransfersFor", "outputs": [], "stateMutability": "nonpayable", "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": "enableTransfers", "outputs": [], "stateMutability": "nonpayable", "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": "user", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transfersEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040518060400160405280601381526020017f656c656374726963616c20656e67696e6565720000000000000000000000000081525060405180604001604052806002815260200161454560f01b8152506200007d62000077620000db60201b60201c565b620000df565b60046200008b838262000370565b5060056200009a828262000370565b50506007805460ff1916600117905550620000b5336200012f565b620000cb33690e9c7f5bd655012000006200017b565b6007805460ff1916905562000464565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116600081815260066020526040808220805460ff19166001179055517f4f783c179409b4127238bc9c990bc99b9a651666a0d20b51d6c42849eb88466d9190a250565b6001600160a01b038216620001d75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b620001e56000838362000252565b8060036000828254620001f991906200043c565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60075460ff16620002c7576001600160a01b03831660009081526006602052604090205460ff16620002c75760405162461bcd60e51b815260206004820152601660248201527f5472616e7366657273206172652064697361626c6564000000000000000000006044820152606401620001ce565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002f757607f821691505b6020821081036200031857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002c757600081815260208120601f850160051c81016020861015620003475750805b601f850160051c820191505b81811015620003685782815560010162000353565b505050505050565b81516001600160401b038111156200038c576200038c620002cc565b620003a4816200039d8454620002e2565b846200031e565b602080601f831160018114620003dc5760008415620003c35750858301515b600019600386901b1c1916600185901b17855562000368565b600085815260208120601f198616915b828110156200040d57888601518255948401946001909101908401620003ec565b50858210156200042c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200045e57634e487b7160e01b600052601160045260246000fd5b92915050565b610d5380620004746000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806386b30a33116100a2578063a9059cbb11610071578063a9059cbb14610232578063af35c6c714610245578063bef97c871461024d578063dd62ed3e1461025a578063f2fde38b1461026d57600080fd5b806386b30a33146101e95780638da5cb5b146101fc57806395d89b4114610217578063a457c2d71461021f57600080fd5b8063313ce567116100e9578063313ce5671461018157806339509351146101905780633af32abf146101a357806370a08231146101b6578063715018a6146101df57600080fd5b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015c57806323b872dd1461016e575b600080fd5b610123610280565b6040516101309190610af1565b60405180910390f35b61014c610147366004610b5b565b610312565b6040519015158152602001610130565b6003545b604051908152602001610130565b61014c61017c366004610b85565b61032c565b60405160098152602001610130565b61014c61019e366004610b5b565b610350565b61014c6101b1366004610bc1565b610372565b6101606101c4366004610bc1565b6001600160a01b031660009081526001602052604090205490565b6101e76103a8565b005b6101e76101f7366004610be3565b6103bc565b6000546040516001600160a01b039091168152602001610130565b61012361046d565b61014c61022d366004610b5b565b61047c565b61014c610240366004610b5b565b6104f7565b6101e7610505565b60075461014c9060ff1681565b610160610268366004610c58565b610598565b6101e761027b366004610bc1565b6105c3565b60606004805461028f90610c8b565b80601f01602080910402602001604051908101604052809291908181526020018280546102bb90610c8b565b80156103085780601f106102dd57610100808354040283529160200191610308565b820191906000526020600020905b8154815290600101906020018083116102eb57829003601f168201915b5050505050905090565b60003361032081858561063c565b60019150505b92915050565b60003361033a858285610760565b6103458585856107da565b506001949350505050565b6000336103208185856103638383610598565b61036d9190610cdb565b61063c565b60075460009060ff166103a0576001600160a01b03821660009081526006602052604090205460ff16610326565b600092915050565b6103b0610990565b6103ba60006109ea565b565b6103c4610990565b60075460ff161561041c5760405162461bcd60e51b815260206004820152601d60248201527f5472616e73666572732061726520616c726561647920656e61626c656400000060448201526064015b60405180910390fd5b60005b818110156104685761045683838381811061043c5761043c610cee565b90506020020160208101906104519190610bc1565b610a3a565b8061046081610d04565b91505061041f565b505050565b60606005805461028f90610c8b565b6000338161048a8286610598565b9050838110156104ea5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610413565b610345828686840361063c565b6000336103208185856107da565b61050d610990565b60075460ff16156105605760405162461bcd60e51b815260206004820152601d60248201527f5472616e73666572732061726520616c726561647920656e61626c65640000006044820152606401610413565b6007805460ff191660011790556040517feadb24812ab3c9a55c774958184293ebdb6c7f6a2dbab11f397d80c86feb65d390600090a1565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6105cb610990565b6001600160a01b0381166106305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610413565b610639816109ea565b50565b6001600160a01b03831661069e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610413565b6001600160a01b0382166106ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610413565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061076c8484610598565b905060001981146107d457818110156107c75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610413565b6107d4848484840361063c565b50505050565b6001600160a01b03831661083e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610413565b6001600160a01b0382166108a05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610413565b6108ab838383610a86565b6001600160a01b038316600090815260016020526040902054818110156109235760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610413565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109839086815260200190565b60405180910390a36107d4565b6000546001600160a01b031633146103ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610413565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116600081815260066020526040808220805460ff19166001179055517f4f783c179409b4127238bc9c990bc99b9a651666a0d20b51d6c42849eb88466d9190a250565b60075460ff16610468576001600160a01b03831660009081526006602052604090205460ff166104685760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610413565b600060208083528351808285015260005b81811015610b1e57858101830151858201604001528201610b02565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b5657600080fd5b919050565b60008060408385031215610b6e57600080fd5b610b7783610b3f565b946020939093013593505050565b600080600060608486031215610b9a57600080fd5b610ba384610b3f565b9250610bb160208501610b3f565b9150604084013590509250925092565b600060208284031215610bd357600080fd5b610bdc82610b3f565b9392505050565b60008060208385031215610bf657600080fd5b823567ffffffffffffffff80821115610c0e57600080fd5b818501915085601f830112610c2257600080fd5b813581811115610c3157600080fd5b8660208260051b8501011115610c4657600080fd5b60209290920196919550909350505050565b60008060408385031215610c6b57600080fd5b610c7483610b3f565b9150610c8260208401610b3f565b90509250929050565b600181811c90821680610c9f57607f821691505b602082108103610cbf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561032657610326610cc5565b634e487b7160e01b600052603260045260246000fd5b600060018201610d1657610d16610cc5565b506001019056fea2646970667358221220dcaa93698c24c5420046adbc5fd74da41509bfe14f93b524622baf949841c05164736f6c63430008130033