diff --git a/Cargo.lock b/Cargo.lock
index 502a94bc253e..b351a18ece36 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -59,6 +59,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
+ "const-random",
"getrandom 0.2.15",
"once_cell",
"version_check",
@@ -500,7 +501,7 @@ dependencies = [
"alloy-primitives",
"alloy-pubsub",
"alloy-rpc-client 0.4.2",
- "alloy-rpc-types-admin",
+ "alloy-rpc-types-admin 0.4.2",
"alloy-rpc-types-engine 0.4.2",
"alloy-rpc-types-eth 0.4.2",
"alloy-transport 0.4.2",
@@ -634,6 +635,18 @@ dependencies = [
"serde",
]
+[[package]]
+name = "alloy-rpc-types-admin"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fefd12e99dd6b7de387ed13ad047ce2c90d8950ca62fc48b8a457ebb8f936c61"
+dependencies = [
+ "alloy-genesis 0.3.6",
+ "alloy-primitives",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "alloy-rpc-types-admin"
version = "0.4.2"
@@ -646,6 +659,17 @@ dependencies = [
"serde_json",
]
+[[package]]
+name = "alloy-rpc-types-anvil"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d25cb45ad7c0930dd62eecf164d2afe4c3d2dd2c82af85680ad1f118e1e5cb83"
+dependencies = [
+ "alloy-primitives",
+ "alloy-serde 0.3.6",
+ "serde",
+]
+
[[package]]
name = "alloy-rpc-types-anvil"
version = "0.4.2"
@@ -657,6 +681,20 @@ dependencies = [
"serde",
]
+[[package]]
+name = "alloy-rpc-types-beacon"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e7081d2206dca51ce23a06338d78d9b536931cc3f15134fc1c6535eb2b77f18"
+dependencies = [
+ "alloy-eips 0.3.6",
+ "alloy-primitives",
+ "alloy-rpc-types-engine 0.3.6",
+ "serde",
+ "serde_with",
+ "thiserror",
+]
+
[[package]]
name = "alloy-rpc-types-beacon"
version = "0.4.2"
@@ -693,8 +731,7 @@ dependencies = [
"alloy-rlp",
"alloy-serde 0.3.6",
"derive_more 1.0.0",
- "jsonwebtoken",
- "rand 0.8.5",
+ "jsonrpsee-types",
"serde",
]
@@ -734,6 +771,7 @@ dependencies = [
"derive_more 1.0.0",
"hashbrown 0.14.5",
"itertools 0.13.0",
+ "jsonrpsee-types",
"serde",
"serde_json",
]
@@ -758,6 +796,19 @@ dependencies = [
"serde_json",
]
+[[package]]
+name = "alloy-rpc-types-mev"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "922d92389e5022650c4c60ffd2f9b2467c3f853764f0f74ff16a23106f9017d5"
+dependencies = [
+ "alloy-eips 0.3.6",
+ "alloy-primitives",
+ "alloy-serde 0.3.6",
+ "serde",
+ "serde_json",
+]
+
[[package]]
name = "alloy-rpc-types-mev"
version = "0.4.2"
@@ -771,6 +822,20 @@ dependencies = [
"serde_json",
]
+[[package]]
+name = "alloy-rpc-types-trace"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98db35cd42c90b484377e6bc44d95377a7a38a5ebee996e67754ac0446d542ab"
+dependencies = [
+ "alloy-primitives",
+ "alloy-rpc-types-eth 0.3.6",
+ "alloy-serde 0.3.6",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
[[package]]
name = "alloy-rpc-types-trace"
version = "0.4.2"
@@ -785,6 +850,18 @@ dependencies = [
"thiserror",
]
+[[package]]
+name = "alloy-rpc-types-txpool"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bac37082c3b21283b3faf5cc0e08974272aee2f756ce1adeb26db56a5fce0d5"
+dependencies = [
+ "alloy-primitives",
+ "alloy-rpc-types-eth 0.3.6",
+ "alloy-serde 0.3.6",
+ "serde",
+]
+
[[package]]
name = "alloy-rpc-types-txpool"
version = "0.4.2"
@@ -1146,10 +1223,42 @@ dependencies = [
"windows-sys 0.52.0",
]
+[[package]]
+name = "antelope-client"
+version = "0.2.1"
+source = "git+https://github.com/telosnetwork/antelope-rs?branch=development#ed53c75b6b9ce14aa72002ddd491a6697ae563d9"
+dependencies = [
+ "antelope-client-macros",
+ "async-trait",
+ "base64 0.21.7",
+ "bs58",
+ "chrono",
+ "digest 0.10.7",
+ "ecdsa",
+ "flate2",
+ "hex",
+ "hmac 0.12.1",
+ "k256",
+ "log",
+ "once_cell",
+ "p256",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "reqwest 0.11.27",
+ "ripemd",
+ "serde",
+ "serde-big-array",
+ "serde_json",
+ "sha2 0.10.8",
+ "signature",
+ "thiserror",
+ "tokio",
+]
+
[[package]]
name = "antelope-client"
version = "0.3.0"
-source = "git+https://github.com/telosnetwork/antelope-rs?rev=d701cd9ca2e87e8e0fd99746f9c672cb3536e5ec#d701cd9ca2e87e8e0fd99746f9c672cb3536e5ec"
+source = "git+https://github.com/telosnetwork/antelope-rs?branch=master#fea2203b2edb5cfcedd5365031e5286b47dc5c66"
dependencies = [
"antelope-client-macros",
"async-trait",
@@ -1354,6 +1463,248 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+[[package]]
+name = "arrow"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "219d05930b81663fd3b32e3bde8ce5bff3c4d23052a99f11a8fa50a3b47b2658"
+dependencies = [
+ "arrow-arith",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-csv",
+ "arrow-data",
+ "arrow-ipc",
+ "arrow-json",
+ "arrow-ord",
+ "arrow-row",
+ "arrow-schema",
+ "arrow-select",
+ "arrow-string",
+]
+
+[[package]]
+name = "arrow-arith"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0272150200c07a86a390be651abdd320a2d12e84535f0837566ca87ecd8f95e0"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half",
+ "num",
+]
+
+[[package]]
+name = "arrow-array"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8010572cf8c745e242d1b632bd97bd6d4f40fefed5ed1290a8f433abaa686fea"
+dependencies = [
+ "ahash",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half",
+ "hashbrown 0.14.5",
+ "num",
+]
+
+[[package]]
+name = "arrow-buffer"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d0a2432f0cba5692bf4cb757469c66791394bac9ec7ce63c1afe74744c37b27"
+dependencies = [
+ "bytes",
+ "half",
+ "num",
+]
+
+[[package]]
+name = "arrow-cast"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9abc10cd7995e83505cc290df9384d6e5412b207b79ce6bdff89a10505ed2cba"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "arrow-select",
+ "atoi",
+ "base64 0.22.1",
+ "chrono",
+ "half",
+ "lexical-core",
+ "num",
+ "ryu",
+]
+
+[[package]]
+name = "arrow-csv"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95cbcba196b862270bf2a5edb75927380a7f3a163622c61d40cbba416a6305f2"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "csv",
+ "csv-core",
+ "lazy_static",
+ "lexical-core",
+ "regex",
+]
+
+[[package]]
+name = "arrow-data"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2742ac1f6650696ab08c88f6dd3f0eb68ce10f8c253958a18c943a68cd04aec5"
+dependencies = [
+ "arrow-buffer",
+ "arrow-schema",
+ "half",
+ "num",
+]
+
+[[package]]
+name = "arrow-ipc"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a42ea853130f7e78b9b9d178cb4cd01dee0f78e64d96c2949dc0a915d6d9e19d"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-data",
+ "arrow-schema",
+ "flatbuffers",
+]
+
+[[package]]
+name = "arrow-json"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eaafb5714d4e59feae964714d724f880511500e3569cc2a94d02456b403a2a49"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-cast",
+ "arrow-data",
+ "arrow-schema",
+ "chrono",
+ "half",
+ "indexmap 2.6.0",
+ "lexical-core",
+ "num",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "arrow-ord"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3e6b61e3dc468f503181dccc2fc705bdcc5f2f146755fa5b56d0a6c5943f412"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "arrow-select",
+ "half",
+ "num",
+]
+
+[[package]]
+name = "arrow-row"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "848ee52bb92eb459b811fb471175ea3afcf620157674c8794f539838920f9228"
+dependencies = [
+ "ahash",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "half",
+ "hashbrown 0.14.5",
+]
+
+[[package]]
+name = "arrow-schema"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02d9483aaabe910c4781153ae1b6ae0393f72d9ef757d38d09d450070cf2e528"
+
+[[package]]
+name = "arrow-select"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "849524fa70e0e3c5ab58394c770cb8f514d0122d20de08475f7b472ed8075830"
+dependencies = [
+ "ahash",
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "num",
+]
+
+[[package]]
+name = "arrow-string"
+version = "51.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9373cb5a021aee58863498c37eb484998ef13377f69989c6c5ccfbd258236cdb"
+dependencies = [
+ "arrow-array",
+ "arrow-buffer",
+ "arrow-data",
+ "arrow-schema",
+ "arrow-select",
+ "memchr",
+ "num",
+ "regex",
+ "regex-syntax 0.8.5",
+]
+
+[[package]]
+name = "arrowbatch"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e304bae8e33446c64842dba444042ce65cb23e2b1e439fa2f4abb7591db562c5"
+dependencies = [
+ "arrow",
+ "base64 0.22.1",
+ "chrono",
+ "env_logger 0.10.2",
+ "futures",
+ "futures-util",
+ "hex",
+ "log",
+ "moka",
+ "num",
+ "num-bigint",
+ "rlp",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tokio-tungstenite 0.21.0",
+ "tungstenite 0.21.0",
+ "uuid",
+ "zstd",
+]
+
[[package]]
name = "asn1_der"
version = "0.7.6"
@@ -1451,6 +1802,15 @@ dependencies = [
"rustc_version 0.4.1",
]
+[[package]]
+name = "atoi"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
+dependencies = [
+ "num-traits",
+]
+
[[package]]
name = "atomic-waker"
version = "1.1.2"
@@ -2318,6 +2678,26 @@ version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+[[package]]
+name = "const-random"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
+dependencies = [
+ "const-random-macro",
+]
+
+[[package]]
+name = "const-random-macro"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
+dependencies = [
+ "getrandom 0.2.15",
+ "once_cell",
+ "tiny-keccak",
+]
+
[[package]]
name = "const_format"
version = "0.2.33"
@@ -3112,6 +3492,19 @@ dependencies = [
"regex",
]
+[[package]]
+name = "env_logger"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
[[package]]
name = "env_logger"
version = "0.11.5"
@@ -3152,7 +3545,7 @@ name = "example-beacon-api-sidecar-fetcher"
version = "0.1.0"
dependencies = [
"alloy-primitives",
- "alloy-rpc-types-beacon",
+ "alloy-rpc-types-beacon 0.4.2",
"clap",
"eyre",
"futures-util",
@@ -3168,7 +3561,7 @@ dependencies = [
name = "example-beacon-api-sse"
version = "0.0.0"
dependencies = [
- "alloy-rpc-types-beacon",
+ "alloy-rpc-types-beacon 0.4.2",
"clap",
"futures-util",
"mev-share-sse",
@@ -3444,7 +3837,7 @@ name = "example-txpool-tracing"
version = "0.0.0"
dependencies = [
"alloy-primitives",
- "alloy-rpc-types-trace",
+ "alloy-rpc-types-trace 0.4.2",
"clap",
"futures-util",
"reth",
@@ -3555,6 +3948,16 @@ dependencies = [
"static_assertions",
]
+[[package]]
+name = "flatbuffers"
+version = "23.5.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640"
+dependencies = [
+ "bitflags 1.3.2",
+ "rustc_version 0.4.1",
+]
+
[[package]]
name = "flate2"
version = "1.0.34"
@@ -3915,6 +4318,7 @@ checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
dependencies = [
"cfg-if",
"crunchy",
+ "num-traits",
]
[[package]]
@@ -5091,6 +5495,70 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+[[package]]
+name = "lexical-core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-integer"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
[[package]]
name = "libc"
version = "0.2.159"
@@ -5104,7 +5572,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
dependencies = [
"cfg-if",
- "windows-targets 0.52.6",
+ "windows-targets 0.48.5",
]
[[package]]
@@ -5897,6 +6365,20 @@ dependencies = [
"spin",
]
+[[package]]
+name = "op-alloy-genesis"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e1b8a9b70da0e027242ec1762f0f3a386278b6291d00d12ff5a64929dc19f68"
+dependencies = [
+ "alloy-consensus 0.3.6",
+ "alloy-eips 0.3.6",
+ "alloy-primitives",
+ "alloy-sol-types",
+ "serde",
+ "serde_repr",
+]
+
[[package]]
name = "op-alloy-genesis"
version = "0.3.3"
@@ -5925,6 +6407,23 @@ dependencies = [
"op-alloy-rpc-types 0.3.3",
]
+[[package]]
+name = "op-alloy-protocol"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf300a82ae2d30e2255bfea87a2259da49f63a25a44db561ae64cc9e3084139f"
+dependencies = [
+ "alloy-consensus 0.3.6",
+ "alloy-eips 0.3.6",
+ "alloy-primitives",
+ "alloy-rlp",
+ "alloy-serde 0.3.6",
+ "hashbrown 0.14.5",
+ "op-alloy-consensus 0.2.12",
+ "op-alloy-genesis 0.2.12",
+ "serde",
+]
+
[[package]]
name = "op-alloy-protocol"
version = "0.3.3"
@@ -5938,7 +6437,7 @@ dependencies = [
"alloy-serde 0.4.2",
"derive_more 1.0.0",
"op-alloy-consensus 0.3.3",
- "op-alloy-genesis",
+ "op-alloy-genesis 0.3.3",
"serde",
]
@@ -5977,6 +6476,23 @@ dependencies = [
"serde_json",
]
+[[package]]
+name = "op-alloy-rpc-types-engine"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2947272a81ebf988f4804b6f0f6a7c0b2f6f89a908cb410e36f8f3828f81c778"
+dependencies = [
+ "alloy-eips 0.3.6",
+ "alloy-primitives",
+ "alloy-rpc-types-engine 0.3.6",
+ "alloy-serde 0.3.6",
+ "derive_more 1.0.0",
+ "op-alloy-consensus 0.2.12",
+ "op-alloy-genesis 0.2.12",
+ "op-alloy-protocol 0.2.12",
+ "serde",
+]
+
[[package]]
name = "op-alloy-rpc-types-engine"
version = "0.3.3"
@@ -5987,7 +6503,7 @@ dependencies = [
"alloy-rpc-types-engine 0.4.2",
"alloy-serde 0.4.2",
"derive_more 1.0.0",
- "op-alloy-protocol",
+ "op-alloy-protocol 0.3.3",
"serde",
]
@@ -7838,7 +8354,7 @@ dependencies = [
"futures-util",
"jsonrpsee",
"jsonrpsee-types",
- "op-alloy-rpc-types-engine",
+ "op-alloy-rpc-types-engine 0.3.3",
"reth",
"reth-chainspec",
"reth-db",
@@ -8272,6 +8788,7 @@ dependencies = [
"revm-primitives",
"secp256k1",
"serde_json",
+ "sha2 0.10.8",
]
[[package]]
@@ -8590,7 +9107,7 @@ name = "reth-network-api"
version = "1.0.8"
dependencies = [
"alloy-primitives",
- "alloy-rpc-types-admin",
+ "alloy-rpc-types-admin 0.4.2",
"auto_impl",
"derive_more 1.0.0",
"enr",
@@ -8898,7 +9415,7 @@ dependencies = [
name = "reth-node-telos"
version = "1.0.8"
dependencies = [
- "alloy-consensus 0.3.6",
+ "alloy-consensus 0.4.2",
"alloy-contract",
"alloy-network 0.4.2",
"alloy-primitives",
@@ -8908,18 +9425,18 @@ dependencies = [
"alloy-signer-local",
"alloy-sol-types",
"alloy-transport-http 0.4.2",
- "antelope-client",
+ "antelope-client 0.3.0",
"clap",
"derive_more 1.0.0",
- "env_logger",
+ "env_logger 0.11.5",
"eyre",
- "num-bigint",
"reqwest 0.12.8",
"reth",
"reth-auto-seal-consensus",
"reth-basic-payload-builder",
"reth-beacon-consensus",
"reth-chainspec",
+ "reth-db",
"reth-e2e-test-utils",
"reth-ethereum-engine-primitives",
"reth-ethereum-payload-builder",
@@ -8935,6 +9452,7 @@ dependencies = [
"reth-rpc",
"reth-stages",
"reth-telos-rpc",
+ "reth-telos-rpc-engine-api 1.0.8",
"reth-tracing",
"reth-transaction-pool",
"serde",
@@ -9083,7 +9601,7 @@ dependencies = [
"jsonrpsee",
"jsonrpsee-types",
"op-alloy-consensus 0.3.3",
- "op-alloy-rpc-types-engine",
+ "op-alloy-rpc-types-engine 0.3.3",
"parking_lot 0.12.3",
"reqwest 0.12.8",
"reth",
@@ -9130,7 +9648,7 @@ dependencies = [
"alloy-primitives",
"alloy-rlp",
"alloy-rpc-types-engine 0.4.2",
- "op-alloy-rpc-types-engine",
+ "op-alloy-rpc-types-engine 0.3.3",
"reth-basic-payload-builder",
"reth-chain-state",
"reth-chainspec",
@@ -9242,7 +9760,7 @@ dependencies = [
"alloy-primitives",
"alloy-rpc-types 0.4.2",
"async-trait",
- "op-alloy-rpc-types-engine",
+ "op-alloy-rpc-types-engine 0.3.3",
"pin-project",
"reth-chain-state",
"reth-chainspec",
@@ -9524,12 +10042,12 @@ dependencies = [
"alloy-primitives",
"alloy-rlp",
"alloy-rpc-types 0.4.2",
- "alloy-rpc-types-admin",
+ "alloy-rpc-types-admin 0.4.2",
"alloy-rpc-types-debug",
"alloy-rpc-types-eth 0.4.2",
- "alloy-rpc-types-mev",
- "alloy-rpc-types-trace",
- "alloy-rpc-types-txpool",
+ "alloy-rpc-types-mev 0.4.2",
+ "alloy-rpc-types-trace 0.4.2",
+ "alloy-rpc-types-txpool 0.4.2",
"alloy-serde 0.4.2",
"alloy-signer 0.4.2",
"alloy-signer-local",
@@ -9589,15 +10107,15 @@ dependencies = [
"alloy-json-rpc 0.4.2",
"alloy-primitives",
"alloy-rpc-types 0.4.2",
- "alloy-rpc-types-admin",
- "alloy-rpc-types-anvil",
- "alloy-rpc-types-beacon",
+ "alloy-rpc-types-admin 0.4.2",
+ "alloy-rpc-types-anvil 0.4.2",
+ "alloy-rpc-types-beacon 0.4.2",
"alloy-rpc-types-debug",
"alloy-rpc-types-engine 0.4.2",
"alloy-rpc-types-eth 0.4.2",
- "alloy-rpc-types-mev",
- "alloy-rpc-types-trace",
- "alloy-rpc-types-txpool",
+ "alloy-rpc-types-mev 0.4.2",
+ "alloy-rpc-types-trace 0.4.2",
+ "alloy-rpc-types-txpool 0.4.2",
"alloy-serde 0.4.2",
"jsonrpsee",
"reth-engine-primitives",
@@ -9615,7 +10133,7 @@ dependencies = [
"alloy-primitives",
"alloy-rpc-types 0.4.2",
"alloy-rpc-types-eth 0.4.2",
- "alloy-rpc-types-trace",
+ "alloy-rpc-types-trace 0.4.2",
"futures",
"jsonrpsee",
"jsonrpsee-http-client",
@@ -9636,7 +10154,7 @@ dependencies = [
"alloy-rpc-types 0.4.2",
"alloy-rpc-types-engine 0.4.2",
"alloy-rpc-types-eth 0.4.2",
- "alloy-rpc-types-trace",
+ "alloy-rpc-types-trace 0.4.2",
"alloy-serde 0.4.2",
"clap",
"http 1.1.0",
@@ -9727,7 +10245,7 @@ dependencies = [
"alloy-primitives",
"alloy-rpc-types 0.4.2",
"alloy-rpc-types-eth 0.4.2",
- "alloy-rpc-types-mev",
+ "alloy-rpc-types-mev 0.4.2",
"async-trait",
"auto_impl",
"dyn-clone",
@@ -9830,6 +10348,26 @@ dependencies = [
"strum",
]
+[[package]]
+name = "reth-rpc-types"
+version = "1.0.6"
+source = "git+https://github.com/telosnetwork/telos-reth?branch=telos-main#63d23e00982a0ab7704a6dff97b3f5d355e11d56"
+dependencies = [
+ "alloy-primitives",
+ "alloy-rpc-types 0.3.6",
+ "alloy-rpc-types-admin 0.3.6",
+ "alloy-rpc-types-anvil 0.3.6",
+ "alloy-rpc-types-beacon 0.3.6",
+ "alloy-rpc-types-engine 0.3.6",
+ "alloy-rpc-types-mev 0.3.6",
+ "alloy-rpc-types-trace 0.3.6",
+ "alloy-rpc-types-txpool 0.3.6",
+ "alloy-serde 0.3.6",
+ "jsonrpsee-types",
+ "op-alloy-rpc-types 0.2.12",
+ "op-alloy-rpc-types-engine 0.2.12",
+]
+
[[package]]
name = "reth-rpc-types-compat"
version = "1.0.8"
@@ -10054,6 +10592,7 @@ dependencies = [
"alloy-eips 0.4.2",
"alloy-primitives",
"alloy-rlp",
+ "alloy-rpc-types 0.4.2",
"alloy-serde 0.4.2",
"arbitrary",
"bytes",
@@ -10071,13 +10610,12 @@ dependencies = [
"alloy-network 0.4.2",
"alloy-primitives",
"alloy-rpc-types 0.4.2",
- "antelope-client",
+ "antelope-client 0.3.0",
"async-trait",
"derive_more 1.0.0",
"jsonrpsee-types",
"log",
"parking_lot 0.12.3",
- "regex",
"reth-chainspec",
"reth-evm",
"reth-network-api",
@@ -10118,6 +10656,7 @@ dependencies = [
"revm",
"revm-primitives",
"serde",
+ "sha2 0.10.8",
"tracing",
]
@@ -10342,7 +10881,7 @@ dependencies = [
[[package]]
name = "revm"
version = "14.0.3"
-source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#af62c2673affaa39636744b2383c9e980aed754c"
+source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#1706d6bea3f2771e4603e827994038a8786d1256"
dependencies = [
"auto_impl",
"cfg-if",
@@ -10360,7 +10899,7 @@ source = "git+https://github.com/telosnetwork/telos-evm-inspectors?branch=telos-
dependencies = [
"alloy-primitives",
"alloy-rpc-types-eth 0.4.2",
- "alloy-rpc-types-trace",
+ "alloy-rpc-types-trace 0.4.2",
"alloy-sol-types",
"anstyle",
"boa_engine",
@@ -10374,7 +10913,7 @@ dependencies = [
[[package]]
name = "revm-interpreter"
version = "10.0.3"
-source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#af62c2673affaa39636744b2383c9e980aed754c"
+source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#1706d6bea3f2771e4603e827994038a8786d1256"
dependencies = [
"revm-primitives",
"serde",
@@ -10383,7 +10922,7 @@ dependencies = [
[[package]]
name = "revm-precompile"
version = "11.0.3"
-source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#af62c2673affaa39636744b2383c9e980aed754c"
+source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#1706d6bea3f2771e4603e827994038a8786d1256"
dependencies = [
"aurora-engine-modexp",
"blst",
@@ -10402,7 +10941,7 @@ dependencies = [
[[package]]
name = "revm-primitives"
version = "10.0.0"
-source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#af62c2673affaa39636744b2383c9e980aed754c"
+source = "git+https://github.com/telosnetwork/telos-revm?branch=telos-main#1706d6bea3f2771e4603e827994038a8786d1256"
dependencies = [
"alloy-eip2930",
"alloy-eip7702",
@@ -11539,14 +12078,13 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "telos-consensus-client"
version = "0.1.0"
-source = "git+https://github.com/telosnetwork/telos-consensus-client?rev=9fadee1fd565e3a7ad51c1142e2673df52bd9028#9fadee1fd565e3a7ad51c1142e2673df52bd9028"
+source = "git+https://github.com/telosnetwork/telos-consensus-client?rev=f8ecbe1aeea57911c9fbefdddf49efa92d8472ce#f8ecbe1aeea57911c9fbefdddf49efa92d8472ce"
dependencies = [
"alloy",
"alloy-consensus 0.3.6",
"alloy-rlp",
- "alloy-rpc-types 0.3.6",
- "alloy-rpc-types-engine 0.3.6",
- "antelope-client",
+ "antelope-client 0.2.1",
+ "arrowbatch",
"base64 0.22.1",
"bytes",
"chrono",
@@ -11559,6 +12097,7 @@ dependencies = [
"rand 0.8.5",
"reqwest 0.11.27",
"reth-primitives 1.0.6",
+ "reth-rpc-types",
"rocksdb",
"serde",
"serde_json",
@@ -11576,10 +12115,12 @@ dependencies = [
name = "telos-reth"
version = "1.0.8"
dependencies = [
+ "alloy-primitives",
"clap",
"reth",
"reth-chainspec",
"reth-cli-util",
+ "reth-db",
"reth-node-builder",
"reth-node-telos",
"reth-provider",
@@ -11590,14 +12131,13 @@ dependencies = [
[[package]]
name = "telos-translator-rs"
version = "0.1.0"
-source = "git+https://github.com/telosnetwork/telos-consensus-client?rev=9fadee1fd565e3a7ad51c1142e2673df52bd9028#9fadee1fd565e3a7ad51c1142e2673df52bd9028"
+source = "git+https://github.com/telosnetwork/telos-consensus-client?rev=f8ecbe1aeea57911c9fbefdddf49efa92d8472ce#f8ecbe1aeea57911c9fbefdddf49efa92d8472ce"
dependencies = [
"alloy",
"alloy-consensus 0.3.6",
"alloy-eips 0.3.6",
"alloy-rlp",
- "alloy-rpc-types-engine 0.3.6",
- "antelope-client",
+ "antelope-client 0.2.1",
"bytes",
"clap",
"dashmap 5.5.3",
@@ -11609,6 +12149,7 @@ dependencies = [
"moka",
"num-bigint",
"reth-primitives 1.0.6",
+ "reth-rpc-types",
"reth-telos-rpc-engine-api 1.0.6",
"reth-trie-common 1.0.6",
"rlp",
@@ -11635,6 +12176,15 @@ dependencies = [
"windows-sys 0.59.0",
]
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
[[package]]
name = "termtree"
version = "0.4.1"
@@ -11968,6 +12518,18 @@ dependencies = [
"tokio-util",
]
+[[package]]
+name = "tokio-tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
+dependencies = [
+ "futures-util",
+ "log",
+ "tokio",
+ "tungstenite 0.21.0",
+]
+
[[package]]
name = "tokio-tungstenite"
version = "0.23.1"
@@ -12332,6 +12894,25 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+[[package]]
+name = "tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http 1.1.0",
+ "httparse",
+ "log",
+ "rand 0.8.5",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
[[package]]
name = "tungstenite"
version = "0.23.0"
@@ -12737,7 +13318,7 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
- "windows-sys 0.59.0",
+ "windows-sys 0.48.0",
]
[[package]]
diff --git a/crates/ethereum/evm/Cargo.toml b/crates/ethereum/evm/Cargo.toml
index 413a3e75411c..7a7989f8e05d 100644
--- a/crates/ethereum/evm/Cargo.toml
+++ b/crates/ethereum/evm/Cargo.toml
@@ -20,6 +20,7 @@ reth-revm.workspace = true
reth-ethereum-consensus.workspace = true
reth-prune-types.workspace = true
reth-execution-types.workspace = true
+sha2.workspace = true
# Ethereum
revm-primitives.workspace = true
diff --git a/crates/ethereum/evm/src/execute.rs b/crates/ethereum/evm/src/execute.rs
index 188ca0e21f25..b14a93fc572f 100644
--- a/crates/ethereum/evm/src/execute.rs
+++ b/crates/ethereum/evm/src/execute.rs
@@ -38,6 +38,8 @@ use reth_telos_rpc_engine_api::compare::compare_state_diffs;
use revm_primitives::{Address, Account, AccountInfo, AccountStatus, Bytecode, HashMap, KECCAK_EMPTY};
#[cfg(feature = "telos")]
use alloy_primitives::B256;
+#[cfg(feature = "telos")]
+use sha2::{Sha256, Digest};
/// Provides executors to execute regular ethereum blocks
#[derive(Debug, Clone)]
@@ -192,6 +194,7 @@ where
// execute transactions
let mut cumulative_gas_used = 0;
+ #[cfg(not(feature = "telos"))]
let mut receipts = Vec::with_capacity(block.body.transactions.len());
for (sender, transaction) in block.transactions_with_sender() {
#[cfg(feature = "telos")]
@@ -233,6 +236,7 @@ where
// append gas used
cumulative_gas_used += result.gas_used();
+ #[cfg(not(feature = "telos"))]
// Push transaction changeset and calculate header bloom filter for receipt.
receipts.push(
#[allow(clippy::needless_update)] // side-effect of optimism fields
@@ -259,23 +263,32 @@ where
new_addresses_using_create_iter.next();
}
- #[cfg(feature = "telos")] {
- // Perform state diff comparision
- let revm_state_diffs = evm.db_mut().transition_state.clone().unwrap_or_default().transitions;
- let block_num = block.block.header.number;
- println!(
- "Compare: block {block_num} {}",
- compare_state_diffs(
- &mut evm,
- revm_state_diffs,
- unwrapped_telos_extra_fields.statediffs_account.unwrap_or_default(),
- unwrapped_telos_extra_fields.statediffs_accountstate.unwrap_or_default(),
- unwrapped_telos_extra_fields.new_addresses_using_create.unwrap_or_default(),
- unwrapped_telos_extra_fields.new_addresses_using_openwallet.unwrap_or_default()
- )
- );
+ // #[cfg(feature = "telos")]
+ {
+ // Perform state diff comparision
+ let revm_state_diffs = evm.db_mut().transition_state.clone().unwrap_or_default().transitions;
+ let block_num = block.block.header.number;
+ println!(
+ "Compare: block {block_num} {}",
+ compare_state_diffs(
+ &mut evm,
+ revm_state_diffs,
+ unwrapped_telos_extra_fields.statediffs_account.clone().unwrap_or_default(),
+ unwrapped_telos_extra_fields.statediffs_accountstate.clone().unwrap_or_default(),
+ unwrapped_telos_extra_fields.new_addresses_using_create.clone().unwrap_or_default(),
+ unwrapped_telos_extra_fields.new_addresses_using_openwallet.clone().unwrap_or_default(),
+ false
+ )
+ );
}
+ #[cfg(feature = "telos")]
+ let receipts = if unwrapped_telos_extra_fields.receipts.is_some() {
+ unwrapped_telos_extra_fields.receipts.clone().unwrap()
+ } else {
+ vec![]
+ };
+
let requests = if self.chain_spec.is_prague_active_at_timestamp(block.timestamp) {
// Collect all EIP-6110 deposits
let deposit_requests =
@@ -288,7 +301,44 @@ where
vec![]
};
- Ok(EthExecuteOutput { receipts, requests, gas_used: cumulative_gas_used })
+ // #[cfg(feature = "telos")]
+ // {
+ // let mut addr_to_accstate: HashMap
> = HashMap::new();
+
+ // for sdiff_accstate in unwrapped_telos_extra_fields.clone().statediffs_accountstate.unwrap_or(vec![]) {
+ // if !addr_to_accstate.contains_key(&sdiff_accstate.address) {
+ // addr_to_accstate.insert(sdiff_accstate.address, HashMap::new());
+ // }
+ // let mut acc_storage = addr_to_accstate.get_mut(&sdiff_accstate.address).unwrap();
+ // acc_storage.insert(sdiff_accstate.key, EvmStorageSlot { original_value: Default::default(), present_value: sdiff_accstate.value, is_cold: false });
+ // }
+
+ // let mut state: HashMap = HashMap::new();
+
+ // for sdiff_acc in unwrapped_telos_extra_fields.clone().statediffs_account.unwrap_or(vec![]) {
+ // state.insert(
+ // sdiff_acc.address,
+ // Account {
+ // info: AccountInfo {
+ // balance: sdiff_acc.balance,
+ // nonce: sdiff_acc.nonce,
+ // code_hash: B256::from(Sha256::digest(sdiff_acc.code.as_ref()).as_ref()),
+ // code: Some(Bytecode::LegacyRaw(sdiff_acc.code)),
+ // },
+ // storage: addr_to_accstate.get(&sdiff_acc.address).unwrap_or(&HashMap::new()).clone(),
+ // status: AccountStatus::Touched | AccountStatus::LoadedAsNotExisting,
+ // }
+ // );
+ // }
+
+ // evm.db_mut().commit(state);
+ // }
+
+ Ok(EthExecuteOutput {
+ receipts,
+ requests,
+ gas_used: cumulative_gas_used
+ })
}
}
@@ -366,7 +416,12 @@ where
let env = self.evm_env_for_block(&block.header, total_difficulty);
let output = {
let evm = self.executor.evm_config.evm_with_env(&mut self.state, env);
- self.executor.execute_state_transitions(block, evm, #[cfg(feature = "telos")] telos_extra_fields)
+ self.executor.execute_state_transitions(
+ block,
+ evm,
+ #[cfg(feature = "telos")]
+ telos_extra_fields
+ )
}?;
// 3. apply post execution changes
diff --git a/crates/rpc/rpc-eth-api/src/core.rs b/crates/rpc/rpc-eth-api/src/core.rs
index 20edf96d810d..fcad61a6f62a 100644
--- a/crates/rpc/rpc-eth-api/src/core.rs
+++ b/crates/rpc/rpc-eth-api/src/core.rs
@@ -425,6 +425,11 @@ where
number: BlockNumberOrTag,
full: bool,
) -> RpcResult