mirror of
https://github.com/serai-dex/serai.git
synced 2024-12-29 15:09:22 +00:00
8f2a9301cf
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.
30 lines
1 KiB
TOML
30 lines
1 KiB
TOML
[package]
|
|
name = "serai-processor-ethereum-erc20"
|
|
version = "0.1.0"
|
|
description = "A library for the Serai Processor to interact with ERC20s"
|
|
license = "AGPL-3.0-only"
|
|
repository = "https://github.com/serai-dex/serai/tree/develop/processor/ethereum/erc20"
|
|
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
|
|
edition = "2021"
|
|
publish = false
|
|
rust-version = "1.79"
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
rustdoc-args = ["--cfg", "docsrs"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
alloy-core = { version = "0.8", default-features = false }
|
|
|
|
alloy-sol-types = { version = "0.8", default-features = false }
|
|
alloy-sol-macro = { version = "0.8", default-features = false }
|
|
|
|
alloy-rpc-types-eth = { version = "0.3", default-features = false }
|
|
alloy-transport = { version = "0.3", default-features = false }
|
|
alloy-simple-request-transport = { path = "../../../networks/ethereum/alloy-simple-request-transport", default-features = false }
|
|
alloy-provider = { version = "0.3", default-features = false }
|
|
|
|
tokio = { version = "1", default-features = false, features = ["rt"] }
|