From f40033a25950bb516b9975e01a35c9d09308c410 Mon Sep 17 00:00:00 2001 From: Luis Herasme Date: Mon, 22 Jul 2024 23:01:29 -0400 Subject: [PATCH] chore: Remove network from cache layer --- Cargo.lock | 2 ++ ghost-crab/src/cache/cache_layer.rs | 21 ++++----------------- ghost-crab/src/cache/manager.rs | 2 +- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 61e5f87..1f3a202 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,6 +55,7 @@ dependencies = [ "alloy-core", "alloy-eips", "alloy-genesis", + "alloy-json-rpc", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types", @@ -1293,6 +1294,7 @@ dependencies = [ "serde", "serde_json", "tokio", + "tower", ] [[package]] diff --git a/ghost-crab/src/cache/cache_layer.rs b/ghost-crab/src/cache/cache_layer.rs index f4fcf56..8a71f5d 100644 --- a/ghost-crab/src/cache/cache_layer.rs +++ b/ghost-crab/src/cache/cache_layer.rs @@ -2,7 +2,6 @@ use alloy::rpc::json_rpc::{ Id, RequestPacket, Response, ResponsePacket, ResponsePayload, SerializedRequest, }; use alloy::transports::{RpcError, TransportError, TransportErrorKind}; -use core::str; use rocksdb::DB; use serde_json::value::RawValue; use std::{ @@ -15,13 +14,12 @@ use std::{ use tower::{Layer, Service}; pub struct CacheLayer { - network: String, db: Arc, } impl CacheLayer { - pub fn new(network: &str, db: DB) -> Self { - Self { network: network.into(), db: Arc::new(db) } + pub fn new(db: DB) -> Self { + Self { db: Arc::new(db) } } } @@ -29,28 +27,17 @@ impl Layer for CacheLayer { type Service = CacheService; fn layer(&self, inner: S) -> Self::Service { - CacheService { inner, network: self.network.clone(), db: Arc::clone(&self.db) } + CacheService { inner, db: Arc::clone(&self.db) } } } #[derive(Debug, Clone)] pub struct CacheService { inner: S, - network: String, db: Arc, } impl CacheService { - fn cache_get(&self, key: &str) -> Option> { - let key = self.network.clone() + key; - - if let Ok(result) = self.db.get(key) { - return result; - } - - None - } - fn convert_to_response( &self, raw_response: Vec, @@ -128,7 +115,7 @@ where let id_new = "\"id\":0"; let raw_request = raw_request.replace(&id_old, id_new); - if let Some(raw_data) = self.cache_get(&raw_request) { + if let Ok(Some(raw_data)) = self.db.get(&raw_request) { return self.convert_to_response(raw_data); } diff --git a/ghost-crab/src/cache/manager.rs b/ghost-crab/src/cache/manager.rs index d66a654..7d7ad76 100644 --- a/ghost-crab/src/cache/manager.rs +++ b/ghost-crab/src/cache/manager.rs @@ -25,7 +25,7 @@ impl RPCManager { } let cache = load_cache(&network).unwrap(); - let cache_layer = CacheLayer::new(&network, cache); + let cache_layer = CacheLayer::new(cache); let client = ClientBuilder::default().layer(cache_layer).http(rpc_url.parse().unwrap()); let provider = ProviderBuilder::new().on_client(client);