Loading
[ { "inputs": [], "name": "AllowanceOverflow", "type": "error" }, { "inputs": [], "name": "AllowanceUnderflow", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "CannotBurnUntilOwnerIsRenounced", "type": "error" }, { "inputs": [], "name": "CannotInteractWithPoolDuringGame", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidPermit", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "PermitExpired", "type": "error" }, { "inputs": [], "name": "TotalSupplyOverflow", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "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": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "result", "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": "result", "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": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "poolAddress_", "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": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "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": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "protocolBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "protocolMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "removeTransferRestriction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "result", "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": "payable", "type": "function" }, { "inputs": [], "name": "transferRestrictedTo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080604052348015600f57600080fd5b506110d68061001f6000396000f3fe6080604052600436106101665760003560e01c8063715018a6116100d1578063a9059cbb1161008a578063f04e283e11610064578063f04e283e1461041a578063f18788471461042d578063f2fde38b14610442578063fee81cf41461045557600080fd5b8063a9059cbb146103a4578063d505accf146103c4578063dd62ed3e146103e457600080fd5b8063715018a6146102fb5780637ecebe00146103035780638da5cb5b14610336578063922733d01461034f57806395d89b411461036f5780639a4f32601461038457600080fd5b80632c65925a116101235780632c65925a14610237578063313ce5671461026f5780633644e5151461028b57806342966c68146102a057806354d1f13d146102c057806370a08231146102c857600080fd5b806306fdde031461016b578063077f224a14610196578063095ea7b3146101b857806318160ddd146101e857806323b872dd1461020f578063256929621461022f575b600080fd5b34801561017757600080fd5b50610180610488565b60405161018d9190610c6d565b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004610d7b565b61051a565b005b3480156101c457600080fd5b506101d86101d3366004610def565b610561565b604051901515815260200161018d565b3480156101f457600080fd5b506805345cdf77eb68f44c545b60405190815260200161018d565b34801561021b57600080fd5b506101d861022a366004610e19565b6105b4565b6101b661066b565b34801561024357600080fd5b50600254610257906001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b34801561027b57600080fd5b50604051600b815260200161018d565b34801561029757600080fd5b506102016106bb565b3480156102ac57600080fd5b506101b66102bb366004610e55565b610738565b6101b661077b565b3480156102d457600080fd5b506102016102e3366004610e6e565b6387a211a2600c908152600091909152602090205490565b6101b66107b7565b34801561030f57600080fd5b5061020161031e366004610e6e565b6338377508600c908152600091909152602090205490565b34801561034257600080fd5b50638b78c6d81954610257565b34801561035b57600080fd5b506101b661036a366004610def565b6107cb565b34801561037b57600080fd5b506101806107e1565b34801561039057600080fd5b506101b661039f366004610def565b6107f0565b3480156103b057600080fd5b506101d86103bf366004610def565b610802565b3480156103d057600080fd5b506101b66103df366004610e90565b610876565b3480156103f057600080fd5b506102016103ff366004610f03565b602052637f5e9f20600c908152600091909152603490205490565b6101b6610428366004610e6e565b6109ff565b34801561043957600080fd5b506101b6610a3c565b6101b6610450366004610e6e565b610a56565b34801561046157600080fd5b50610201610470366004610e6e565b63389a75e1600c908152600091909152602090205490565b60606000805461049790610f36565b80601f01602080910402602001604051908101604052809291908181526020018280546104c390610f36565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b5050505050905090565b61052333610a7d565b600061052f8482610fc0565b50600161053c8382610fc0565b50600280546001600160a01b0319166001600160a01b03929092169190911790555050565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006105c1848484610ad7565b8360601b33602052637f5e9f208117600c526034600c20805460018101156105ff57808511156105f9576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106285763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c600080516020611081833981519152602080a3505060019392505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000806106c6610488565b8051906020012090506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6000610747638b78c6d8195490565b6001600160a01b03161461076e5760405163f2d4a54360e01b815260040160405180910390fd5b6107783382610b21565b50565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b6107bf610b92565b6107c96000610bad565b565b6107d3610b92565b6107dd8282610bf4565b5050565b60606001805461049790610f36565b6107f8610b92565b6107dd8282610b21565b600061080f338484610ad7565b6387a211a2600c52336000526020600c208054808411156108385763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c33600080516020611081833981519152602080a350600192915050565b6000610880610488565b8051906020012090508442111561089f57631a15a3cc6000526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52886000526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c206000528660ff1660205285604052846060526020806080600060015afa8b3d51146109ab5763ddafbaef6000526004601cfd5b0190556303faf4f960a51b88176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b610a07610b92565b63389a75e1600c52806000526020600c208054421115610a2f57636f5e88186000526004601cfd5b6000905561077881610bad565b610a44610b92565b600280546001600160a01b0319169055565b610a5e610b92565b8060601b610a7457637448fbae6000526004601cfd5b61077881610bad565b638b78c6d819805415610a9857630dc149f06000526004601cfd5b6001600160a01b03909116801560ff1b81179091558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b6002546001600160a01b031615801590610afe57506002546001600160a01b038381169116145b15610b1c57604051632885963160e01b815260040160405180910390fd5b505050565b610b2d82600083610ad7565b6387a211a2600c52816000526020600c20805480831115610b565763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c8054829003905560008181526001600160a01b038316600080516020611081833981519152602083a35050565b638b78c6d8195433146107c9576382b429006000526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3811560ff1b8217905550565b610c0060008383610ad7565b6805345cdf77eb68f44c5481810181811015610c245763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c6000600080516020611081833981519152602080a35050565b60006020808352835180602085015260005b81811015610c9b57858101830151858201604001528201610c7f565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610ce357600080fd5b813567ffffffffffffffff80821115610cfe57610cfe610cbc565b604051601f8301601f19908116603f01168101908282118183101715610d2657610d26610cbc565b81604052838152866020858801011115610d3f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b0381168114610d7657600080fd5b919050565b600080600060608486031215610d9057600080fd5b833567ffffffffffffffff80821115610da857600080fd5b610db487838801610cd2565b94506020860135915080821115610dca57600080fd5b50610dd786828701610cd2565b925050610de660408501610d5f565b90509250925092565b60008060408385031215610e0257600080fd5b610e0b83610d5f565b946020939093013593505050565b600080600060608486031215610e2e57600080fd5b610e3784610d5f565b9250610e4560208501610d5f565b9150604084013590509250925092565b600060208284031215610e6757600080fd5b5035919050565b600060208284031215610e8057600080fd5b610e8982610d5f565b9392505050565b600080600080600080600060e0888a031215610eab57600080fd5b610eb488610d5f565b9650610ec260208901610d5f565b95506040880135945060608801359350608088013560ff81168114610ee657600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610f1657600080fd5b610f1f83610d5f565b9150610f2d60208401610d5f565b90509250929050565b600181811c90821680610f4a57607f821691505b602082108103610f6a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610b1c576000816000526020600020601f850160051c81016020861015610f995750805b601f850160051c820191505b81811015610fb857828155600101610fa5565b505050505050565b815167ffffffffffffffff811115610fda57610fda610cbc565b610fee81610fe88454610f36565b84610f70565b602080601f831160018114611023576000841561100b5750858301515b600019600386901b1c1916600185901b178555610fb8565b600085815260208120601f198616915b8281101561105257888601518255948401946001909101908401611033565b50858210156110705787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206fe1563b3f28f1d4e0b2bd798f94fc00076d443fc94f899b0185cf6d594a06b464736f6c63430008190033