59 Commits

Author SHA1 Message Date
Jamie Holdstock
d1a838bf7f Add vspclosedmsg config.
If vspclosed is set to true, the provided message will be displayed on the webpage and returned by the status API endpoint.
2021-06-10 09:45:22 +08:00
Jamie Holdstock
b9d4db40e9 Use vspd version as cache buster for .css files.
This will ensure when VSP admins update to a new version of vspd, web visitors will not use cached old .css files.
2021-06-09 21:25:05 +08:00
Jamie Holdstock
9867f78385
Add network proportion to homepage and /vspinfo (and revoked proportion) (#264)
* Add network proportion to homepage and /vspinfo.

Proportion is calculated using the number of tickets  currently registered with the VSP, divided by the total size of the network ticket pool as reported by `getblockheader`.

The value will only ever be an estimate because:

- it's possible for a single ticket to be added to multiple VSPs.
- vspd does not distinguish between immature and live tickets, whereas `getblockheader` only reports live tickets.
- `getblockheader` is reporting the size of the ticket pool as of the previous block, not the current block.

* xaur suggestions

* Show missed ticket %, not just the raw number.
2021-06-08 08:47:07 -05:00
Jamie Holdstock
dad662b0f0 Display fee in DCR rather than atoms. 2021-06-01 07:17:54 +08:00
Jamie Holdstock
32c5c7a524 Indent JSON on admin screen. 2021-06-01 07:17:54 +08:00
Jamie Holdstock
851d3137e5 Improve voting wallet status aesthetics. 2021-06-01 07:17:54 +08:00
Jamie Holdstock
a8c0ae95ac
Use a custom Recovery middleware. (#255) 2021-05-18 07:27:12 +01:00
Jamie Holdstock
b050fc3100
Set and display ticket purchase height (#250)
* Ensure purchase height set for confirmed tickets.

* Show purchase height in admin screen.

Only show purchase height when the ticket is confirmed, because if a ticket is not confirmed, its purchase height is not yet known.
2021-05-14 21:19:01 -05:00
Jamie Holdstock
08fafdaf31
Remove relayFee todo. (#256)
Accepting this as a hard-coded value. It will not be retrieved from RPC or config.
2021-05-14 21:09:24 -05:00
Jamie Holdstock
ef472ffe5d
Include best block height in /vspinfo response (#254) 2021-05-14 21:09:03 -05:00
jholdstock
3a97c9214b Show formatted date for fee expiry 2021-05-13 12:16:08 +01:00
jholdstock
b5a65a9e78 Add block explorer links to tx hashes and fee addr 2021-05-13 12:16:08 +01:00
Jamie Holdstock
5f8ad656f7
Add framework for database upgrades. (#242)
Plus a few other miscellaneous pieces which will be usedful soon:

- Remove `Get` from func names `GetCookieSecret` and `GetFeeXPub`.
- Add helpers to encode/decode integers/bytes.
2021-05-05 08:54:51 -05:00
David Hill
2a096d81f9
fix errorlint warnings (#193) 2020-11-25 15:14:18 +00:00
jholdstock
825a717ca7 Store records of vote choice changes 2020-09-17 16:05:07 +00:00
jholdstock
c7f8cea4dc webapi: base64 encode server signature 2020-08-31 17:14:33 +00:00
jholdstock
4a207b15f8 Add missing copyright notices 2020-08-19 20:22:12 +00:00
jholdstock
dab1666310 Only load .html files in template dir 2020-08-19 20:20:13 +00:00
jholdstock
e0fc5b8d04 Add basic http auth for /admin/status. Update docs. 2020-08-07 17:03:27 +00:00
jholdstock
8c3cab7942 API versioning 2020-07-17 14:31:42 +00:00
vctt94
6f2a069047 Fix ticket status request erroring on json unmarshal 2020-07-16 18:09:45 +00:00
jholdstock
3bbad27624 Endpoint for JSON wallet status 2020-07-09 21:01:20 +00:00
jholdstock
1c351d02ec Add voting wallet status to admin page 2020-07-09 21:01:20 +00:00
jholdstock
27e49e5e69 Include ticket hex in feeaddress request. 2020-06-30 14:57:38 +00:00
jholdstock
1131e15ff1 Include ticket hex in feeaddress request. 2020-06-29 16:42:10 +00:00
jholdstock
5e8ef4e7f2 Prefix for dcrd/dcrwallet/db errors 2020-06-25 15:45:01 +00:00
jholdstock
600cd7bf9b Use modern logo and colours. 2020-06-18 20:18:17 +00:00
jholdstock
13c4f4faea Protect cached vsp stats with mutex. 2020-06-16 14:23:35 +00:00
Jamie Holdstock
bfeddd25d1 Download db backup from admin page. 2020-06-12 13:35:43 +00:00
jholdstock
d53676a907 Use middleware to check admin status. 2020-06-12 13:35:43 +00:00
jholdstock
2f7c46e5f8 Misc front end improvements.
- Use bootstrap to improve layout.
- Add warning banners for webserver debug mode and vspd closed.

Admin page:
- Replace listing of all tickets with form to search by ticket hash
2020-06-12 13:35:43 +00:00
jholdstock
a304fc9890 Close the database after web server is stopped.
Previously all of the shutdown tasks were running concurrently, which meant the db could be closed before the webserver is finished using it.
2020-06-12 13:23:55 +00:00
jholdstock
6caaac0442 Remove global dcrd/dcrwallet clients 2020-06-09 13:12:43 +00:00
jholdstock
9f48bae78e Return parsable error codes instead of just a string.
Also
- Check if VSP is closed before /payfee
2020-06-08 15:33:06 +00:00
jholdstock
b50615bc6f Add very basic admin page. 2020-06-08 15:24:49 +00:00
jholdstock
144060c3cb Add adminpass config item. 2020-06-08 15:24:49 +00:00
jholdstock
9f02063c86 Sign error responses. 2020-06-08 15:21:23 +00:00
jholdstock
0318eded95 Move feeAddressExpiration into webapi package. 2020-06-08 12:27:45 +00:00
jholdstock
8a4053f29f Reinstate check for confirmed tickets. 2020-06-04 15:04:39 +00:00
Jamie Holdstock
d407af35c0
Accept feexpub once at startup. (#97) 2020-06-03 18:10:30 +01:00
jholdstock
7da79c7561 Simplify dcrd and dcrwallet client creation. 2020-06-03 15:46:24 +00:00
jholdstock
81a6bf1ea8 Reject unvotable tickets.
/payfee and /getaddress will now only accept tickets which are immature or live.
2020-06-03 12:49:14 +00:00
jholdstock
86fdf888da Move to decred github org 2020-05-28 12:29:42 -05:00
jholdstock
225dcaf29e multi wallet support (#32)
* multiwallet

* print host

Co-authored-by: Jamie Holdstock <jholdstock@decred.org>
2020-05-28 12:52:06 +01:00
Jamie Holdstock
6a100811f4
Enable pool closure (#80)
* Enable pool closure.

* Move homepage to its own file

* Docs and rename status>info
2020-05-28 07:07:33 +01:00
Jamie Holdstock
e65a7fdbf3
Set values early to prevent races (#77) 2020-05-28 06:58:44 +01:00
Jamie Holdstock
67dece7041
Rename to vspd. (#75) 2020-05-27 15:59:30 +01:00
Jamie Holdstock
d5eb18f557
Add support email and pubkey to GUI (#74)
* Add support email to gui.

* Use Decred fonts

* Use Decred favicon

* Add pubkey to homepage. Use properly typed struct for template data.

* go mod tidy
2020-05-27 15:36:11 +01:00
Jamie Holdstock
d0dedd3af0
Resolving some TODOs (#71)
* Dont allow duplicate fee addresses

* Load webapi keypair in webapi package.

* Split database test file

* Add extra DB testing.
2020-05-27 14:55:59 +01:00
Jamie Holdstock
ccafd8dec4
Calculate fee from percentage. (#69)
* Calculate fee from percentage.

- Reverted config to accept a fee percentage, not absolute value.
- The fee amount to be paid is now included in the `getfeeaddress` response. The current best block is used to calculate the fee percentage, and new blocks may be mined before the fee is paid, so the fee expiry period is shortened from 24 hours to 1 hour to mitigate this.
- Rename ticket db field to FeeAmount so it is more representative of the data it holds.
- API fields renamed to "FeePercentage" and "FeeAmount"
- Relay fee is still hard coded.

* Use getbestblockhash
2020-05-27 14:44:40 +01:00