-
Notifications
You must be signed in to change notification settings - Fork 15
Closed
Description
The use case
- The event ticket can be displayed on the user wallet
- A user can RSVP for friends (The friend still has to sign in on Kickback to receive a notification email and has to have eth to be able to withdraw)
- Even organisers can use Kickback NFT as token gated access on the Discord channel, etc.
Feature
- Each event (
Conference
) has its own NFT contract - Contract supports either ERC721 or 1155
- Use Conference.participantsIndex as TokenId
- Metadata uri can be set at
Conference
constructor - Metadata uri is set at
Deployer
and can be changed bygroupAdmin
. (Refer to changeClearFee for the similar implementation). - The ticketing NFT cannot be transferred to the address which is already registered (if a user want to buy multiple tickets for friends, the user has to transfer to a different user address before purchasing the second ticket)
Acceptance scenario
Please make sure to write tests to cover at least these scenarios.
- When a user registers,
ownerOf(tokenId)
returns the registrant address. - When a user registers, it emits a relevant event that NFT markets like OpenSea use to index.
- When a user transfer's NFT, it emits a relevant event that NFT markets like OpenSea use to index.
- When the registrant transfers the ticket to a recipient,
isRegistered/isAttended/isPaid
returns the info about the recipient (if this ended up causing too much attack vector, we may make the token not transferrable ). - When the registrant transfer that ticket to a recipient, the user can register again (as the registrant is no longer registered for the event).
- When a user receives the NFT, the user cannot register as the user is already registered.
- When the registrant transfers the ticket to a recipient, the new recipient can call
withdraw
andclearAndSend
to receive the payout
Metadata
Metadata
Assignees
Labels
No labels