IRaffl
Git Source Interface that describes the Prize struct, the GameStatus and initialize function so theRafflFactory knows
how to initialize the Raffl.
Functions
initialize
Initializes the contract by setting up the raffle variables and theprices information.
criteriaMet
Checks if the raffle has met the minimum entriesdeadlineExpired
Checks if the deadline has passedupkeepPerformed
Checks if raffle already perfomed the upkeepsetSuccessCriteria
Sets the criteria as settled, sets theGameStatus as DrawStarted and emits event
DeadlineSuccessCriteria
Access control: factory is the only allowed to called this method
setFailedCriteria
Sets the criteria as settled, sets theGameStatus as FailedDraw and emits event
DeadlineFailedCriteria
Access control: factory is the only allowed to called this method
buyEntries
Purchase entries for the raffle. Handles the acquisition of entries for three scenarios: i) Entry is paid with network tokens, ii) Entry is paid with ERC-20 tokens, iii) Entry is free (allows up to 1 entry per user)refundEntries
Refund entries for a specific user. Invokable when the draw was not made because the min entries were not enought This method is not available if theentryPrice was zero
refundPrizes
Refund prizes to the creator. Invokable when the draw was not made because the min entries were not enoughtdisperseRewards
Transfers theprizes to the provably fair and verifiable entrant, sets the GameStatus as
SuccessDraw and emits event DrawSuccess
Access control: factory is the only allowed to called this method through the Chainlink VRF Coordinator
Events
RaffleInitialized
Emit when a new raffle is initialized.EntriesBought
Emit when a user buys entries.EntriesRefunded
Emit when a user gets refunded for their entries.PrizesRefunded
Emit when prizes are refunded.DrawSuccess
Emit when a draw is successful.DeadlineSuccessCriteria
Emit when the criteria for deadline success is met.DeadlineFailedCriteria
Emit when the criteria for deadline failure is met.TokenGatingChanges
Emit when changes are made to token-gating parameters.Structs
Prize
asset represents the address of the asset considered as a prize
assetType defines the type of asset
value represents the value of the prize. If asset is an ERC20, it’s the amount. If asset is an ERC721,
it’s the tokenId.
TokenGate
token represents the address of the token gating asset
amount represents the minimum value of the token gating
ExtraRecipient
recipient represents the address of the extra recipient of the pooled funds
feePercentage is the percentage of the pooled funds (after fees) that will be shared to the extra
recipient