Luke Parker
3892fa30b7
Test an empty execute
2025-01-24 17:13:36 -05:00
Luke Parker
29bb5e21ab
Take advantage of RangeInclusive for specifying filters' blocks
2025-01-24 07:44:47 -05:00
Luke Parker
f948881eba
Simplify async code in in_instructions_unordered
...
Outsources fetching the ERC20 events to top_level_transfers_unordered.
2025-01-24 05:43:04 -05:00
Luke Parker
7e53eff642
Fix the async flow with the Router
...
It had sequential async calls with complexity O(n), with a variety of redundant
calls. There was also a constant of... 4? 5? for each item. Now, the total
sequence depth is just 3-4.
2025-01-23 06:16:58 -05:00
Luke Parker
669b8b776b
Work on testing the Router
...
Completes the `Executed` enum in the router. Adds an `Escape` struct. Both are
needed for testing purposes.
Documents the gas constants in intent and reasoning.
Adds modernized tests around key rotation and the escape hatch.
Also updates the rest of the codebase which had accumulated errors.
2025-01-23 02:06:06 -05:00
Luke Parker
c8f3a32fdf
Replace custom read/write impls in router with borsh
2025-01-21 03:49:29 -05:00
Luke Parker
5b3c5ec02b
Basic Ethereum escapeHatch test
2024-12-09 02:00:17 -05:00
Luke Parker
b2ec58a445
Update serai-ethereum-processor to compile
2024-10-30 21:48:40 -04:00
Luke Parker
ce1689b325
Expand tests for ethereum-schnorr-contract
2024-10-28 18:08:31 -04:00
Luke Parker
554c5778e4
Don't track deployment block in the Router
...
This technically has a TOCTOU where we sync an Epoch's metadata (signifying we
did sync to that point), then check if the Router was deployed, yet at that
very moment the node resets to genesis. By ensuring the Router is deployed, we
avoid this (and don't need to track the deployment block in-contract).
Also uses a JoinSet to sync the 32 blocks in parallel.
2024-09-19 23:36:32 -07:00
Luke Parker
7e4c59a0a3
Have the Router track its deployment block
...
Prevents a consensus split where some nodes would drop transfers if their node
didn't think the Router was deployed, and some would handle them.
2024-09-19 23:36:32 -07:00
Luke Parker
1e1b821d34
Report a Change Output with every Eventuality to ensure we don't fall out of synchrony
2024-09-19 23:36:32 -07:00
Luke Parker
702b4c860c
Add dummy fee values to the scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
bc1bbf9951
Set a fixed fee transferred to the caller for publication
...
Avoids the risk of the gas used by the contract exceeding the gas presumed to
be used (causing an insolvency).
2024-09-19 23:36:32 -07:00
Luke Parker
4292660eda
Have the Ethereum scheduler create Batches as necessary
...
Also introduces the fee logic, despite it being stubbed.
2024-09-19 23:36:32 -07:00
Luke Parker
1a08d50e16
Remove unused code in the Ethereum processor
2024-09-19 23:36:32 -07:00
Luke Parker
855e53164e
Finish Ethereum ScannerFeed
2024-09-19 23:36:32 -07:00
Luke Parker
1367e41510
Add hooks to the main loop
...
Lets the Ethereum processor track the first key set as soon as it's set.
2024-09-19 23:36:32 -07:00
Luke Parker
673cf8fd47
Pass the latest active key to the Block's scan function
...
Effectively necessary for networks on which we utilize account abstraction in
order to know what key to associate the received coins with.
2024-09-19 23:36:32 -07:00
Luke Parker
118d81bc90
Finish the Ethereum TX publishing code
2024-09-19 23:36:32 -07:00
Luke Parker
9e628d217f
cargo fmt, move ScannerFeed from String to the RPC error
2024-09-19 23:36:32 -07:00
Luke Parker
a717ae9ea7
Have the TransactionPublisher build a TxLegacy from Transaction
2024-09-19 23:36:32 -07:00
Luke Parker
98c3f75fa2
Move the Ethereum Action machine to its own file
2024-09-19 23:36:32 -07:00
Luke Parker
bdc3bda04a
Remove ethereum-serai/serai-processor-ethereum-contracts
...
contracts was smashed out of ethereum-serai. Both have now been smashed into
individual crates.
Creates a TODO directory with left-over test code yet to be moved.
2024-09-19 23:36:32 -07:00
Luke Parker
433beac93a
Ethereum SignableTransaction, Eventuality
2024-09-19 23:36:32 -07:00
Luke Parker
8746b54a43
Don't use a different address for DAI in test
...
anvil will let us deploy to the existing address.
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
b50b889918
Split processor into bitcoin-processor, ethereum-processor, monero-processor
2024-09-19 23:36:32 -07:00