234 txs
235 calls
constructor
constructor(address _triviToken, address _treasuryAddress, address _leaderboardAddress, address _backendService)
functions
backendService
viewfunction backendService() view returns (address)
calculatePrizeDistribution
purefunction calculatePrizeDistribution(uint256 playerCount) pure returns (uint256 winnerBps, uint256 leaderboardBps, uint256 treasuryBps)
getTournamentDetails
viewfunction getTournamentDetails(string tournamentId) view returns (uint256 entryFee, uint256 totalPrizePool, uint256 playerCount, bool isActive, bool isCompleted, address winner)
getTournamentPlayers
viewfunction getTournamentPlayers(string tournamentId) view returns (address[])
hasPlayerEntered
viewfunction hasPlayerEntered(string tournamentId, address player) view returns (bool)
leaderboardAddress
viewfunction leaderboardAddress() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
PRECISION
viewfunction PRECISION() view returns (uint256)
tournaments
viewfunction tournaments(string) view returns (string tournamentId, uint256 entryFee, uint256 totalPrizePool, uint256 playerCount, bool isActive, bool isCompleted, address winner, uint256 winnerPayout, uint256 treasuryPayout, uint256 leaderboardPayout)
treasuryAddress
viewfunction treasuryAddress() view returns (address)
triviToken
viewfunction triviToken() view returns (address)
cancelTournament
nonpayablefunction cancelTournament(string tournamentId)
completeTournament
nonpayablefunction completeTournament(string tournamentId, address winnerAddress)
createTournament
nonpayablefunction createTournament(string tournamentId, uint256 entryFee, uint256 maxPlayers)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address token, uint256 amount)
enterTournament
nonpayablefunction enterTournament(string tournamentId)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateBackendService
nonpayablefunction updateBackendService(address newService)
updateLeaderboardAddress
nonpayablefunction updateLeaderboardAddress(address newLeaderboard)
updateTreasuryAddress
nonpayablefunction updateTreasuryAddress(address newTreasury)
events
BackendServiceUpdated
event BackendServiceUpdated(address indexed newService)
DirectPayout
event DirectPayout(address indexed winner, uint256 amount)
LeaderboardAddressUpdated
event LeaderboardAddressUpdated(address indexed newLeaderboard)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PlayerEntered
event PlayerEntered(string indexed tournamentId, address indexed player, uint256 entryFee)
TournamentCompleted
event TournamentCompleted(string indexed tournamentId, address indexed winner, uint256 winnerPayout, uint256 treasuryPayout, uint256 leaderboardPayout)
TournamentCreated
event TournamentCreated(string indexed tournamentId, uint256 entryFee, uint256 maxPlayers)
TreasuryAddressUpdated
event TreasuryAddressUpdated(address indexed newTreasury)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620022d7380380620022d7833981016040819052620000349162000274565b6200003f3362000207565b600180556002805460ff191690556001600160a01b038416620000a95760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420545249564920746f6b656e2061646472657373000000000060448201526064015b60405180910390fd5b6001600160a01b038316620001015760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207472656173757279206164647265737300000000000000006044820152606401620000a0565b6001600160a01b038216620001595760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6561646572626f617264206164647265737300000000006044820152606401620000a0565b6001600160a01b038116620001b15760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964206261636b656e6420736572766963652061646472657373006044820152606401620000a0565b6001600160a01b039384166080526002805493851661010002610100600160a81b031990941693909317909255600380549184166001600160a01b031992831617905560048054929093169116179055620002d1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200026f57600080fd5b919050565b600080600080608085870312156200028b57600080fd5b620002968562000257565b9350620002a66020860162000257565b9250620002b66040860162000257565b9150620002c66060860162000257565b905092959194509250565b608051611fc7620003106000396000818161018a01528181610b1001528181610e08015281816111b601528181611238015261127d0152611fc76000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063841e4561116100c3578063aaf5eb681161007c578063aaf5eb6814610309578063aceb53d514610320578063b2113ef714610333578063c5f956af14610380578063dc72179014610398578063f2fde38b146103ab57600080fd5b8063841e4561146102895780638456cb591461029c5780638da5cb5b146102a457806395ccea67146102b55780639cdbbd76146102c8578063a604082a146102f657600080fd5b80635c975abb116101155780635c975abb14610214578063615ac4351461021f5780636ab5bddc14610232578063715018a61461025b57806374dc039914610263578063828817971461027657600080fd5b806302923dbc1461015d5780631f680672146101855780633f4ba83a146101c457806346be4cb5146101ce5780634994c0b4146101e1578063560f5966146101f4575b600080fd5b61017061016b366004611a37565b6103be565b60405190151581526020015b60405180910390f35b6101ac7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161017c565b6101cc61045d565b005b6101cc6101dc366004611a85565b61046f565b6101cc6101ef366004611ad3565b6106b4565b610207610202366004611af5565b61075c565b60405161017c9190611b2a565b60025460ff16610170565b6101cc61022d366004611ad3565b610827565b610245610240366004611af5565b6108cf565b60405161017c9a99989796959493929190611bc7565b6101cc6109c4565b6101cc610271366004611af5565b6109d6565b6003546101ac906001600160a01b031681565b6101cc610297366004611ad3565b610b64565b6101cc610c14565b6000546001600160a01b03166101ac565b6101cc6102c3366004611c2a565b610c24565b6102db6102d6366004611c54565b610c52565b6040805193845260208401929092529082015260600161017c565b6101cc610304366004611af5565b610cb6565b61031261271081565b60405190815260200161017c565b6101cc61032e366004611a37565b610f00565b610346610341366004611af5565b61131d565b6040805196875260208701959095529385019290925215156060840152151560808301526001600160a01b031660a082015260c00161017c565b6002546101ac9061010090046001600160a01b031681565b6004546101ac906001600160a01b031681565b6101cc6103b9366004611ad3565b6113d8565b60008260006005826040516103d39190611c6d565b90815260405190819003602001902080546103ed90611c89565b9050116104155760405162461bcd60e51b815260040161040c90611cbd565b60405180910390fd5b6005846040516104259190611c6d565b90815260408051602092819003830190206001600160a01b0395909516600090815260089095019091529092205460ff169392505050565b610465611451565b61046d6114ab565b565b6004546001600160a01b031633146104995760405162461bcd60e51b815260040161040c90611cf4565b6104a16114fd565b60008351116104f25760405162461bcd60e51b815260206004820152601d60248201527f546f75726e616d656e742049442063616e6e6f7420626520656d707479000000604482015260640161040c565b600082116105425760405162461bcd60e51b815260206004820181905260248201527f456e74727920666565206d7573742062652067726561746572207468616e2030604482015260640161040c565b600181116105925760405162461bcd60e51b815260206004820152601d60248201527f4d75737420616c6c6f77206174206c65617374203220706c6179657273000000604482015260640161040c565b6005836040516105a29190611c6d565b90815260405190819003602001902080546105bc90611c89565b15905061060b5760405162461bcd60e51b815260206004820152601960248201527f546f75726e616d656e7420616c72656164792065786973747300000000000000604482015260640161040c565b600060058460405161061d9190611c6d565b9081526040519081900360200190209050806106398582611d84565b506001808201849055600060028301819055600383015560048201805461ffff1916909117905560405161066e908590611c6d565b6040805191829003822085835260208301859052917fbefb3a7d9beef6946aedb65d17d2eb59fbef1689cfb32d0906f7678b06449807910160405180910390a250505050565b6106bc611451565b6001600160a01b0381166107125760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964206261636b656e642073657276696365206164647265737300604482015260640161040c565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f9f99ccbf9dfb68ba99dd44d1015d639e6d3fbe55f3faa3fa6f58e3d0bd908bdd90600090a250565b60608160006005826040516107719190611c6d565b908152604051908190036020019020805461078b90611c89565b9050116107aa5760405162461bcd60e51b815260040161040c90611cbd565b6005836040516107ba9190611c6d565b908152604080519182900360209081018320600901805480830285018301909352828452919083018282801561081957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107fb575b505050505091505b50919050565b61082f611451565b6001600160a01b0381166108855760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6561646572626f61726420616464726573730000000000604482015260640161040c565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f46e34f52f66f7f7f3eba852f03fb19b384b9330ba5ba72e761dc7898a8415b2890600090a250565b80516020818301810180516005825292820191909301209152805481906108f590611c89565b80601f016020809104026020016040519081016040528092919081815260200182805461092190611c89565b801561096e5780601f106109435761010080835404028352916020019161096e565b820191906000526020600020905b81548152906001019060200180831161095157829003601f168201915b5050505060018301546002840154600385015460048601546005870154600688015460079098015496979496939550919360ff80831694610100840490911693620100009093046001600160a01b03169291908a565b6109cc611451565b61046d6000611543565b6004546001600160a01b03163314610a005760405162461bcd60e51b815260040161040c90611cf4565b806000600582604051610a139190611c6d565b9081526040519081900360200190208054610a2d90611c89565b905011610a4c5760405162461bcd60e51b815260040161040c90611cbd565b610a54611593565b6000600583604051610a669190611c6d565b908152604051908190036020019020600481015490915060ff16610a9c5760405162461bcd60e51b815260040161040c90611e44565b6004810154610100900460ff1615610ac65760405162461bcd60e51b815260040161040c90611e7b565b60005b6009820154811015610b4b576000826009018281548110610aec57610aec611eb2565b60009182526020909120015460018401546001600160a01b039182169250610b38917f0000000000000000000000000000000000000000000000000000000000000000169083906115ec565b5080610b4381611ede565b915050610ac9565b50600401805460ff19169055610b6060018055565b5050565b610b6c611451565b6001600160a01b038116610bc25760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420747265617375727920616464726573730000000000000000604482015260640161040c565b60028054610100600160a81b0319166101006001600160a01b038416908102919091179091556040517fb6a5e89655cf506139085f051af608195ed056f8dc550b180a1c38d401e2b6c490600090a250565b610c1c611451565b61046d61164f565b610c2c611451565b610b60610c416000546001600160a01b031690565b6001600160a01b03841690836115ec565b600080600060028411610c70575061232891506101f4905080610caf565b600a8411610c895750611f4091506103e8905080610caf565b60198411610ca25750611b5891506105dc905080610caf565b5061138891506109c49050805b9193909250565b806000600582604051610cc99190611c6d565b9081526040519081900360200190208054610ce390611c89565b905011610d025760405162461bcd60e51b815260040161040c90611cbd565b610d0a6114fd565b610d12611593565b6000600583604051610d249190611c6d565b908152604051908190036020019020600481015490915060ff16610d5a5760405162461bcd60e51b815260040161040c90611e44565b6004810154610100900460ff1615610d845760405162461bcd60e51b815260040161040c90611e7b565b33600090815260088201602052604090205460ff1615610df55760405162461bcd60e51b815260206004820152602660248201527f506c6179657220616c726561647920656e7465726564207468697320746f75726044820152651b985b595b9d60d21b606482015260840161040c565b6001810154610e32906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016903390309061168c565b33600081815260088301602090815260408220805460ff19166001908117909155600985018054918201815583529082200180546001600160a01b03191690921790915560038201805491610e8683611ede565b91905055508060010154816002016000828254610ea39190611ef7565b90915550506040513390610eb8908590611c6d565b60405190819003812060018401548252907f3e1dae124874d6922b51f6aaf8b153a2ec9c841a8af5c725015558d54c8974869060200160405180910390a350610b6060018055565b6004546001600160a01b03163314610f2a5760405162461bcd60e51b815260040161040c90611cf4565b816000600582604051610f3d9190611c6d565b9081526040519081900360200190208054610f5790611c89565b905011610f765760405162461bcd60e51b815260040161040c90611cbd565b610f7e611593565b6000600584604051610f909190611c6d565b908152604051908190036020019020600481015490915060ff16610fc65760405162461bcd60e51b815260040161040c90611e44565b6004810154610100900460ff1615610ff05760405162461bcd60e51b815260040161040c90611e7b565b6001600160a01b038316600090815260088201602052604090205460ff1661106a5760405162461bcd60e51b815260206004820152602760248201527f57696e6e6572206d757374206265206120746f75726e616d656e7420706172746044820152661a58da5c185b9d60ca1b606482015260840161040c565b60008160030154116110be5760405162461bcd60e51b815260206004820152601860248201527f4e6f20706c617965727320696e20746f75726e616d656e740000000000000000604482015260640161040c565b60008060006110d08460030154610c52565b6002870154929550909350915060006127106110ec8684611f10565b6110f69190611f27565b905060006127106111078685611f10565b6111119190611f27565b905060006127106111228686611f10565b61112c9190611f27565b905060008161113b8486611ef7565b6111459190611ef7565b905084811015611166576111598186611f49565b6111639085611ef7565b93505b6004890180546001600160a01b038d1662010000026001600160b01b0319909116176101001790556005890184905560068901829055600789018390558315611221576111dd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168c866115ec565b8a6001600160a01b03167f2bdb0b544edc317eb7d69f20a0616b69530b377b5886569c27d5dc2c2b45a5408560405161121891815260200190565b60405180910390a25b811561126657600254611266906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691610100900416846115ec565b82156112a6576003546112a6906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116856115ec565b8a6001600160a01b03168c6040516112be9190611c6d565b6040805191829003822087835260208301869052908201869052907f9615ba1b18e9f02c92f7b275f6e4960f08fcc17722d14c4bf4aa54a41498ed7e9060600160405180910390a350505050505050505061131860018055565b505050565b6000806000806000808660006005826040516113399190611c6d565b908152604051908190036020019020805461135390611c89565b9050116113725760405162461bcd60e51b815260040161040c90611cbd565b60006005896040516113849190611c6d565b908152604051908190036020019020600181015460028201546003830154600490930154919c909b5091995060ff808216995061010082041697506001600160a01b03620100009091041695509350505050565b6113e0611451565b6001600160a01b0381166114455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161040c565b61144e81611543565b50565b6000546001600160a01b0316331461046d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161040c565b6114b36116ca565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60025460ff161561046d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161040c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6002600154036115e55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161040c565b6002600155565b6040516001600160a01b03831660248201526044810182905261131890849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611713565b6116576114fd565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114e03390565b6040516001600160a01b03808516602483015283166044820152606481018290526116c49085906323b872dd60e01b90608401611618565b50505050565b60025460ff1661046d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161040c565b6000611768826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117e89092919063ffffffff16565b90508051600014806117895750808060200190518101906117899190611f5c565b6113185760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161040c565b60606117f784846000856117ff565b949350505050565b6060824710156118605760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161040c565b600080866001600160a01b0316858760405161187c9190611c6d565b60006040518083038185875af1925050503d80600081146118b9576040519150601f19603f3d011682016040523d82523d6000602084013e6118be565b606091505b50915091506118cf878383876118da565b979650505050505050565b60608315611949578251600003611942576001600160a01b0385163b6119425760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161040c565b50816117f7565b6117f7838381511561195e5781518083602001fd5b8060405162461bcd60e51b815260040161040c9190611f7e565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261199f57600080fd5b813567ffffffffffffffff808211156119ba576119ba611978565b604051601f8301601f19908116603f011681019082821181831017156119e2576119e2611978565b816040528381528660208588010111156119fb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b80356001600160a01b0381168114611a3257600080fd5b919050565b60008060408385031215611a4a57600080fd5b823567ffffffffffffffff811115611a6157600080fd5b611a6d8582860161198e565b925050611a7c60208401611a1b565b90509250929050565b600080600060608486031215611a9a57600080fd5b833567ffffffffffffffff811115611ab157600080fd5b611abd8682870161198e565b9660208601359650604090950135949350505050565b600060208284031215611ae557600080fd5b611aee82611a1b565b9392505050565b600060208284031215611b0757600080fd5b813567ffffffffffffffff811115611b1e57600080fd5b6117f78482850161198e565b6020808252825182820181905260009190848201906040850190845b81811015611b6b5783516001600160a01b031683529284019291840191600101611b46565b50909695505050505050565b60005b83811015611b92578181015183820152602001611b7a565b50506000910152565b60008151808452611bb3816020860160208601611b77565b601f01601f19169290920160200192915050565b6000610140808352611bdb8184018e611b9b565b602084019c909c52505060408101989098526060880196909652931515608087015291151560a08601526001600160a01b031660c085015260e084015261010083015261012090910152919050565b60008060408385031215611c3d57600080fd5b611c4683611a1b565b946020939093013593505050565b600060208284031215611c6657600080fd5b5035919050565b60008251611c7f818460208701611b77565b9190910192915050565b600181811c90821680611c9d57607f821691505b60208210810361082157634e487b7160e01b600052602260045260246000fd5b60208082526019908201527f546f75726e616d656e7420646f6573206e6f7420657869737400000000000000604082015260600190565b60208082526022908201527f4f6e6c79206261636b656e6420736572766963652063616e2063616c6c207468604082015261697360f01b606082015260800190565b601f82111561131857600081815260208120601f850160051c81016020861015611d5d5750805b601f850160051c820191505b81811015611d7c57828155600101611d69565b505050505050565b815167ffffffffffffffff811115611d9e57611d9e611978565b611db281611dac8454611c89565b84611d36565b602080601f831160018114611de75760008415611dcf5750858301515b600019600386901b1c1916600185901b178555611d7c565b600085815260208120601f198616915b82811015611e1657888601518255948401946001909101908401611df7565b5085821015611e345787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526018908201527f546f75726e616d656e74206973206e6f74206163746976650000000000000000604082015260600190565b6020808252601f908201527f546f75726e616d656e7420697320616c726561647920636f6d706c6574656400604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ef057611ef0611ec8565b5060010190565b80820180821115611f0a57611f0a611ec8565b92915050565b8082028115828204841417611f0a57611f0a611ec8565b600082611f4457634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115611f0a57611f0a611ec8565b600060208284031215611f6e57600080fd5b81518015158114611aee57600080fd5b602081526000611aee6020830184611b9b56fea2646970667358221220f2631a721e0d43de8b9aaafc2ebb198859056a3178dd283e45995cac17872d1864736f6c634300081300330000000000000000000000000e6214f42992683a9177ce65d022f163d7bbd1d2000000000000000000000000ee0b91a41eb1faef101cc4ce3722499a7276f6bd000000000000000000000000a96efd6149346a25415a591545183358160d08e500000000000000000000000078e1f895d3bb63f497526cb0e769f0a12c400bba