Compare commits
66 Commits
add-templa
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
6eb35c6bd6 | |
|
|
d59cecaa48 | |
|
|
fd8ff6e883 | |
|
|
a29fa6b7e0 | |
|
|
6d15f1ac9c | |
|
|
48ea3e0a4e | |
|
|
6febdcf9c1 | |
|
|
ee5d7c330a | |
|
|
90853e7229 | |
|
|
b901dd9f4d | |
|
|
ad453324a7 | |
|
|
2007eaab0b | |
|
|
c03efda528 | |
|
|
43c7efef29 | |
|
|
8cad64b141 | |
|
|
7a7f3341b5 | |
|
|
8892a9555a | |
|
|
b1a35bda03 | |
|
|
296c83a791 | |
|
|
e0373c941e | |
|
|
77e4e74a75 | |
|
|
00c32c253f | |
|
|
e95f948464 | |
|
|
e5f57a1436 | |
|
|
7539db9268 | |
|
|
0fbf589ee5 | |
|
|
f3a4261941 | |
|
|
5070e4af03 | |
|
|
b25b5dc63f | |
|
|
8c80372d38 | |
|
|
cf8129edb1 | |
|
|
f3afbb3a84 | |
|
|
069a88f9e5 | |
|
|
82510bfe19 | |
|
|
7f828766ef | |
|
|
e3a2b865f8 | |
|
|
5740a1981a | |
|
|
9a021105f9 | |
|
|
40c1d05c24 | |
|
|
5a58eee9da | |
|
|
e04c443727 | |
|
|
58ff875491 | |
|
|
d756501742 | |
|
|
17ea25747d | |
|
|
a06ce4167a | |
|
|
669857fff8 | |
|
|
76e7bb9a10 | |
|
|
e0f722d797 | |
|
|
e4e6c62107 | |
|
|
f27725d97f | |
|
|
8ce6534bcc | |
|
|
bae365652c | |
|
|
124b815b02 | |
|
|
07c970e2cd | |
|
|
f464a43226 | |
|
|
c90f8cc52b | |
|
|
a547972fda | |
|
|
15663a9039 | |
|
|
d1e6167a85 | |
|
|
a64c0de1bc | |
|
|
0274e08477 | |
|
|
718f56d43b | |
|
|
709348dee7 | |
|
|
8d1efeb28f | |
|
|
6bd0056e04 | |
|
|
e1bb5cb26e |
|
|
@ -0,0 +1,28 @@
|
||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--
|
||||||
|
please keep explanations in this section brief
|
||||||
|
-->
|
||||||
|
|
||||||
|
**Did you read _all_ the READMEs and are system requirements fulfilled?**
|
||||||
|
|
||||||
|
**What did you try to do?**
|
||||||
|
|
||||||
|
**What did you expect should have happened?**
|
||||||
|
|
||||||
|
**What happened instead?**
|
||||||
|
|
||||||
|
**What were the exact steps you took?**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--
|
||||||
|
here you can indulge more detailed rants about the problem
|
||||||
|
-->
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
Binary file not shown.
|
|
@ -1,7 +1,2 @@
|
||||||
## Community Inclusion Currencies (CICs) Documentation
|
## Community Inclusion Currencies (CICs) Documentation -
|
||||||
+ White Paper: https://docs.google.com/document/d/1Wmnpjc5bX1b8XP1kNtiZCqurMYw__4sNmdHjtSnnLWQ/edit?usp=sharing
|
Please visit https://gitlab.com/grassrootseconomics/cic-docs/-/blob/master/README.md
|
||||||
+ Frequently Asked Questions: https://docs.google.com/document/d/1qtlOEL4pqW1vOL893BaXH9OqRSAO3k0q2eWbVIkxEvU/edit?usp=sharing
|
|
||||||
+ Blog: https://grassecon.org/blog
|
|
||||||
+ CIC Platform: https://github.com/teamsempo
|
|
||||||
+ CIC Blockchain Smart Contract: https://github.com/GrassrootsEconomics/CIC-Liquid-Token
|
|
||||||
+ Data - Transaction Datasets: https://www.grassrootseconomics.org/research
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ The Transaction csv fields:
|
||||||
|
|
||||||
1. id - internal transaction ID number
|
1. id - internal transaction ID number
|
||||||
1. timeset - date and time of transaction
|
1. timeset - date and time of transaction
|
||||||
1. transfer_subtype - internal typing: DISBURSMENT = from Grassroots Economics, RECLEMATION = Back to GE, STANDARD = a trade between users, AGENT = when a group account is cashing out
|
1. transfer_subtype - internal typing: DISBURSMENT = from Grassroots Economics, RECLEMATION = Back to GE, STANDARD = a trade between users, AGENT = when a group account is cashing out (see held_roles) below
|
||||||
1. transfer_use - The category the sender marked the transaction as - used for 'confidence' later for the user category - note this will be changed to boolean
|
1. transfer_use - The category the sender marked the transaction as - used for 'confidence' later for the user category - note this will be changed to boolean
|
||||||
1. tx_hash - hashed transaction address on blockchain
|
1. tx_hash - hashed transaction address on blockchain
|
||||||
1. source - wallet ID of sender
|
1. source - wallet ID of sender
|
||||||
|
|
@ -42,6 +42,7 @@ The user summary csv fields:
|
||||||
1. comm_tkn - Their token name (each user only has 1 token) currenlty only Sarafu
|
1. comm_tkn - Their token name (each user only has 1 token) currenlty only Sarafu
|
||||||
1. bal - current balance of [comm_tkn] as of file date
|
1. bal - current balance of [comm_tkn] as of file date
|
||||||
1. location - User input (village name)
|
1. location - User input (village name)
|
||||||
|
1. held_roles - Standard transactions are between Beneficiaries, anything to an Admin is a Reclemation or from and Admin is a Disbursment and anything to a Agent is a Agent_out
|
||||||
1. gender
|
1. gender
|
||||||
1. business_type - Input by GE staff based on what the users sell
|
1. business_type - Input by GE staff based on what the users sell
|
||||||
1. ovol_in - total number of tokens that came into this account from non-STANDARD transactions
|
1. ovol_in - total number of tokens that came into this account from non-STANDARD transactions
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
git clone https://gitlab.com/nolash/grassroots-app
|
||||||
|
|
@ -7,3 +7,6 @@ Overview
|
||||||
Modules
|
Modules
|
||||||
|
|
||||||
Functions
|
Functions
|
||||||
|
|
||||||
|
|
||||||
|
Chama Max Cash out = min([balance/2,standard volume_outward]) 1x per month
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
# Current Platform Incentives spec
|
||||||
|
|
||||||
|
<!--
|
||||||
|
valid status values are: Pre-draft|Draft|Proposal|Accepted
|
||||||
|
-->
|
||||||
|
* Authors: Will Ruddick <willruddick@gmail.com> (grassecon.org)
|
||||||
|
* Date: 2020.04.22
|
||||||
|
* Version: 1
|
||||||
|
* Status: Pre-draft
|
||||||
|
|
||||||
|
## Rationale
|
||||||
|
The current system seeks to maximize circulation in order to fill market gaps and help CIC users to support eachother.
|
||||||
|
|
||||||
|
## Currently
|
||||||
|
Grassroots Economics started with a pool of 8 Million Sarafu tokens (which they value 1:1 with Kenyan Shillings ala buy backs). Of which 90% will have been distributed to users as below by the end of April 2020.
|
||||||
|
The following are all rules are platform based (not blockchain contract based). Note that these rules are for the Sarafu CIC only and are not meant to be the rules for other CIC creators.
|
||||||
|
1. *airdrop-selfservice*: New users get 50 Sarafu (a CIC) (Shown as Disbursement in database)
|
||||||
|
1. *airdrop-full-profile*: New users that fill out their profiles (name, business, location, gender) get additional 400 Sarafu (a CIC) (must call office line) (Shown as Disbursement in database)
|
||||||
|
1. *referral*: Users that are the 1st to send a new user at least 20 tokens in the 1st 24 hours get 100 Sarafu - after that new user has begun to trade with another user (not the referrer) (Shown as Disbursement in database)
|
||||||
|
1. *chama bonus*: Savings Groups (aka Chamas are groups of users that save and give loans to eachother) get 10,000 Sarafu divided between their members after 2 months of trading.(Shown as Disbursement in database)
|
||||||
|
1. *chama redemption*: Savings Groups can redeem 50% of their Sarafu Balance for Kenyan Shillings up to a maximum of 30k Sarafu each month but must have spent (and/or given loans) of at least as much as they want to cash out. (Shown as Agent_out in database) Cashing out is done using donor funds by Grassroots Economics Foundation and Sarafu is valued 1:1 with Kenyan shilligns using eMoney (Mpesa).
|
||||||
|
1. *usage bonus*: Users get a daily or weekly Sarafu bonues depending on how they trade. They are ranked by the number of other people they trade above 20 Sarafu with and awarded based on their percentage of such overall trade. (Possibly moving to k-cycle centrality).(Shown as Disbursement in database)
|
||||||
|
1. *Holding Fee*: If an account if dormant (no trades in or out) for 7 days 20 Sarafu are deducted and added back to the pool. (Shown as Reclaimation in database)
|
||||||
|
1. *Donation bonues* Anyone with Mpesa or Bonga points can send them to Grassroots Economics to receive additional Sarafu (Shown as Disbursement in database) Donors can give Grassroots Economics funds to support the Sarafu buy-back and operations
|
||||||
|
|
||||||
|
## After
|
||||||
|
After the migration to xDAI (https://github.com/GrassrootsEconomics/CIC-Docs/blob/master/spec/xdai_migration.md)
|
||||||
|
anyone (with access to blockchain) in the world can contribute reserve in the form of xDAI. xDAI is a stable token to the US dollar and can be purchased with USD.
|
||||||
|
With a reserve in xDAI each Sarafu token will now have spot price or excahnge price to xDAI given by P = R/(S*TRR)
|
||||||
|
Where R = the amount of xDAI in reserve, S= the total supply of Sarafu, and TRR = Target Reserve Ratio = that ratio of R/S such that the echange price is 1:1.
|
||||||
|
1. Grassroots Economics will continue with all the above incentives for Sarafu and to buy the vouchers off on a regular basis 1:1 from Savings groups.
|
||||||
|
1. Any funds going into the reserve will increase the price and mint additional Sarafu following a bonding curve.
|
||||||
|
Anyone with a webApp or MetaMask can add xDAI and mint more Sarafu (+) increase the value of all Sarafu
|
||||||
|
Anyone with a webApp or MetaMask can add send Sarafu to the converter contract to destroy it and withdraw reserve (-) decreasing the value of all Sarafu.
|
||||||
|
1. As the reserve of Sarafu is depleted and the exchange price drops Grassroots Economics as well as other donors will add more reserve and mint more tokens to distribute.
|
||||||
|
1. Grassroots Economics will destroy Sarafu it collects to pull out excess reserve and convert that xDAI to Kenyan shillings to continue with Savings Group buy backs.
|
||||||
|
1. A % fee on conversion between reserve and supply in both directions is done on blockchain and added to the reserve.
|
||||||
|
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
### Workflow
|
||||||
|
|
||||||
|
### Variables
|
||||||
|
|
||||||
|
### Interface
|
||||||
|
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
<!--
|
||||||
|
Please describe what test vectors that are required for this implementation
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
<!--
|
||||||
|
Please remember to describe every change to this document in the changelog using
|
||||||
|
serial number:
|
||||||
|
|
||||||
|
* version 1:
|
||||||
|
-->
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
# xDAI Migration spec
|
||||||
|
|
||||||
|
<!--
|
||||||
|
valid status values are: Pre-draft
|
||||||
|
-->
|
||||||
|
* Authors: Will Ruddick <will@grassecon.org>
|
||||||
|
* Date: 2020.04.22
|
||||||
|
* Version: 1
|
||||||
|
* Status: Pre-draft
|
||||||
|
|
||||||
|
## Rationale
|
||||||
|
We want to give donors and community mambers a way to contribute to and cash out from Community Inclusion Currencies with National Currency. By connecting to a reserve that is stable to the US dollar called xDAI we bring some stability and the ability for many to support local communities. We also enable any CICs that have xDAI as a reserve to convert to any other CIC with xDAI as reserve.
|
||||||
|
|
||||||
|
## Before
|
||||||
|
Currently we are using a virtual reserve a generic ERC20 token. We have 2 Million of those reserve tokens against 8 Million Sarafu issued (the current Kenyan CIC). (Call those Sarafu_1 or S1)
|
||||||
|
|
||||||
|
## After
|
||||||
|
We have 40,000 xDAI to put as the reserve and are looking at minting O(16Million) tokens (called Sarafu_2 S2)
|
||||||
|
with a connector weight (target Reserve Ratio) of 0.25 (25%) and an inital price of roughly 0.01 Sarafu to a xDAI (USD stable)
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
Each existing user should have a completley new wallet and private key for security reasons and be given the same balances they currently have with the new (xDAI reserve) Sarafu. Roughly 8Million Sarafu_1 in wallet will be replaced with Sarafu_2
|
||||||
|
|
||||||
|
### Workflow
|
||||||
|
1. Synch db <->Blockchain - ensure synronization between our db (USSD interface) and blockchain
|
||||||
|
1. Create group of govenors on a multi-sig wallet with the power to assign the facilitator address of all blockchain contracts.
|
||||||
|
1. Create a white list for token users
|
||||||
|
1. Deploy contracts to create Sarafu_2, set inital variables - deposit reserve and mint tokens
|
||||||
|
1. Migration - New wallets for users - Replicate user accounts with new token Sarafu_2
|
||||||
|
|
||||||
|
### Variables
|
||||||
|
|
||||||
|
1. Synch variables, - synch frequency - and limitations
|
||||||
|
2. Contract variables (reserve ratio (0.25), reserve amount (40k xDAI), number of Sarafu_2 (16Million), convert fee 0.005 (0.5%))
|
||||||
|
3. Migration speed - how often is synching done between USSD db and blockchain
|
||||||
|
4. 3rd party Fiat <-> xDAI conversion costs and speed
|
||||||
|
|
||||||
|
### Interface
|
||||||
|
This migration will all be done at code and command line level, while some testing can be done on the platform gui
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
1. Check db<->blockchain synch - verify they are synched and we can do external transactions and handle RPC failure
|
||||||
|
1. Token Governance
|
||||||
|
1. Contract deplyment - conversions, transfers all work as expected
|
||||||
|
1. Migration - new wallets match old wallets
|
||||||
|
1. Store old blockchain wallet IDs (as a list with old POA wallets)
|
||||||
|
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
<!--
|
||||||
|
Please remember to describe every change to this document in the changelog using
|
||||||
|
serial number:
|
||||||
|
|
||||||
|
* version 1:
|
||||||
|
-->
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
|
||||||
|
# Public View Only
|
||||||
|
|
||||||
|
1. View public data only and no ability to edit
|
||||||
|
|
||||||
|
# Private View Only
|
||||||
|
|
||||||
|
1. View private data and no ability to edit
|
||||||
|
|
||||||
|
Private data inlcudes, names, phone numbers, location
|
||||||
|
|
||||||
|
# Enroller
|
||||||
|
|
||||||
|
1. See private data
|
||||||
|
1. Add users
|
||||||
|
1. Edit user fields
|
||||||
|
1. Pin reset
|
||||||
|
1. Initial Disbursement only (1 time per user with a max of 400)
|
||||||
|
1. Disbursement (besides initial) and reclamation (with approval of Admin)
|
||||||
|
|
||||||
|
# Admin
|
||||||
|
|
||||||
|
1. See private data
|
||||||
|
1. Add users
|
||||||
|
1. Edit user fields
|
||||||
|
1. Pin reset
|
||||||
|
1. Disbursement and reclamation (without approval)
|
||||||
|
1. Give approval to Enrollers
|
||||||
|
|
||||||
|
# Super Admin
|
||||||
|
|
||||||
|
1. Assign the roles (Suber Admin, Enroller, View Only)
|
||||||
|
1. See private data
|
||||||
|
1. Add users
|
||||||
|
1. Edit user fields
|
||||||
|
1. Pin reset
|
||||||
|
1. Disbursement and reclamation (without approval)
|
||||||
|
1. Give approval to Enrollers
|
||||||
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
## USSD Menu Staging (```*483*061#```)
|
||||||
|
-----------------------
|
||||||
|
## User Creation
|
||||||
|
* Create a new user via self service (Dial the code above with a phone number not in the system)
|
||||||
|
* ensure user is setup correctly and given (50) tokens
|
||||||
|
* ensure user can set their profile information and check the information
|
||||||
|
* See my profile
|
||||||
|
* Change my business, name, location
|
||||||
|
* Check balance
|
||||||
|
* Change pin
|
||||||
|
* Opt out of market place
|
||||||
|
* ☐ Create a new user via webpage
|
||||||
|
|
||||||
|
## User Types
|
||||||
|
* ☐ Change a user type to Group and Agent
|
||||||
|
* ☐ Change an existing user type to Chama and Agent and test features work like exchange - then back to User and test again
|
||||||
|
|
||||||
|
|
||||||
|
## Pin Reset
|
||||||
|
* ☐ Reset pin for a user
|
||||||
|
|
||||||
|
## Disburse Reclaim
|
||||||
|
* ☐ Disburse and reclaim a token from menu
|
||||||
|
|
||||||
|
## Change language
|
||||||
|
* ☐ English / Kiswahili (do this entire process in both languages -- checking spellings)
|
||||||
|
|
||||||
|
## Send
|
||||||
|
* ☐ Send to registered number
|
||||||
|
* ☐ Verify both parties got the receipt SMS after a transfer
|
||||||
|
* ☐ recheck the balance of each user to verify on our platform
|
||||||
|
* ☐ recheck the balance of each user to verify on blockchain
|
||||||
|
|
||||||
|
* ☐ Send to number not registered
|
||||||
|
* ☐ Verify both you and they both got a SMS
|
||||||
|
|
||||||
|
* ☐ Send from an account with insufficient balance
|
||||||
|
* ☐ Verify SMS with balance
|
||||||
|
|
||||||
|
## Market place
|
||||||
|
* ☐ Check all Business categories
|
||||||
|
* ☐ Check all directory entries on Directory
|
||||||
|
|
||||||
|
|
||||||
|
## Exchange
|
||||||
|
* ☐ Check exchange rate
|
||||||
|
* ☐ Create a Token Agent
|
||||||
|
* ☐ Create a Chama
|
||||||
|
* ☐ Check that Exchange doesn’t work for a normal user
|
||||||
|
* ☐ Check that Exchange only works for a Chama to and Agent
|
||||||
|
* ☐ Check that a 2nd Exchange doesn't work (should only allow it once ever 30 days)
|
||||||
|
* ☐ Check that regular transfers do not work to an Agent
|
||||||
|
*
|
||||||
|
|
||||||
|
## Help
|
||||||
|
* ☐ Correct helpline 0757628885
|
||||||
Loading…
Reference in New Issue