74 Commits

Author SHA1 Message Date
Jamie Holdstock
87500c3fef
Delay fee broadcast and adding tickets to wallets. (#62)
* Delay fee broadcast and adding tickets to wallets.

- Adds a `background` package which implements a dcrd notification handler.  On each blockconnected notification, tickets with 6+ confirmations are marked confirmed, relevant fee transactions are broadcast, and any fees with 6+ confirmations have their tickets added to voting wallets.
- VSP fee is now an absolute value measured in DCR rather than a percentage. This simplifies the code and is more appropriate for an MVP. We can re-add percentage based fees later.
- Database code for tickets is now simplified to just "Insert/Update", rather than having functions for updating particular fields.
- Pay fee response no longer includes the fee tx hash, because we dont necessarily broadcast the fee tx straight away.

* Const for required confs
2020-05-27 06:39:38 +01:00
Jamie Holdstock
9151f4f221
Generate fee addresses in dcrvsp, not dcrwallet (#59)
* Remove unnecessary error handling.

* Generate fee addresses in dcrvsp, not dcrwallet

* Break loop if multiple invalid children are generated.

* Use Mutex instead of RWMutex
2020-05-26 14:51:05 +01:00
Jamie Holdstock
ac488464c0
Rework client/server authentication. (#58)
* Rework client/server authentication.

- Remove Signature from all requests, and instead expect a signature in HTTP header "VSP-Client-Signature".
- Remove CommitmentSignatures from the database.
- Use a bool flag to indicate when a ticket is missing from the database rather than an error.

This commit introduces a lot of duplication into each of the authenticated HTTP handlers. This should be removed in future work which moves the authentication to a dedicated middleware.

* Introduce auth and rpc middleware.

This removed the duplication added in the previous commit, and also removes the duplication of RPC client error handling.
2020-05-26 14:14:38 +01:00
Jamie Holdstock
1ff55f4b30
Add some stats to homepage (#51) 2020-05-22 18:43:41 +01:00
Jamie Holdstock
96608718a0
Cleaning up some TODOs (#50) 2020-05-22 18:42:51 +01:00
Jamie Holdstock
740b9c8e0f
Get relay fee from wallet (#47) 2020-05-22 15:09:51 +01:00
Jamie Holdstock
bb416e8bc9
Set vote choices on voting wallets (#43) 2020-05-21 07:59:51 +01:00
Jamie Holdstock
cf55092c21
Add ticket hash to payfee request. (#38) 2020-05-20 08:09:07 +01:00
Jamie Holdstock
d31c24b531
Add missing tests and log errors. (#36) 2020-05-19 17:21:40 +01:00
David Hill
80e7983d4e
add in expiration logic (#31) 2020-05-19 16:13:48 +01:00
David Hill
fff8132b13
Store signing key in db. (#34) 2020-05-19 14:24:02 +01:00
Jamie Holdstock
5c1c19844c
Error logging for API methods (#28) 2020-05-19 10:55:25 +01:00
David Hill
302abce2fc
database: rename GetFeesByFeeAddress to GetTicketByFeeAddress (#30) 2020-05-19 10:54:06 +01:00
Jamie Holdstock
e70bb206c3
Generalize database accessor. (#24) 2020-05-18 15:20:29 +01:00
Jamie Holdstock
6ca2f620b7
Use a waitgroup to wait for shutdown tasks (#21) 2020-05-18 09:05:10 +01:00
David Hill
1092df5224
use dcrutil.VerifyMessage versus RPC (#22) 2020-05-18 08:42:35 +01:00
Jamie Holdstock
8768014348
Add shutdown context. (#20) 2020-05-17 07:49:53 +01:00
David Hill
70ed281215
start hooking up database (#17) 2020-05-15 16:33:55 +01:00
Jamie Holdstock
7c5ab7ebae
Add basic HTML page and project license (#15) 2020-05-15 16:07:26 +01:00
Jamie Holdstock
57dfc1ed6d
Add decred logging and config (#8) 2020-05-14 19:02:45 +01:00
Jamie Holdstock
d0236e5c04
Implement ticket storage and retrieval (#5) 2020-05-14 14:04:14 +01:00
Jamie Holdstock
b45bbf8896
Enable CI through GitHub Actions (#4) 2020-05-14 13:53:48 +01:00
jholdstock
fcd068deb3 Rename Fees => Tickets 2020-05-13 21:48:59 +01:00
jholdstock
f919d4d8fc Add missing db stubs and begin db implementation 2020-05-13 21:25:35 +01:00