-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Describe the solution you'd like
Bounty submission and tipping system for the tipbot
Add the ability to create and vote on plus sponsor activities through a bounty system. Tipbot tracks the bounty details, votes, and donations. Once bounty is completed the bot will pay out the contributor that completed the task.
Set it up so that only Discord moderators can create and complete the bounties. Once a bounty is created any user can vote on and donate to the bounty from the tipbot account. A contributor can submit a completed task to more than one moderator with proof and the moderators vote to pay out the bounty. Once the bounty payout has received 2 votes it pays out.
Requires a few new commands or one large multiplexed command
bounty-createbounty-votebounty-fundbounty-submitbounty-verify
Initiation
- Only a moderator or higher can submit a new bounty or close one.
- to open one must give { BOUNTY_NAME, ITERATIONS or PAID_IN_FULL, TTL, PAYOUT, INITIATOR, DESCRIPTION }
- Bot will open a new entry in DATABASE.TABLE for the bounty, assign an ID, and create an entry in the bounties page {qrl.tips website repo}
- Users can send tips to the bounty, using name or ID to help fund and give incentive
- Users can also simply vote on the bounty, adding importance to the task, giving better insight to what the community wants worked on first
Submission
- When a user believes they have completed a bounty, they send a message to the bot which notifies a moderator or core member, with some proof of completion {link to work, repo, photo, description etc.}
- Moderator reviews the task complete and the bounty, and upon approval sends a
bounty-verifyapproval with {users ID, bounty ID, - Once 2 mods or admin agree on the completion the bot sends funds to the users tipbot address
- Moderator reviews the task complete and the bounty, and upon approval sends a
Stale Bounties
- If no users complete the task in allotted TTL the bot returns the tipped funds to...
- The users who donated?
- Sends them to a general bounty fund?
- Sends them to the faucet?
Database New tables
Added tables to the database to track the bounty system
bounty
Table to hold the bounty information
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | | | | | |
| bounty_name | | | | | |
| mod_id | | | | | |
| guild_id | | | | | |
| payout_limit | | | | | |
| payout_min | | | | | |
| ttl | | | | | |
| initiating_user | | | | | |
| description | | | | | |
| active | | | | | |
| status | | | | | |
| time_stamp | | | | | |
+-----------------+--------------+------+-----+---------+----------------+bounty_votes
Table to hold the votes users send
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | | | | | |
| bounty_id | | | | | |
| user_id | | | | | |
| vote | | | | | |
| time_stamp | | | | | |
+------------+--------------+------+-----+---------+----------------+bounty_fund
Table to hold the users fund information. If user dictates they can leave any un-spent funds to be donated to the faucet.
Any use that is no longer active or banned after placing bounty funds forfeits their funding contribution.
All fees are taken from the contribution upon returning.
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | | | PRI | | |
| bounty_id | | | | | |
| user_id | | | | | |
| fund_amount | | | | | |
| donate | | | | | |
| time_stamp | | | | | |
+-------------+--------------+------+-----+---------+----------------+bounty_submissions
Table to hold the submissions for a user to collect funds. Requires 2 entries from seperate moderators or core members
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | | | PRI | | |
| bounty_id | | | | | |
| mod_id | | | | | |
| sub_user_id | | | | | |
| proof | | | | | |
| time_stamp | | | | | |
+-------------+--------------+------+-----+---------+----------------+Bounty_payout
Table to hold the information from contribution payouts
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | | | | | |
| bounty_id | | | | | |
| paid_user_id | | | | | |
| tx_id | | | | | |
| time_stamp | | | | | |
+--------------+--------------+------+-----+---------+----------------+