-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Note to contributors
There is a draft PR up.
A few things have already been taken care of, the PR was in review.
The task is to finish the PR: #296
- Clone our repository if you have not already done so
- add
git remote add <some label for remote> https://github.com/pbkompasz/GoodCollective.git git fetch <some label for remote>- git checkout feat-community-pools.
- follow up on the review, and what has been done and apply the requested changes.
- create a new PR and request a review
- include demo video where you create a new ubi pool.
Business Description
An interface/flow to allow anyone to create a GoodCollective UBIPool smart contract without interacting with an explorer.
User Flow:
- Select pool type (only Community pools will be selectable for now; see design flow below)
- Define the GoodCollective pool details
- Define the contract parameters
- Review and Create the contract
- View the GoodCollective in the GoodCollective dApp
Detailed Description of Functionality
The following parameters can be configured by an admin of a new GoodCollective. These should be organized in an easy-to-use manner following the UX design.
Pool Type Selection (Required)
About Various Pools page
Each pool type should have a description pulled from GoodCollective HIW.
- Results-Based Financing (NFT-Triggered)
- Segmented Aid
- Community Pool (only this option should be selectable for now)
GoodCollective Pool Details
(design reference
Get Started / Project Details
Fields (Saved to IPFS)
Reference: IPFS Save Logic
- Image* -
jpg, gif, png; max file size 20MB, (1400x256px) - Logo* -
jpg, gif, png; max file size 1MB, (500x500px) - Pool Name* -
100 character max - Pool Description* -
500 character max - Reward Description -
250 character max - Socials* (At least one required)
- X
- Website
- Threads
Admin Configuration
- Admin Wallet Address* -
The only wallet that can make contract upgrades or disable the contract. Defaults to the connected wallet.
Contract Parameters (Configurable in UI)
General Pool Contract Parameters
(design reference)
(Pool Configuration)
- Admin Wallet Address (shown for display only, configured in the previous step)
- Max # of people per pool (first come, first served)
Community Pool-Specific Parameters
- Pool Recipients -
Optional Wallet address(es) of all recipients - OnlyMembers: if no list provided, always false. if list provided, user can configure this setting)
- Admin/Manager Fee -
Optional fee for administration (default: 0%) - Claim Frequency* -
Every X days (default: daily)- Based on the GoodDollar UBI clock (resets at 12 UTC)
- Max Claim Amount* -
In G$ - Max Members -
Uses value from 'expected members'([todo: add link])
Default Contract Parameters (Not configurable in UI)
These will be set with default values and configurable later via the PoolAdmin UI.
UbiPoolSettings (Contracts should be based on Env)
MembersValidator: AddressZeroUniquenessValidator: 0xC361A6E67822a0EDc17D899227dd9FC50BD62F42RewardToken: 0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A
UbiSettings
- Cycle Length Days:
- If
<claimFrequency>≤7:7 - If
<claimFrequency>>7:<claimFrequency>
- If
ClaimForEnabled: false
Extended Settings
Max Period Claimers: 0Min Claim Amount: <maxClaimAmount>Manager Fee Bps: 0(or user-configured value)
Design Reference
- See the GoodCollective Figma for expected flow and UI.
Technical Implementation
- Use
createPool.tsas a reference forcreateUbiPoolWithAttributesfrom@gooddollar/goodcollective-sdk - when using
createUbiPoolWithAttributes,isBeaconshould always befalse - [Example usage of dev/prod contracts]()
export const GDDevToken: Token = new Token( - We only use
development-celoorproduction-celo
- We only use
- Through the 'review and create' page, someone can choose to edit the configured values. the flow will be to send a user back to the specific page/section they want to edit. Make sure the values configured are cached properly.
TBD
- Vetting process for displaying Pools on goodcollective (TBD)
-- For now after creating a pool, a user will be navigated to the explorer page of the contract created - Some copy in the design shown as lorem ipsum, the actual copy will be provided in time
Acceptance Criteria
Specify criteria for determining if the feature meets requirements and functions correctly.
- Should follow contribution guidelines
- Should match design provided in Figma
- Is responsive to desktop design (included in figma)
- Should verify if existing components can be re-used
- Anything in the TBD at time of putting up your pull-request is not a requirement for it get merged
Metadata
Metadata
Assignees
Labels
Type
Projects
Status