26 Commits

Author SHA1 Message Date
Jamie Holdstock
6b99c5d2b5
webapi: Use types 2.0.0 (#376)
* webapi: Use types 2.0.0

* v3tool: Use types 2.0.0
2023-04-12 08:12:53 -05:00
Jamie Holdstock
ed1fac1a2a
Add types module for API requests/responses/errors. (#356)
* Remove helper func getCommitmentAddress.

This function is only used in one place so removing it does not introduce any duplication. Removing the func also removes the need for errors.Is comparison, which will be very useful in upcoming changes.

* Rename apiError to ErrorCode.

* Don't use inline type for API errors.

* Export webapi errors.

* Export webapi request/responses.

* Add types module for API requests/responses/errors
2022-11-18 15:06:47 -05:00
jholdstock
ebcfe0e5e9 Remove global logger from webapi. 2022-06-23 09:11:28 +01:00
jholdstock
37d51df546 Remove global vars from webapi package. 2022-03-28 08:54:09 +01:00
Jamie Holdstock
da1cb8f916
Enable treasury vote choices. (#319)
This allows both tspend and treasury policies to be set by clients on a per-ticket basis. Preferences can be set when initially registering a ticket with `/payfee`, and can be later updated using `/setvotechoices`.

Any requests which alter treasury/tspend policy will be stored in the database using the existing accountability system.

**Note:** This does not include consistency checking, it will need to be added later when dcrwallet has an RPC to retrieve policies in batches.
2022-02-04 14:14:49 -05:00
Ukane philemon
74aa7bcd13
Added alternate signing address to /ticketstatus response (#314) 2022-01-17 10:50:46 +00:00
jholdstock
b1a68a94fe Use constants for web context keys. 2021-11-16 14:33:39 +00:00
Jamie Holdstock
ac8e20f3c1
Use actual request in response, dont reserialize. (#220)
Reserializing the client request can result in different bytes because
the order of iteration over a map is not guaranteed to be the same every
time.
2020-12-30 12:36:06 +00:00
jholdstock
825a717ca7 Store records of vote choice changes 2020-09-17 16:05:07 +00:00
jholdstock
d0c3abf258 Make funcNames constant.
Aside from just being a sensible thing to do, this also prevents a local stack allocation.
2020-09-17 14:21:17 +00:00
jholdstock
4a207b15f8 Add missing copyright notices 2020-08-19 20:22:12 +00:00
jholdstock
bcb6fd5ec3 Don't export types unnecessarily 2020-08-07 17:03:03 +00:00
jholdstock
8c3cab7942 API versioning 2020-07-17 14:31:42 +00:00
vctt94
0a57bd3ce7 Change docs to POST 2020-07-16 18:09:45 +00:00
jholdstock
0e953dc225 Add extra debug info to log messages 2020-06-25 15:45:01 +00:00
jholdstock
9d6cf57219 Add funcName to web api logs 2020-06-25 15:45:01 +00:00
jholdstock
ed21f0af64 Don't put request bytes into context. 2020-06-22 16:23:31 +00:00
jholdstock
4f2766352b Improve handling of fee status.
- Fee tx status is now tracked using a dedicated field, with values none/received/broadcast/confirmed/error.
- Fee tx hex and hash are now both set in /payfee. The absense of txhash is no longer used to determine if a fee tx has been broadcast or not.
- setvotechoices can no longer be called before a fee is received.
- Remove `binding:required` from response types. It has no effect on responses, it is only needed on request types which are validated by gin.
2020-06-09 14:17: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
86fdf888da Move to decred github org 2020-05-28 12:29:42 -05:00
Jamie Holdstock
4b2a68ea48
Populate ticket status response. (#82) 2020-05-28 18:05:56 +01:00
Jamie Holdstock
67dece7041
Rename to vspd. (#75) 2020-05-27 15:59:30 +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
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
bd518d7e24
Split methods.go (#39) 2020-05-20 15:37:01 +01:00