Pool Factory V2
Contract Code: https://github.com/0xBets/mvp/blob/upgradable-contracts/packages/hardhat/contracts/PoolFactoryV2.sol
Functions:
initialize()
createPool(uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint256 _firstFee, uint256 _secondFee, uint256 _thirdFee, address _tokenAddr)
joinPool(uint256 _poolId)
leavePool(uint256 _poolId)
viewPools(address _addr)
viewPoolPlayers(uint256 _poolId)
viewActivePools()
getTreasury()
finishPool(uint256 _poolId, address payable _winner1, address payable _winner2, address payable _winner3)
cancelPool(uint256 _poolId)
updateFee(uint256 _newFee)
updateTreasury(address payable _newTreasury)
Events:
NewPool(uint256 poolId, uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint256 _firstFee, uint256 _secondFee, uint256 _thirdFee, address _tokenAddr)
CancelPool(uint256 _poolId)
PoolLeftBy(uint256 _poolId, address _player)
PoolJoinedBy(uint256 _poolId, address _player)
PoolFinished(uint256 _poolId, address _winner)
Function initialize()
initialize()
Initializes pool count and bbFee
Function createPool(uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint256 _firstFee, uint256 _secondFee, uint256 _thirdFee, address _tokenAddr) → uint256
createPool(uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint256 _firstFee, uint256 _secondFee, uint256 _thirdFee, address _tokenAddr) → uint256
Creates a new Pool providing entryFee, CurrentPrize, start and finish times. The transaction value must be equal to initial pool prize. Prizes and fees are in uint256, start and finish times are Unix Epochs in miliseconds. Fees are uint expressed in percentages i.e. a value of 10 means 10% fee, the sum of the 3 fees must equal a 100
Parameters:
_game
: game Id_gameMode
: game Mode Id_currentPrize
: initial pool prize_entryFee
: entry fee to join the pool_startOn
: unix start epoch in ms_finishOn
: unix finish epoch in ms_firstFee
: percentage fee of 1st place_secondFee
: percentage fee of 2nd place_thirdFee
: percentage fee of 3d place_tokenAddr
: token used for pool prize and fees, if tokenAddr is address(0), native coin will be used
Return Values:
PoolId (uint256)
Function joinPool(uint256 _poolId)
joinPool(uint256 _poolId)
Allows players to join a pool if the pool has an entry fee it should be equal to msg.value
Function leavePool(uint256 _poolId)
leavePool(uint256 _poolId)
Allows players to leave the pool if they change their mind before it starts Already started pools can't be left
Function viewPools(address _addr) → uint256[] _userPools
viewPools(address _addr) → uint256[] _userPools
View function to retrieve joined pools for a given player(address)
Parameters:
_addr
: address of player
Function viewPoolPlayers(uint256 _poolId) → address payable[] _users
viewPoolPlayers(uint256 _poolId) → address payable[] _users
View function to retrieve players of a given pool
Parameters:
_poolId
: pool id number
Return Values:
_users an array of players addresses
Function viewActivePools() → uint256[] _activePools
viewActivePools() → uint256[] _activePools
View function to retrieve current active Pools
Return Values:
_activePools an array of pool Ids
Function getTreasury() → address _treasury
getTreasury() → address _treasury
View function to retrieve current treasury address
Function finishPool(uint256 _poolId, address payable _winner1, address payable _winner2, address payable _winner3)
finishPool(uint256 _poolId, address payable _winner1, address payable _winner2, address payable _winner3)
Admin function to finish a pool
Parameters:
_poolId
: id of the pool to finish_winner1
: address of the first place_winner2
: address of the second place_winner3
: address of the third place
Function cancelPool(uint256 _poolId)
cancelPool(uint256 _poolId)
Admin function to cancel a pool it returns the entry fee to all the players who joined, and the prize pool to treasury
Parameters:
_poolId
: id of the pool to finish
Function updateFee(uint256 _newFee)
updateFee(uint256 _newFee)
Admin function to update protocol fee
Parameters:
_newFee
: new fee to set
Event NewPool(uint256 poolId, uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint256 _firstFee, uint256 _secondFee, uint256 _thirdFee, address _tokenAddr)
NewPool(uint256 poolId, uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint256 _firstFee, uint256 _secondFee, uint256 _thirdFee, address _tokenAddr)
Event emitted on new pool created
Parameters:
poolId
: pool Id_game
: game Id_gameMode
: game Mode Id_currentPrize
: initial pool prize_entryFee
: entry fee to join the pool_startOn
: unix start epoch in ms_finishOn
: unix finish epoch in ms_firstFee
: percentage fee of 1st place_secondFee
: percentage fee of 2nd place_thirdFee
: percentage fee of 3d place_tokenAddr
: address of token used for pool
Event CancelPool(uint256 _poolId)
CancelPool(uint256 _poolId)
Event emitted on cancelled pool
Parameters:
_poolId
: pool Id of cancelled pool
Event PoolLeftBy(uint256 _poolId, address _player)
PoolLeftBy(uint256 _poolId, address _player)
Event emitted when a player leaves a pool
Parameters:
_player
: player who leaves the pool_poolId
: pool Id
Event PoolJoinedBy(uint256 _poolId, address _player)
PoolJoinedBy(uint256 _poolId, address _player)
Event emitted when a player joins a pool
Parameters:
_player
: player who joins the pool_poolId
: pool Id
Event PoolFinished(uint256 _poolId, address _winner)
PoolFinished(uint256 _poolId, address _winner)
Event emitted on a finished pool
Parameters:
_poolId
: pool Id_winner
: winner of the pool tournament
Last updated