Overview
This contract facilitates the betting on Pokémon matches streamed on pokebets.io. Users can place their bets in the form of an ERC20 token ($PBETS Token)
Contract Basics
PBetsToken: This is the token users will use to place bets. It is an ERC20 token.
States: This contract has three possible states - Open, Closed, and Resolved. The contract state determines whether users can place bets, and whether they can claim their winnings.
Bet Details: Users' bets are stored in several mappings, which record details about each placed bet, the total bet amount for each outcome, and the total bet amount of each user.
Contract Mechanics
Betting
The betting process is handled primarily by the battleWager
function, which allows a user to place a bet on a prediction (either 0 or 1, representing Trainer 1 or Trainer 2 respectively). Bets can only be placed when the contract is in the Open
state. A fee is taken from each bet, which is stored in the contract balance.
Claiming Winnings
The winnerClaim
function allows a user to claim their winnings once the bet has been resolved. This function can only be called when the contract is in the Resolved
state, and it pays out proportional to the amount that the user bet on the winning outcome.
Withdraw Contract Fees
The withdrawContractFees
function can be called by the owner of the contract to withdraw the accumulated fees from the contract.
Last updated