Luke Parker
a275023cfc
Finish merging in the develop branch
2025-01-30 03:14:24 -05:00
Luke Parker
cb906242e7
2025 nightly
...
Supersedes #640 .
2025-01-18 12:41:25 -05:00
Luke Parker
8013c56195
Add/correct msrv labels
2024-12-08 18:27:15 -05:00
Luke Parker
eb9bce6862
Remove OutInstruction's data field
...
It makes sense for networks which support arbitrary data to do as part of their
address. This reduces the ability to perform DoSs, achieves better performance,
and better uses the type system (as now networks we don't support data on don't
have a data field).
Updates the Ethereum address definition in serai-client accordingly
2024-09-19 23:36:32 -07:00
Luke Parker
7761798a78
Outline the Ethereum processor
...
This was only half-finished to begin with, unfortunately...
2024-09-19 23:36:32 -07:00
Luke Parker
72a18bf8bb
Smart Contract Scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
0616085109
Monero Planner
...
Finishes the Monero processor.
2024-09-19 23:36:32 -07:00
Luke Parker
e1ad897f7e
Allow scheduler's creation of transactions to be async and error
...
I don't love this, but it's the only way to select decoys without using a local
database. While the prior commit added such a databse, the performance of it
presumably wasn't viable, and while TODOs marked the needed improvements, it
was still messy with an immense scope re: any auditing.
The relevant scheduler functions now take `&self` (intentional, as all
mutations should be via the `&mut impl DbTxn` passed). The calls to `&self` are
expected to be completely deterministic (as usual).
2024-09-19 23:36:32 -07:00
Luke Parker
9b8c8f8231
Misc tidying of serai-db calls
2024-09-19 23:36:32 -07:00
Luke Parker
017aab2258
Satisfy Scheduler for Bitcoin
2024-09-19 23:36:32 -07:00
Luke Parker
247cc8f0cc
Bitcoin Output/Transaction definitions
2024-09-19 23:36:32 -07:00
Luke Parker
f07ec7bee0
Route the coordinator, fix race conditions in the signers library
2024-09-19 23:36:32 -07:00
Luke Parker
100c80be9f
Finish transaction signing task with TX rebroadcast code
2024-09-19 23:36:32 -07:00
Luke Parker
a353f9e2da
Further work on transaction signing
2024-09-19 23:36:32 -07:00
Luke Parker
b62fc3a1fa
Minor work on the transaction signing task
2024-09-19 23:36:32 -07:00
Luke Parker
b50b889918
Split processor into bitcoin-processor, ethereum-processor, monero-processor
2024-09-19 23:36:32 -07:00
Luke Parker
6e9cb74022
Add non-transaction-chaining scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
0c1aec29bb
Finish routing output flushing
...
Completes the transaction-chaining scheduler.
2024-09-19 23:36:32 -07:00
Luke Parker
653ead1e8c
Finish the tree logic in the transaction-chaining scheduler
...
Also completes the DB functions, makes Scheduler never instantiated, and
ensures tree roots have change outputs.
2024-09-19 23:36:32 -07:00
Luke Parker
8ff019265f
Near-complete version of the tree algorithm in the transaction-chaining scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
0601d47789
Work on the tree logic in the transaction-chaining scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
ebef38d93b
Ensure the transaction-chaining scheduler doesn't accumulate the same output multiple times
2024-09-19 23:36:32 -07:00
Luke Parker
75b4707002
Add input aggregation in the transaction-chaining scheduler
...
Also handles some other misc in it.
2024-09-19 23:36:32 -07:00
Luke Parker
fadc88d2ad
Add scheduler-primitives
...
The main benefit is whatever scheduler is in use, we now have a single API to
receive TXs to sign (which is of value to the TX signer crate we'll inevitably
build).
2024-09-19 23:36:32 -07:00
Luke Parker
c88ebe985e
Outline of the transaction-chaining scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
bd277e7032
Add processor/scheduler/utxo/primitives
...
Includes the necessary signing functions and the fee amortization logic.
Moves transaction-chaining to utxo/transaction-chaining.
2024-09-19 23:36:32 -07:00
Luke Parker
fc765bb9e0
Add crate for the transaction-chaining Scheduler
2024-09-19 23:36:32 -07:00