serai/processor/ethereum/router
Luke Parker 8f2a9301cf Don't have the router drop transactions which may have top-level transfers
The router will now match the top-level transfer so it isn't used as the
justification for the InInstruction it's handling. This allows the theoretical
case where a top-level transfer occurs (to any entity) and an internal call
performs a transfer to Serai.

Also uses a JoinSet for fetching transactions' top-level transfers in the ERC20
crate. This does add a dependency on tokio yet improves performance, and it's
scoped under serai-processor (which is always presumed to be tokio-based).
While we could instead import futures for join_all,
https://github.com/smol-rs/futures-lite/issues/6 summarizes why that wouldn't
be a good idea. While we could prefer async-executor over tokio's JoinSet,
JoinSet doesn't share the same issues as FuturesUnordered. That means our
question is solely if we want the async-executor executor or the tokio
executor, when we've already established the Serai processor is always presumed
to be tokio-based.
2024-09-19 23:36:32 -07:00
..
contracts Add calls to get the messages to sign for the router 2024-09-19 23:36:32 -07:00
src Don't have the router drop transactions which may have top-level transfers 2024-09-19 23:36:32 -07:00
build.rs Smash out the router library 2024-09-19 23:36:32 -07:00
Cargo.toml Smash out the router library 2024-09-19 23:36:32 -07:00
LICENSE Smash out the router library 2024-09-19 23:36:32 -07:00
README.md Smash out the router library 2024-09-19 23:36:32 -07:00

Ethereum Router