> For the complete documentation index, see [llms.txt](https://docs.blast.gg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.blast.gg/smart-contracts/pool-factory-v2.2-update-apr-23.md).

# Pool Factory V2.2 (Update Apr-23)

### Functions:

* [`initialize()`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`createPool(uint8 _game, uint8 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint16[] _winnersFees, address _tokenAddr)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`joinPool(uint256 _poolId)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`leavePool(uint256 _poolId)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`viewPools(address _addr)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`viewPoolPlayers(uint256 _poolId)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`viewActivePools()`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`getPoolPaidPosition(uint256 _poolId, uint8 _position)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`finishPool(uint256 _poolId, address[] _winners)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`cancelPool(uint256 _poolId)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`updateFee(uint256 _newFee)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`updateTreasury(address payable _newTreasury)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`claimPrize(uint256 _poolId, address payable _winnerAddress, uint8 _position)`](broken://pages/28TEKqMg2M53dqlLlIFE)

### Events:

* [`NewPool(uint256 poolId, uint256 _game, uint256 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, address _tokenAddr)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`CancelPool(uint256 _poolId)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`PoolLeftBy(uint256 _poolId, address _player)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`PoolJoinedBy(uint256 _poolId, address _player)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`PoolFinished(uint256 _poolId, address _winner)`](broken://pages/28TEKqMg2M53dqlLlIFE)
* [`PrizeClaimFinished(uint256 _poolId, address _winnerAddress)`](broken://pages/28TEKqMg2M53dqlLlIFE)

### Function `initialize()` <a href="#poolfactoryv2-initialize" id="poolfactoryv2-initialize"></a>

Initializes pool count and bbFee

### Function `createPool(uint8 _game, uint8 _gameMode, uint256 _currentPrize, uint256 _entryFee, uint256 _startOn, uint256 _finishOn, uint16[] _winnersFees, address _tokenAddr) → uint256` <a href="#poolfactoryv2-createpool-uint8-uint8-uint256-uint256-uint256-uint256-uint16-address" id="poolfactoryv2-createpool-uint8-uint8-uint256-uint256-uint256-uint256-uint16-address"></a>

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

* `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
* `_tokenAddr`: address of token used for pool

### Event `CancelPool(uint256 _poolId)` <a href="#poolfactoryv2-cancelpool-uint256" id="poolfactoryv2-cancelpool-uint256"></a>

Event emitted on cancelled pool

#### Parameters:

* `_poolId`: pool Id of cancelled pool

### Event `PoolLeftBy(uint256 _poolId, address _player)` <a href="#poolfactoryv2-poolleftby-uint256-address" id="poolfactoryv2-poolleftby-uint256-address"></a>

Event emitted when a player leaves a pool

#### Parameters:

* `_player`: player who leaves the pool
* `_poolId`: pool Id

### Event `PoolJoinedBy(uint256 _poolId, address _player)` <a href="#poolfactoryv2-pooljoinedby-uint256-address" id="poolfactoryv2-pooljoinedby-uint256-address"></a>

Event emitted when a player joins a pool

#### Parameters:

* `_player`: player who joins the pool
* `_poolId`: pool Id

### Event `PoolFinished(uint256 _poolId, address _winner)` <a href="#poolfactoryv2-poolfinished-uint256-address" id="poolfactoryv2-poolfinished-uint256-address"></a>

Event emitted on a finished pool

#### Parameters:

* `_poolId`: pool Id
* `_winner`: winner of the pool tournament

### Event `PrizeClaimFinished(uint256 _poolId, address _winnerAddress)` <a href="#poolfactoryv2-prizeclaimfinished-uint256-address" id="poolfactoryv2-prizeclaimfinished-uint256-address"></a>

Event emitted on a claimPrize

#### Parameters:

* `_poolId`: pool Id
* `_winnerAddress`: position winner address
