Luke Parker
53267a46c8
Return Timelocked instead of (Timelock, Vec<SpendableOutput>)
...
Timelocked doesn't expose the Vec yet requires calling not_locked(),
unlocked(Timelock), or ignore_timelock().
2022-07-09 18:53:52 -04:00
Luke Parker
daadb43875
Minor doc updates
2022-07-02 11:04:01 -04:00
Luke Parker
3de7a76051
Use GroupEncoding instead of Curve's from_slice/to_bytes
...
Increases usage of standardization while expanding dalek_ff_group.
Closes https://github.com/serai-dex/serai/issues/26 by moving
dfg::EdwardsPoint to only be for the prime subgroup.
2022-06-28 01:25:26 -04:00
Luke Parker
ac17645fc8
Rename MultisigParams/MultisigKeys/MultisigView to Frost*
2022-06-28 00:09:41 -04:00
Luke Parker
7c86e4593a
Implement Guaranteed Addresses
...
Closes https://github.com/serai-dex/serai/issues/27 .
monero-rs is now solely used for Extra encoding.
2022-06-28 00:01:20 -04:00
Luke Parker
7b70baaa96
Rename transcript-trait to flexible-transcript
...
It offers the trait for flexibility, yet it also offers an incredibly
competent (and logical) transcript format, along with a Merlin wrapper.
2022-06-27 09:02:21 -04:00
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
71fca06120
Correct monero/processor dependencies
2022-06-19 07:52:03 -04:00
Luke Parker
b4c1adcdfb
Rename FROST's official package name and update documentation
2022-06-19 05:21:22 -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
d8e794871c
Move the processor to AGPL
...
See https://github.com/serai-dex/serai/issues/13 .
2022-06-01 01:58:07 -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