Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create bounties and track with Tipbot #4

Open
fr1t2 opened this issue Feb 28, 2021 · 0 comments
Open

Create bounties and track with Tipbot #4

fr1t2 opened this issue Feb 28, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request incoming New

Comments

@fr1t2
Copy link
Member

fr1t2 commented Feb 28, 2021

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-create
  • bounty-vote
  • bounty-fund
  • bounty-submit
  • bounty-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-verify approval with {users ID, bounty ID,
    • Once 2 mods or admin agree on the completion the bot sends funds to the users tipbot address

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   |              |      |     |         |                |
+--------------+--------------+------+-----+---------+----------------+
@fr1t2 fr1t2 added enhancement New feature or request incoming New labels Feb 28, 2021
@fr1t2 fr1t2 self-assigned this Feb 28, 2021
fr1t2 added a commit that referenced this issue Mar 17, 2021
Updates from main chat launch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request incoming New
Projects
None yet
Development

No branches or pull requests

1 participant