-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
RFP-0002 for Webwallet stake ticket purchasing front/backend
- Loading branch information
Showing
3 changed files
with
50 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Web Wallet Ticket and Stake Pool Support | ||
|
||
## Description | ||
The [Decred Web Wallet](https://wallet.decred.org) is based on [BitPay's Copay](https://github.com/bitpay/copay), and this wallet has no support for handling stake-related transactions. In order to allow users of the web wallet to participate in the proof-of-stake ("PoS") mining process, support for creating and managing these transactions must be added to the existing code. | ||
To participate in the PoS mining process, users must be able to both purchase tickets, i.e. issue a SSTX transaction, and configure their voting to occur through a stake pool. These additions would correspond to adding 1 or 2 screens to the existing web UI, along with the corresponding backend code changes. | ||
|
||
The UI changes to add ticket purchasing support need to be both consistent with the existing UI and straightforward to merge with future code from [BitPay's Copay repository](https://github.com/bitpay/copay). | ||
|
||
This requires 2 separate deliverable sets that may be supplied by separate individuals or groups: (1) the additions to the existing web wallet UI (frontend), and (2) additions to the Copay stack to import the multisig stake pool address and script, create ticket purchase transactions and to relay them to the network via the existing sendrawtransaction rpc. Proposals may be submitted for deliverable sets (1), (2) or both (1) and (2). | ||
|
||
## Requirements | ||
- UI design (frontend) - Familiarity with HTML, CSS and some Node.js. Experience with references to prior work. | ||
|
||
- Copay development (backend) - Familiarity with Node.js. Experience with references to prior work. | ||
|
||
## Scope | ||
In terms of the frontend, the Decred Copay wallet currently has a start page that has 4 buttons along its bottom edge [Home, Receive, Send, History](./WebWalletRfp0002.png), 1 for each panel. An additional panel must be added to allow users to purchase stake tickets, or the ability to purchase stake tickets must be added to the existing | ||
Send panel. The ability to add a stake pool must be added to the Preferences menu (on Home panel) for a given wallet. Adding the stake pool requires entering a multisig address and script (text data) that are supplied by the stake pool. Users attempting to buy tickets must be prevented from buying tickets until they have entered the address and script from the stake pool. | ||
|
||
The backend of Copay will require working with several repositories to add the required features, e.g. insight, insight-api, bitcore-wallet-service (BWS). The ability to import a multisig address and script from a stake pool will need to be added to ensure stake pools can work properly, and this will likely make use of existing multisig handling in Copay. Once a user has added a stake pool address and script, they need to be able to create an SSTX transaction. This SSTX transaction must be relayed from Copay through BWS, Insight and ultimately dcrd. Ultimately the most significant changes will come in BWS where a sstxProposal model will be made along side the existing txProposal model. Much of the existing infrastructure should allow for sstxProposals to be sent through to insight/dcrd with little effort. | ||
|
||
## Estimated Work | ||
1 week FTE or greater (1 FTE = 40 hrs/week) | ||
|
||
## Proposal | ||
Proposals should include: | ||
|
||
1. Description of proposed frontend UI and/or backend changes | ||
2. References to prior work on web design and/or Node.js projects | ||
3. Estimated completion time | ||
|
||
## Milestones | ||
Partial payments shall be made at the following milestones: | ||
|
||
**Copay UI** | ||
|
||
1. The proposed design is prepared on static pages for ticket purchasing and stake pool configuration | ||
2. The proposed design is integrated into Copay and tested to behave as expected | ||
3. The changes have been successfully integrated into the Copay master branch | ||
|
||
**Backend integration** | ||
|
||
1. Importing multisig addresses and scripts and creating and relaying SSTX transactions through the Copay stack are confirmed to work | ||
2. New backend functions are integrated with the corresponding UI additions | ||
3. The changes have been successfully integrated into the various repositories' master branches | ||
|
||
Modification of these proposed milestones is acceptable, and must be accompanied by sound reasoning in a proposal. Under no circumstances shall payments be made in advance of work being completed. | ||
|
||
|