Skip to content

Commit

Permalink
feat(fee): add the trait interface for L1 gas price provider
Browse files Browse the repository at this point in the history
  • Loading branch information
guy-starkware committed Jan 27, 2025
1 parent f9de65f commit 14e5338
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
36 changes: 36 additions & 0 deletions crates/starknet_l1_provider/src/l1_gas_price_provider.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
use std::collections::BTreeMap;

use papyrus_config::dumping::{ser_param, SerializeConfig};
use papyrus_config::{ParamPath, ParamPrivacyInput, SerializedParam};
use serde::{Deserialize, Serialize};
use starknet_api::block::{BlockNumber, BlockTimestamp};
use thiserror::Error;
use validator::Validate;

// TODO(guyn): both these constants need to go into VersionedConstants.
pub const MEAN_NUMBER_OF_BLOCKS: u64 = 300;
pub const LAG_MARGIN_SECONDS: u32 = 60;

// TODO(guyn, Gilda): consider moving this to starknet_l1_provider_types/lib.rs?
// This is an interface that allows sharing the provider with the scraper across threads.
pub trait L1GasPriceProviderClient: Send + Sync {
fn add_price_info(
&self,
height: BlockNumber,
timestamp: BlockTimestamp,
gas_price: u128,
data_gas_price: u128,
) -> Result<(), L1GasPriceProviderError>;

fn get_price_info(&self, timestamp: BlockTimestamp) -> Result<u64, L1GasPriceProviderError>;
}

#[derive(Clone, Debug, Error)]
pub enum L1GasPriceProviderError {
#[error("Failed to add price info: {0}")]
AddPriceInfoError(String),
#[error("Failed to get price info: {0}")]
GetPriceInfoError(String),
}

// TODO(guyn): add the concrete implementation of the gas price provider client here.
1 change: 1 addition & 0 deletions crates/starknet_l1_provider/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
pub mod bootstrapper;
pub mod communication;
pub mod l1_gas_price_provider;
pub mod l1_provider;
pub mod l1_scraper;
pub mod soft_delete_index_map;
Expand Down

0 comments on commit 14e5338

Please sign in to comment.