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)
- Instagram
- X
- Website
- Threads
- Facebook
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: AddressZero
UniquenessValidator: 0xC361A6E67822a0EDc17D899227dd9FC50BD62F42
RewardToken: 0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A
UbiSettings
- Cycle Length Days:
- If
<claimFrequency> ≤ 7: 7
- If
<claimFrequency> > 7: <claimFrequency>
ClaimForEnabled: false
Extended Settings
Max Period Claimers: 0
Min Claim Amount: <maxClaimAmount>
Manager Fee Bps: 0 (or user-configured value)
Design Reference
Technical Implementation
TBD
Acceptance Criteria
Specify criteria for determining if the feature meets requirements and functions correctly.
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
git remote add <some label for remote> https://github.com/pbkompasz/GoodCollective.gitgit fetch <some label for remote>Business Description
An interface/flow to allow anyone to create a GoodCollective UBIPool smart contract without interacting with an explorer.
User Flow:
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.
GoodCollective Pool Details
(design reference
Get Started / Project Details
Fields (Saved to IPFS)
Reference: IPFS Save Logic
jpg, gif, png; max file size 20MB, (1400x256px)jpg, gif, png; max file size 1MB, (500x500px)100 character max500 character max250 character maxAdmin Configuration
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)
Community Pool-Specific Parameters
Optional Wallet address(es) of all recipientsOptional fee for administration (default: 0%)Every X days (default: daily)In G$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: 0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7AUbiSettings
<claimFrequency>≤7:7<claimFrequency>>7:<claimFrequency>ClaimForEnabled: falseExtended Settings
Max Period Claimers: 0Min Claim Amount: <maxClaimAmount>Manager Fee Bps: 0(or user-configured value)Design Reference
Technical Implementation
createPool.tsas a reference forcreateUbiPoolWithAttributesfrom@gooddollar/goodcollective-sdkcreateUbiPoolWithAttributes,isBeaconshould always befalseGoodCollective/packages/app/src/models/constants.ts
Line 20 in 4adbead
development-celoorproduction-celoTBD
-- For now after creating a pool, a user will be navigated to the explorer page of the contract created
Acceptance Criteria
Specify criteria for determining if the feature meets requirements and functions correctly.