Workers Auto Approve
Chat system with on chain access control list
# Challenge: Chat system with on-chain access control list
- Winner : 5 ETH
- Runnner up : 1 ETH
Though smart contract enable on-chain way to control the flow of money or governance, the discussion is often made in discord, xoom, hangout, and now lots of experiments in virtual space such as CryptoVoxels, Decentraland, etc. We would like a way to enforce on-chain logic into off-chain communication tools.
## The challenge
Create a chat system SDK which enforces on-chain logics as well as logs the member activity ( so that admin can use it as a proof of attending an online event).
You can use any existing chat system with bot moderation framework or create own chat system using existing SDK such as [3box thread]([https://docs.3box.io/api/messaging](https://docs.3box.io/api/messaging))
Though we intend to use on Kickback, we would like this project to be generic to be used in other systems. The SDK should make contract specific function names configurable so that it can easily be reused.
#### 1. Kickback
- For each event contract (eg: [https://kickback.events/event/0x0d73ecf5493c7d955f3f001d0be2565ae65ed6b4](https://kickback.events/event/0x0d73ecf5493c7d955f3f001d0be2565ae65ed6b4)), generate unique chat channel (either user click a button to generate the channel, or dynamically create one).
- Anyone can view the chat.
- Only the user who did RSVP (`AbstractConference.isRegistered(addr)` returns `true`) can write. ([link to source code](https://github.com/wearekickback/contracts/blob/master/contracts/AbstractConference.sol#L114))
- There is an API call (or tool) to get a list of ETH addresses who either joined the chat or made some comments.
- [Bonus1] : - Only the event admin (`GroupAdmin.isAdmin(addr)` returns `true`) can be joined as admin. ([link to source code]([https://github.com/wearekickback/contracts/blob/master/contracts/GroupAdmin.sol#L69](https://github.com/wearekickback/contracts/blob/master/contracts/GroupAdmin.sol#L69)))
- [Bonus2] It Would be nice if it can specify the option to make the chat open to public read or only closed to people who did RSVP.
#### 2. Moloch DAO
Pretty much the same logic as above, but use `Moloch.member(addr)` instead of `AbstractConference.isRegistered` ([link to source](https://github.com/MolochVentures/moloch-monorepo/blob/master/packages/contracts/contracts/Moloch.sol#L79))
- Working prototype.
- Video walkthrough explaining the flow
- Detailed documentation of how to integrate (if you fork Kickback frontend and integrate as a demo, that would be awesome!)
- [Kickback frobtend setup guide](https://github.com/wearekickback/app#setup)
- [Introducing, 3Box Ghost Threads API](https://medium.com/3box/introducing-3box-ghost-threads-api-e5b2ad92060d)
Setup your profile
Tell us a little about you:
No results found for
Type to search skills..
Required [[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email: