Commit Graph

407 Commits

Author SHA1 Message Date
Luke Parker
891362a710 Correct invalid RPC type def in monero-rpc 2024-07-04 02:18:37 -04:00
Luke Parker
08d604fcb3 Restore Monero multisig TX code 2024-07-04 02:18:37 -04:00
Luke Parker
abd48e9206 Add SignableTransaction Read/Write 2024-07-04 02:18:37 -04:00
Luke Parker
70c36ed06c Rewrite monero-wallet's send code
I have yet to redo the multisig code and the builder. This should be much
cleaner, albeit slower due to redoing work.

This compiles with clippy --all-features. I have to finish the multisig/builder
for --all-targets to work (and start updating the rest of Serai).
2024-07-04 02:18:37 -04:00
Luke Parker
b3b0edb82f Fix deserializing v2 miner transactions 2024-07-04 02:18:37 -04:00
Luke Parker
0f477537a0 Document cargo features
Credit to @hinto-janai for adding such sections to their work on documenting
monero-serai in #568.
2024-07-04 02:18:37 -04:00
Luke Parker
eb0c19bfff Smash out Monero addresses 2024-07-04 02:18:37 -04:00
Luke Parker
0b20004ba1 Get the repo to compile again 2024-07-04 02:18:37 -04:00
Luke Parker
11dba9173f Smash out seed 2024-07-04 02:18:37 -04:00
Luke Parker
1e2e3bd5ce Smash out polyseed 2024-07-04 02:18:37 -04:00
Luke Parker
df095f027f Only read transactions with one Input::Gen or all Input::ToKey
Also adds a helper to fetch a transaction's prefix.
2024-07-04 02:18:37 -04:00
Luke Parker
6fc8b30df2 Remove TODO on reading pseudo_outs for AggregateMlsagBorromean 2024-07-04 02:18:37 -04:00
Luke Parker
74aaac46ef Finish documenting monero-serai 2024-07-04 02:18:37 -04:00
Luke Parker
1db40914eb Incomplete work on using Option to remove panic cases 2024-07-04 02:18:37 -04:00
Luke Parker
b5b9d4a871 Move Protocol to monero-wallet 2024-07-04 02:18:37 -04:00
Luke Parker
6f61861d4b Improve docs a bit 2024-07-04 02:18:37 -04:00
Luke Parker
08b95abdd8 Document the RPC 2024-07-04 02:18:37 -04:00
Luke Parker
d740bd2924 Smash out RPC, wallet 2024-07-04 02:18:37 -04:00
Luke Parker
3a1c6c7247 Tidy up monero-serai as a meta crate 2024-07-04 02:18:37 -04:00
Luke Parker
3e82ee60b3 Smash out Borromean 2024-07-04 02:18:37 -04:00
Luke Parker
303e72c844 Smash out MLSAG 2024-07-04 02:18:37 -04:00
Luke Parker
60d5c06ac3 Error if missing documentation 2024-07-04 02:18:36 -04:00
Luke Parker
77a2496ade Tidy and document monero-bulletproofs
I still don't like the impl of the original Bulletproofs...
2024-07-04 02:18:36 -04:00
Luke Parker
d9107b53a6 Correct no-std builds for monero-clsag and monero-bulletproofs 2024-07-04 02:18:36 -04:00
Luke Parker
f7c13fd1ca Smash out monero-bulletproofs
Removes usage of dalek-ff-group/multiexp for curve25519-dalek.

Makes compiling in the generators an optional feature.

Adds a structured batch verifier which should be notably more performant.

Documentation and clean up still necessary.
2024-07-04 02:18:36 -04:00
Luke Parker
798ffc9b28 Add a dedicated send/recv CLSAG mask struct
Abstracts the types used internally.

Also moves the tests from monero-serai to monero-clsag.
2024-07-04 02:18:36 -04:00
Luke Parker
865dee80e5 Document and clean clsag 2024-07-04 02:18:36 -04:00
Luke Parker
9c217913e6 Further documentation, start shoring up API boundaries of existing crates 2024-07-04 02:18:36 -04:00
Luke Parker
784a273747 Begin crate smashing 2024-07-04 02:18:36 -04:00
Luke Parker
5cdae6eeb8 Various RingCT doc comments 2024-07-04 02:18:36 -04:00
Luke Parker
a1d1de0c9c Move amount_decryption into EncryptedAmount::decrypt 2024-07-04 02:18:36 -04:00
Luke Parker
d2a27dc1e5 Remove experimental feature from monero-serai 2024-07-04 02:18:36 -04:00
Luke Parker
c165c36777 Tidy Borromean/MLSAG a tad 2024-07-04 02:18:36 -04:00
Luke Parker
f1ad768859 Remove the distribution cache
It's a notable bandwidth/performance improvement, yet it's not ready. We need a
dedicated Distribution struct which is managed by the wallet and passed in.
While we can do that now, it's not currently worth the effort.
2024-07-04 02:18:36 -04:00
Luke Parker
cd8b0544f4 Make CLSAG signing private
Also adds a bit more documentation and does a bit more tidying.
2024-07-04 02:18:36 -04:00
Luke Parker
f5d9d03658 Rename Bulletproofs to Bulletproof, since they are a single Bulletproof
Also bifurcates prove with prove_plus, and adds a few documentation items.
2024-07-04 02:18:36 -04:00
Luke Parker
98b08eaa38 Remove unsafe creation of dalek_ff_group::EdwardsPoint in BP+ 2024-07-04 02:18:36 -04:00
Luke Parker
9af111b4aa Rust 1.79, cargo update 2024-06-13 15:57:08 -04:00
Luke Parker
2a05cf3225 June 2024 nightly update
Replaces #571.
2024-06-01 21:46:49 -04:00
Luke Parker
b5e22dca8f Correct no-std Monero after moving from ToString to Display 2024-04-23 05:25:08 -04:00
Luke Parker
a41329c027 Update clippy now that redundant imports has been reverted 2024-04-23 04:31:27 -04:00
Luke Parker
a25e6330bd Remove DLEq proofs from CLSAG multisig
1) Removes the key image DLEq on the Monero side of things, as the produced
   signature share serves as a DLEq for it.
2) Removes the nonce DLEqs from modular-frost as they're unnecessary for
   monero-serai. Updates documentation accordingly.

Without the proof the nonces are internally consistent, the produced signatures
from modular-frost can be argued as a batch-verifiable CP93 DLEq (R0, R1, s),
or as a GSP for the CP93 DLEq statement (which naturally produces (R0, R1, s)).

The lack of proving the nonces consistent does make the process weaker, yet
it's also unnecessary for the class of protocols this is intended to service.
To provide DLEqs for the nonces would be to provide PoKs for the nonce
commitments (in the traditional Schnorr case).
2024-04-21 23:01:32 -04:00
Luke Parker
558a2bfa46 Slight tweaks to BP+ 2024-04-21 21:51:44 -04:00
expiredhotdog
db2e8376df use multiscalar_mul for CLSAG (#553)
* use multiscalar_mul for CLSAG

* use multiscalar_mul for CLSAG signing

* use OnceLock for basepoint precomputation
2024-04-12 19:52:56 -04:00
Boog900
ab4d79628d fix CLSAG verification.
We were not setting c1 to the last calculated c during verification, instead keeping it set to the one provided in the signature.
2024-04-10 05:59:06 -04:00
j-berman
08c7c1b413 monero: reference updated PR in fee test comment 2024-03-22 22:29:55 -04:00
Luke Parker
e0259f2fe5 Add TODO re: Monero 2024-03-22 16:06:04 -04:00
Luke Parker
5629c94b8b Reconcile the two copies of scalar_vector.rs in monero-serai 2024-03-02 17:15:16 -05:00
Luke Parker
019b42c0e0 fmt/clippy fixes 2024-02-19 22:33:56 -05:00
Justin Berman
079fddbaa6 monero: only mask user features on new polyseed, not on decode (#503)
* monero: only mask user features on new polyseed, not on decode

- This commit ensures a polyseed string that has unsupported features correctly errors on decode (rather than panic in debug build or return an incorrect successful response in prod build)
- Also avoids panicking when checksum calculation is unexpectedly wrong

Polyseed reference impl for feature masking:
- polyseed_create: b7c35bb3c6/src/polyseed.c (L61)
- polyseed_decode: b7c35bb3c6/src/polyseed.c (L212)

* PR comments

* Make from_internal a member of Polyseed

* Add accidentally removed newline

---------

Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2024-02-19 22:03:02 -05:00