163 txs
163 calls
constructor
constructor(address token, uint256 attemptsBunchPrice, uint32 attemptsBunchSize, uint32 maxPaidAttemptsPerDay, uint32 freeAttemptsPerDay, address guessHook)
functions
getAttemptsBunchPrice
viewfunction getAttemptsBunchPrice() view returns (uint256)
getAttemptsBunchSize
viewfunction getAttemptsBunchSize() view returns (uint32)
getFreeAttemptsPerDay
viewfunction getFreeAttemptsPerDay() view returns (uint32)
getGameId
viewfunction getGameId() view returns (uint32)
getGuessHook
viewfunction getGuessHook() view returns (address)
getLeftAttempts
viewfunction getLeftAttempts(address player) view returns (uint32)
getMaxPaidAttemptsPerDay
viewfunction getMaxPaidAttemptsPerDay() view returns (uint32)
getPlayerAttempts
viewfunction getPlayerAttempts(uint32 gameId, address player) view returns (tuple)
getSecretPhrase
viewfunction getSecretPhrase(uint32 gameId) view returns (string)
getToken
viewfunction getToken() view returns (address)
getTotalContributions
viewfunction getTotalContributions(uint32 gameId) view returns (uint256)
getWinner
viewfunction getWinner(uint32 gameId) view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
buyAttempts
nonpayablefunction buyAttempts()
changeParameters
nonpayablefunction changeParameters(uint256 attemptsBunchPrice, uint32 attemptsBunchSize, uint32 maxPaidAttemptsPerDay, uint32 freeAttemptsPerDay, address guessHook)
guess
nonpayablefunction guess(bytes32 phraseHash)
renounceOwnership
nonpayablefunction renounceOwnership()
setWinner
nonpayablefunction setWinner(address winner, string secretPhrase)
startNewGame
nonpayablefunction startNewGame(uint256 attemptsBunchPrice, uint32 attemptsBunchSize, uint32 maxPaidAttemptsPerDay, uint32 freeAttemptsPerDay, address guessHook)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BuyAttempts
event BuyAttempts(uint32 indexed gameId, address indexed player)
GameEnded
event GameEnded(uint32 indexed gameId, address indexed winner, uint256 amount)
GameStarted
event GameStarted(uint32 indexed gameId)
Guess
event Guess(uint32 indexed gameId, address indexed player, bytes32 phraseHash)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
ParametersChanged
event ParametersChanged(uint32 indexed gameId, uint256 attemptsBunchPrice, uint32 attemptsBunchSize, uint32 maxPaidAttemptsPerDay, uint32 freeAttemptsPerDay, address guessHook)
errors
GuessGame__GameEnded
error GuessGame__GameEnded()
GuessGame__MaxPaidAttemptsReached
error GuessGame__MaxPaidAttemptsReached()
GuessGame__NoAttemptsLeft
error GuessGame__NoAttemptsLeft()
GuessGame__ZeroAddress
error GuessGame__ZeroAddress()
GuessGame__ZeroAmount
error GuessGame__ZeroAmount()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a03461026b57601f611c2c38819003918201601f19168301916001600160401b0383118484101761026f5780849260c09460405283398101031261026b5780516001600160a01b038116919082810361026b5760208201519061006560408401610283565b9361007260608501610283565b9160a061008160808701610283565b950151926001600160a01b0384169182850361026b57331561025857600180546001600160a01b03199081169091555f805433928116831782556040519692916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001600255156102495760805260055496600163ffffffff89160163ffffffff81116102355763ffffffff16809863ffffffff19161760055585156102265763ffffffff169586156102265763ffffffff82168015610226576003879055604082811b6bffffffff000000000000000016602094851b67ffffffff00000000166001600160601b038b161717606097881b6001600160601b03191617600455968552918401969096529382019390935263ffffffff9390931690830152608082015281907f77839ed7ba72e5a9c13f2f74c637e9c98a61277b1e2670008c3fac4f1e39412a9060a090a2604051907fe6aebc56b3bafc90ff9fcf8f838e304f2b308c7b3cc63fde56fb1806a03968fe5f80a2611997908161029582396080518181816109890152818161105501526114760152f35b633c2d538760e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b6310f1747360e11b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b519063ffffffff8216820361026b5756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630c27f872146114db575080630e3991851461149a57806321df0da71461142c5780632e375fc8146113e857806340b19bcd14611399578063477398aa1461133057806362d933f2146112dd5780636fd909ac14610e8d578063715018a614610dcb578063785a15a014610d3857806379ba509714610c305780638562804514610bed5780638682799b14610aa35780638da5cb5b14610a535780639303e6be146106d9578063a79653ef146106b5578063b18fe378146105c1578063c0bd835114610580578063e30c39781461052f578063e4aa533e1461020d578063f2fde38b1461014e5763fc0a4ccf14610110575f80fd5b3461014b57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014b576020600354604051908152f35b80fd5b503461014b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014b5773ffffffffffffffffffffffffffffffffffffffff61019b611516565b6101a36117a1565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b50346104d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d05760043563ffffffff6005541661027a8163ffffffff165f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416151590565b6105075767ffffffffffffffff61028f611785565b16600454825f52600660205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f2091604051926102cd8461154c565b549167ffffffffffffffff831691828552602085019263ffffffff8560401c16845263ffffffff604087019560601c168552106104fc575b63ffffffff82511663ffffffff61032481865116828560401c1661162d565b1611156104d45760601c8061045b575b5063ffffffff81511663ffffffff811461042e5760010163ffffffff1681524267ffffffffffffffff9081168452848752600660209081526040808920335f9081529252908190209451855493517fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090941692169190911791901b6bffffffff000000000000000016178255517fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff6fffffffff00000000000000000000000083549260601b1691161790556040519182527f901d98b904bc2ca47c16a37e15b5369a90197e3ca38d21f20f01cbcefe7f2c7a60203393a380f35b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b803b156104d0575f80916064604051809481937f8e2ccaf30000000000000000000000000000000000000000000000000000000083523360048401528a60248401528b60448401525af180156104c55715610334576104bd9196505f90611568565b5f945f610334565b6040513d5f823e3d90fd5b5f80fd5b7f10561502000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f82525f8352610305565b7f44d0838d000000000000000000000000000000000000000000000000000000005f5260045ffd5b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602063ffffffff60055416604051908152f35b346104d05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d0576105f8611539565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036104d05763ffffffff905f6040805161062d8161154c565b8281528260208201520152165f52600660205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052606060405f2063ffffffff604051916106788361154c565b548167ffffffffffffffff82169384815281604060208301928286831c1684520193871c1683526040519485525116602084015251166040820152f35b346104d0576106d76106c6366115a9565b936106d29391936117a1565b6117c1565b005b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d0576002805414610a2b576002805560055463ffffffff165f8181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1661050757805f52600660205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f206040519061077e8261154c565b5467ffffffffffffffff811682526020820163ffffffff8260401c16815263ffffffff604084019260601c16825267ffffffffffffffff6107bd611785565b1660045463ffffffff81169167ffffffffffffffff86511610155f14610a095763ffffffff806107f0848288511661162d565b9260201c169116116109e1576108b69163ffffffff61081381938287511661162d565b1684525b855f52600660205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205267ffffffffffffffff60405f209551167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000865416178555511683907fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000083549260401b169116179055565b517fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff6fffffffff00000000000000000000000083549260601b16911617905560035490805f52600960205260405f209182548181018091116109b4576109ad93556040519133907fd7707ca46ad17a6bfb256582d2d6aea4b36158b7ca0fcb46750052298fae95445f80a37f23b872dd000000000000000000000000000000000000000000000000000000006020830152336024830152306044830152606482015260648152610987608482611568565b7f00000000000000000000000000000000000000000000000000000000000000006118da565b6001600255005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f5fcd2700000000000000000000000000000000000000000000000000000000005f5260045ffd5b506108b69163ffffffff9167ffffffffffffffff421686525f82528452610817565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346104d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d05763ffffffff610adf611539565b165f52600760205260405f206040515f825492610afb84611734565b9081845260208401946001811690815f14610bb25750600114610b72575b84604085610b2981870382611568565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b5f90815260208120939250905b808210610b9857509091508101602001610b2982610b19565b919260018160209254838588010152019101909291610b7f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b82016020019050610b2982610b19565b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602063ffffffff600454821c16604051908152f35b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d0573373ffffffffffffffffffffffffffffffffffffffff6001541603610d0c577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001555f54337fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f5573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346104d057610d46366115a9565b91610d529493946117a1565b60055494600163ffffffff8716019463ffffffff86116109b4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009663ffffffff610da5971697889116176005556117c1565b7fe6aebc56b3bafc90ff9fcf8f838e304f2b308c7b3cc63fde56fb1806a03968fe5f80a2005b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057610e016117a1565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001555f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346104d05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057610ec4611516565b60243567ffffffffffffffff81116104d057366023820112156104d05780600401359167ffffffffffffffff83116112885760405192610f2c60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160185611568565b80845236602482850101116104d0576020815f92602473ffffffffffffffffffffffffffffffffffffffff96018388013785010152610f696117a1565b1680156112b55760055463ffffffff165f8181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1661050757805f52600860205260405f20827fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055805f52600760205260405f20835167ffffffffffffffff811161128857610ffc8254611734565b601f8111611243575b50602094601f82116001146111a5579481929394955f9261119a575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b7f00000000000000000000000000000000000000000000000000000000000000006040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff86165afa9081156104c5575f91611148575b5060209061113f7fbac14ed03ca373c9377f45242af662ea8381caa3597ad15a899fcb6f5ae4b04a93604051907fa9059cbb00000000000000000000000000000000000000000000000000000000858301528760248301528360448301526044825261113a606483611568565b6118da565b604051908152a3005b90506020813d602011611192575b8161116360209383611568565b810103126104d057517fbac14ed03ca373c9377f45242af662ea8381caa3597ad15a899fcb6f5ae4b04a6110cd565b3d9150611156565b015190508580611021565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821695835f52805f20915f5b88811061122b575083600195969798106111f4575b505050811b019055611053565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558580806111e7565b919260206001819286850151815501940192016111d2565b825f5260205f20601f830160051c8101916020841061127e575b601f0160051c01905b8181106112735750611005565b5f8155600101611266565b909150819061125d565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f21e2e8e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b346104d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d05763ffffffff611319611539565b165f526009602052602060405f2054604051908152f35b346104d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d05763ffffffff61136c611539565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346104d05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d05760206113da6113d5611516565b611647565b63ffffffff60405191168152f35b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602063ffffffff60045460401c16604051908152f35b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d057602063ffffffff60045416604051908152f35b346104d0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d05760209060045460601c8152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036104d057565b6004359063ffffffff821682036104d057565b6060810190811067ffffffffffffffff82111761128857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761128857604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126104d0576004359060243563ffffffff811681036104d0579060443563ffffffff811681036104d0579060643563ffffffff811681036104d0579060843573ffffffffffffffffffffffffffffffffffffffff811681036104d05790565b9063ffffffff8091169116019063ffffffff82116109b457565b60055463ffffffff165f8181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1661172e5763ffffffff60045460401c169167ffffffffffffffff611696611785565b16915f52600660205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526040805f20918151926116d18461154c565b549267ffffffffffffffff84169081815263ffffffff60208201958181871c16875260601c169384910152105f1461170857505090565b61171a63ffffffff929391839261162d565b92511691160363ffffffff81116109b45790565b50505f90565b90600182811c9216801561177b575b602083101461174e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611743565b62015180420642034281116109b45767ffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610d0c57565b9092919281156118b25763ffffffff169384156118b25763ffffffff84169081156118b25763ffffffff60a09473ffffffffffffffffffffffffffffffffffffffff937f77839ed7ba72e5a9c13f2f74c637e9c98a61277b1e2670008c3fac4f1e39412a97866003556004549067ffffffff000000006bffffffffffffffffffffffff8c7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808a60601b16951617169160201b16176bffffffff00000000000000008460401b16171760045582600554169860405196875260208701526040860152166060840152166080820152a2565b7f3c2d5387000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af1156104c5575f513d611958575073ffffffffffffffffffffffffffffffffffffffff81163b155b6119165750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6001141561190f56fea26469706673582212204afd2a3e60611b54a48229c069c2ee45ba257b23155a00ba1b0a96702e94abb764736f6c634300081b00330000000000000000000000006243558a24cc6116abe751f27e6d7ede50abfc7600000000000000000000000000000000000000000000001b1ae4d6e2ef5000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000