This repository has been archived by the owner on Dec 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathGivethFebMilestones.js
139 lines (132 loc) · 14.8 KB
/
GivethFebMilestones.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
var Adam = "0xC2d9F9c9dD6f76784a8f56f936953b6661A12da8"; // AP
var Barry = "0x39cfe11c1321c7b506eb1d967af6ea35dd6ef304"; // BW
var Griff = "0x839395e20bbb182fa440d08f850e6c7a8f6f0780"; // Griff
var Gian = "0x82aEB1D8939f514318449fa8Ec704A94DC16E01D"; // Gian
var Jordi = "0x1dba1131000664b884a1ba238464159892252d3a"; // Jordi
var Grace = "0x64A1C14aCF4D3d1F8F0316f6C924Ec8f35a27BCF"; // Grace
var Vojtech = "0xf9a2595bFAe0694f114042679b3A9a536Bb7A5D8"; // Vojtech
var MultisigAddy = "0x32bacc8B241FB172fEE18bDa32527126c6f3c5f7";
var ETHprice = 10.45;
var vaultAbi = [{"constant":true,"inputs":[],"name":"maxSecurityGuardDelay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"escapeHatch","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"executePayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newTimeLock","type":"uint256"}],"name":"setTimelock","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newEscapeCaller","type":"address"}],"name":"changeEscapeCaller","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numberOfAuthorizedPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_authorize","type":"bool"}],"name":"authorizeSpender","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"}],"name":"cancelPayment","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_idPayment","type":"uint256"},{"name":"_delay","type":"uint256"}],"name":"delayPayment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_description","type":"string"},{"name":"_recipient","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_paymentDelay","type":"uint256"}],"name":"authorizePayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"authorizedPayments","outputs":[{"name":"description","type":"string"},{"name":"spender","type":"address"},{"name":"earliestPayTime","type":"uint256"},{"name":"canceled","type":"bool"},{"name":"paid","type":"bool"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"securityGuardDelay","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"receiveEther","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"securityGuard","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newSecurityGuard","type":"address"}],"name":"setSecurityGuard","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"escapeDestination","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"timeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedSpenders","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxSecurityGuardDelay","type":"uint256"}],"name":"setMaxSecurityGuardDelay","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"absoluteMinTimeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"escapeCaller","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_escapeCaller","type":"address"},{"name":"_escapeDestination","type":"address"},{"name":"_absoluteMinTimeLock","type":"uint256"},{"name":"_timeLock","type":"uint256"},{"name":"_securityGuard","type":"address"},{"name":"_maxSecurityGuardDelay","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"idPayment","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PaymentAuthorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"idPayment","type":"uint256"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PaymentExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"idPayment","type":"uint256"}],"name":"PaymentCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"EtherReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"spender","type":"address"},{"indexed":false,"name":"authorized","type":"bool"}],"name":"SpenderAuthorization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"EscapeCalled","type":"event"}];
var vault = web3.eth.contract(vaultAbi).at(vaultAddr);
var milestonesBytes = milestoneTrackerHelper.milestones2bytes( {
description:"MVP UI for Milestone Tracker: Developing the basic UI architecture for the Milestone Tracker Contract and all the rest of Giveth's UI's: enabling anyone using MetaMask, Mist, or Parity to generate new milestones and effectively implement all features in the Milestone Tracker Contract, this basic UI will be focused on functionality, enabling integration and easy customization for this UI to be added to other websites of various designs. To be considered finished, a workflow for the API requirements for Status.im need to be written out and communicated to the Status guys (Jordi's extra $400) and the web interface needs to be complete and working so that a milestone can be added to a campaign completely from the web3 interface: $5400 USD in ETH at the market rate to be split between Jordi ($2900) and Vojtech ($2500)",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-04-01').getTime() /1000),
milestoneLeadLink:Jordi,
reviewer:Griff,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Milestone Tracker UI MVP",
Jordi,
web3.toWei(5400/ETHprice),
0
)
}, {
description:"MLP UI for a full Campaign: Making a few more Milestone Tracker UI iterations and building the Minimum Loveable version for a full Giveth Campaign from the donor’s perspective: enabling anyone using MetaMask, Mist, or Parity to generate new milestones, and effectively implement all needed actions donate to and observe a working Campaign utilizing the 3 basic contracts we have. This foundational set of UI’s will be focused on functionality and making it easy for other campaigns to take our code and integrate to their own website. To be considered finished, a workflow for the API requirements for Status.im needs to be written out and communicated to the Status guys (Jordi's extra $100) and the web interface needs to be complete and working for every actian a donor can take and it has to be minimally loveable. If the milestone is finished by the 15th of Feb: $5100 USD in ETH at the market rate to be split between Jordi ($2600) and Vojtech ($2500). If done by March 1st: $3850 USD in ETH at the market rate to be split between Jordi ($1975) and Vojtech ($1875). If done after that $3100 USD in ETH at the market rate to be split between Jordi ($1600) and Vojtech ($1500).",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-04-01').getTime() /1000),
milestoneLeadLink:Jordi,
reviewer:Griff,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Campaign UI MLP",
Jordi,
web3.toWei(5400/ETHprice),
0
)
},{
description: "Reviewing contracts and potentially adding invariance to the vault: Reviewing the any crazy ideas Jordi comes up with :-) looking for bugs and helping to make the final approval before deploying contracts live on the blockchain: $300 USD in ETH at the market rate to Barry White",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-05-01').getTime() /1000),
milestoneLeadLink:Barry,
reviewer:Jordi,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Barry's Incredible Auditing",
Barry,
web3.toWei(300/ETHprice),
0
)
}, {
description:"Build a new Giveth website. Vojtech will create a very clean design similar to https://slock.it but respecting our own brand, theme and colors. His work includes analysis of the website requirements, looking at projects from similar areas, UML modeling and prototyping (use case, sequence diagrams), designing distinct pages and infographics. He will link to the Medium blog as much as their API allows, add a twitter feed, add a facebook feed, list other campaigns, and provide pages for the future Giveth UIs and other projects. His total work is estimated to take 150-250h at a $20/hour rate in ETH at the market rate at the time of completion. Grace will support Vojtech on the final website structure, look and feel, content display & colors in accordance the brand identity and add any extra the finishing touches before it is launched live for $200 and $20/hour for UI Validation/Testing. This leads to an estimated $3500-6500 USD in ETH at the market rate to be split between Vojtech and Grace for developing the website, and it includes reasonable maintenance requirements after the website launch and milestone payment."
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-05-01').getTime() /1000),
milestoneLeadLink:Vojtech,
reviewer:Grace,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Building the Giveth Website v2.0",
Vojtech,
web3.toWei(xxx/ETHprice),
0
)
}, {
description:"Grace’s Q1-2017 Milestones: Brand management and filling in the gaps, Promote Giveth, reach out to potential NGO’s/Charities to introduce the Giveth platform, ongoing updates to the website Search for potential campaigns to use with our minimum loveable product. Deliver presentation on Giveth at the GAVI Alliance --> $200/week. Get DAO.link up and running to manage Giveth’s structuring for $100. Create posts for our website $100/per post. Estimated Total ~$1200 USD per month in ETH at the market rate to be given to Grace Torrellas",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-05-01').getTime() /1000),
milestoneLeadLink:Grace,
reviewer:Griff,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Grace’s Q1-2017 Milestones",
Grace,
web3.toWei(xx/ETHprice),
0
)
}, {
description:"Griff’s Milestone: Promote Giveth and coordinate between all the interested parties and teams; lead the project making sure things get done: a weekly salary of $350 (starting Jan26) + Code review, adding descriptive comments, admin, editing ReadMes and doing anything else needed to support the development $35/hour + blog posts @ $150 per post all in ETH at the market rate to Griff Green",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-05-01').getTime() /1000),
milestoneLeadLink:Griff,
reviewer:Jordi,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Griff Making Giveth Happen",
Griff,
web3.toWei(2500/ETHprice),
0
)
}, {
description:"Basic Governance Smart Contract: Designing, developing and deploying a basic DAO-like Smart Contract to allow the token holders to use their tokens to make group decisions (e.g. to determine if the completion of a milestone is valid (acting as a reviewer) and to accept proposed milestones (acting as a Donor). This might take a few iterations but the milestone will be considered complete when it is available for organizations to use with the Giveth Campaign (after thorough testing): 2500 USD in ETH at the market rate to Jordi and Friends",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-04-01').getTime() /1000),
milestoneLeadLink:Jordi,
reviewer:Griff,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Basic DAO",
Jordi,
web3.toWei(2500/ETHprice),
0
)
}, {
description:"Delegated Pledging Smart Contract Research: We are still in the research phase, this may not be possible due to gas constraints and game theoretical attacks. Designing a basic liquid democracy-like Smart Contract (to allow Donors to send their tokens to delegates so that decisions about which project to invest in can be done by the Delegate, not the donor) is much more complicated than expected. This milestone will be completed when a design is understood and work can begin on developing a smart contract that can be deployed on the Ethereum blockchain: 2000 USD in ETH at the market rate to Jordi and Friends",
url:"http://www.giveth.io",
minDoneDate:Math.floor(new Date('2017-01-01').getTime() /1000),
maxDoneDate:Math.floor(new Date('2017-07-01').getTime() /1000),
milestoneLeadLink:Jordi,
reviewer:Griff,
reviewTime:86400*7,
payDestination:vaultAddr,
payData:vault.authorizePayment.getData(
"Delegated Pledging",
Jordi,
web3.toWei(2000/ETHprice),
0
)
});