Skip to content

Commit

Permalink
merge latest p2
Browse files Browse the repository at this point in the history
  • Loading branch information
juan518munoz committed Jan 30, 2025
1 parent 611f33d commit f119308
Show file tree
Hide file tree
Showing 7 changed files with 57 additions and 1,525 deletions.
29 changes: 14 additions & 15 deletions core/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ tonic = { version = "0.11.0", default-features = false }
pbjson-types = "0.6.0"

# Eigen
eigenda-client-rs = {git = "https://github.com/lambdaclass/eigenda-client-rs", branch = "client-implementation", package = "eigen-client"}
eigenda-client-rs = {git = "https://github.com/lambdaclass/eigenda-client-rs", branch = "m0-implementation", package = "eigen-client"}
tokio-stream = "0.1.16"
rust-kzg-bn254 = "0.2.1"
ark-bn254 = "0.5.0"
Expand Down
48 changes: 16 additions & 32 deletions core/node/da_clients/src/eigen/client.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
use std::{error::Error, str::FromStr};
use std::{str::FromStr, sync::Arc};

use eigenda_client_rs::{client::GetBlobData, EigenClient};
use subxt_signer::ExposeSecret;
use url::Url;
use zksync_config::{configs::da_client::eigen::EigenSecrets, EigenConfig};
use zksync_da_client::{
types::{DAError, DispatchResponse, InclusionData},
DataAvailabilityClient,
};
use zksync_dal::{ConnectionPool, Core, CoreDal};

use crate::utils::to_retriable_da_error;

Expand All @@ -16,59 +16,43 @@ use crate::utils::to_retriable_da_error;
pub struct EigenDAClient {
client: EigenClient,
}

impl EigenDAClient {
pub async fn new(
config: EigenConfig,
secrets: EigenSecrets,
pool: ConnectionPool<Core>,
// get_blob_data: Box<dyn GetBlobData>, // TODO: repalce `pool` above for this
get_blob_data: Arc<dyn GetBlobData>,
) -> anyhow::Result<Self> {
let eigenda_eth_rpc = match config.eigenda_eth_rpc {
Some(url) => {
let url = Url::from_str(url.expose_str())
.map_err(|_| anyhow::anyhow!("Invalid eth rpc url"))?;
Some(eigenda_client_rs::config::SecretUrl::new(url))
}
None => None,
};
let eigen_config = eigenda_client_rs::config::EigenConfig {
disperser_rpc: config.disperser_rpc,
settlement_layer_confirmation_depth: config.settlement_layer_confirmation_depth,
eigenda_eth_rpc: "TODO: FIX".to_string(),
eigenda_svc_manager_address: "TODO: FIX".to_string(), // config.eigenda_svc_manager_address,
eigenda_eth_rpc,
eigenda_svc_manager_address: config.eigenda_svc_manager_address,
wait_for_finalization: config.wait_for_finalization,
authenticated: config.authenticated,
points_dir: config.points_dir,
g1_url: config.g1_url,
g2_url: config.g2_url,
};
let private_key =
eigenda_client_rs::config::PrivateKey::from_str(secrets.private_key.0.expose_secret())
.map_err(|_| anyhow::anyhow!("Invalid private key"))?;
let eigen_secrets = eigenda_client_rs::config::EigenSecrets { private_key };
let get_blob_data = GetBlobFromDB { pool };
let client = EigenClient::new(eigen_config, eigen_secrets, Box::new(get_blob_data))
let client = EigenClient::new(eigen_config, eigen_secrets, get_blob_data)
.await
.map_err(|e| anyhow::anyhow!("Eigen client Error: {:?}", e))?;
Ok(Self { client })
}
}

#[derive(Debug, Clone)]
pub struct GetBlobFromDB {
pool: ConnectionPool<Core>,
}

#[async_trait::async_trait]
impl GetBlobData for GetBlobFromDB {
async fn get_blob_data(
&self,
input: &str,
) -> Result<Option<Vec<u8>>, Box<dyn Error + Send + Sync>> {
let mut conn = self.pool.connection_tagged("eigen_client").await?;
let batch = conn
.data_availability_dal()
.get_blob_data_by_blob_id(input)
.await?;
Ok(batch.map(|b| b.pubdata))
}

fn clone_boxed(&self) -> Box<dyn GetBlobData> {
Box::new(self.clone())
}
}

#[async_trait::async_trait]
impl DataAvailabilityClient for EigenDAClient {
async fn dispatch_blob(
Expand Down
111 changes: 0 additions & 111 deletions core/node/da_clients/src/eigen/errors.rs

This file was deleted.

Loading

0 comments on commit f119308

Please sign in to comment.