Luke Parker
020d246b8f
Reorganize processor's handling of coins
2022-06-24 19:53:41 -04:00
Luke Parker
60254a0171
Reorganize FROST's handling of curves
2022-06-24 19:47:19 -04:00
Luke Parker
a46524f0ce
Supply a RecommendedTranscript type of DT<Blake2b512>
2022-06-24 18:58:24 -04:00
Luke Parker
1caa6a9606
Enforce FROST StateMachine progression via the type system
...
A comment on the matter was made in
https://github.com/serai-dex/serai/issues/12 . While I do believe the API
is slightly worse, I appreciate the explicitness.
2022-06-24 08:40:14 -04:00
Luke Parker
b6ea654823
Update the processor to use the coin's specified fee
2022-06-19 12:19:32 -04:00
Luke Parker
32473d9976
Route networking through Wallet, not Coin
2022-06-10 09:36:07 -04:00
Luke Parker
4b8822cb74
Clean input/output handling
...
These individual functions should be much easier to test, more legible,
more robust, and adds additional functionality to obtain the best fit.
2022-06-10 09:12:27 -04:00
Luke Parker
8e8bfabc83
Make processor's test for an arbitrary coin, instead of just Monero
2022-06-09 04:34:31 -04:00
Luke Parker
75fb9b3198
Correct input/output selection
...
Payments weren't properly selected, as it'd drain a sequential series
instead of the specified set, and inputs had a memory condition Rust
couldn't prove was safe.
2022-06-09 04:34:15 -04:00
Luke Parker
27751d8d98
Successfully get processor to send a transaction out
...
Modifies FROST behavior so group_key has the offset applied regardless
of if view was called. The unaltered secret_share and
verification_shares (as they have differing values depending on the
signing set) are no longer publicly accessible.
2022-06-09 02:48:53 -04:00
Luke Parker
5313210526
Monero prepare_send
2022-06-05 15:10:50 -04:00
Luke Parker
a46432b829
Add a proper database trait
2022-06-05 06:00:21 -04:00
Luke Parker
3617ed4eb7
Use const values for our traits where we can
2022-06-03 23:22:08 -04:00
Luke Parker
b83ca7d666
Implement a basic TX IO selector algorithm
2022-06-03 22:46:48 -04:00
Luke Parker
e4fc469e58
Use a transcript when generating the per-chain binding for a given set of keys
...
While it was fine as-is, as it only had one variable length property,
this is a bit more robust. Also binds the Curve ID, which should declare
differently even for just different basepoints, and therefore adds two
variable length properties (justifying the transcript).
2022-06-03 01:37:12 -04:00
Luke Parker
dfd2f624ee
Implement a proper Monero Timelock type
...
Transaction scanning now returns the timelock to ensure it's
acknowledged by wallets.
Fixes https://github.com/serai-dex/serai/issues/16 .
2022-06-02 00:00:26 -04:00
Luke Parker
df2876dbd4
Acknowledge Substrate's ordering and move to a multi-key wallet setup
2022-06-01 03:30:57 -04:00
Luke Parker
b5bdb545cc
Add basic key management to the processor
2022-05-28 19:57:10 -04:00
Luke Parker
e982908690
Update the Monero max inputs with according documentation
2022-05-28 05:25:00 -04:00
Luke Parker
92098b24ea
Implement get_outputs_in_block for Monero
...
Uses a dummy view/spend for now, as we don't have wallet management yet.
2022-05-28 05:24:17 -04:00
Luke Parker
c398b246ff
Add the bones of the processor
2022-05-26 04:36:19 -04:00