Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
392 changes: 344 additions & 48 deletions gas-oracle/app/Cargo.lock

Large diffs are not rendered by default.

6 changes: 1 addition & 5 deletions gas-oracle/app/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,4 @@ reqwest = { version = "0.11", default-features = false, features = ["blocking",
thiserror = "1.0"
eyre = "0.6"
zstd = { git = "https://github.com/scroll-tech/zstd-rs", branch = "hack/mul-block", features = ["experimental"]}
rsa = { version = "0.9.6", features = ["sha2"] }
sha2 = "0.10.8"
uuid = { version = "1.3", features = ["v4"] }
base64 = "0.22.1"
pem = "1.1.0"
remote-signer-client = { git = "https://github.com/morph-l2/remote-signer-client", package = "remote-signer-client" }
43 changes: 16 additions & 27 deletions gas-oracle/app/src/da_scalar/l1_scalar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ use crate::{
gas_price_oracle_abi::GasPriceOracle,
rollup_abi::{CommitBatchCall, Rollup},
},
external_sign::ExternalSign,
metrics::ORACLE_SERVICE_METRICS,
signer::send_transaction,
};
use remote_signer_client::SignerClient;
use ethers::{abi::AbiDecode, prelude::*, utils::hex};
use serde_json::Value;

Expand All @@ -30,7 +30,7 @@ pub struct ScalarUpdater {
l1_provider: Provider<Http>, // L1 provider for HTTP connections
l2_provider: Provider<Http>,
l2_oracle: GasPriceOracle<SignerMiddleware<Provider<Http>, LocalWallet>>, // L2 gasPrice Oracle
ext_signer: Option<ExternalSign>,
ext_signer: Option<SignerClient>,
l1_rollup: Rollup<Provider<Http>>, // Rollup object for L1
beacon_node: BeaconNode, // Beacon node for blockchain
gas_threshold: u64,
Expand All @@ -47,7 +47,7 @@ impl ScalarUpdater {
l1_provider: Provider<Http>,
l2_provider: Provider<Http>,
l2_oracle: GasPriceOracle<SignerMiddleware<Provider<Http>, LocalWallet>>,
ext_signer: Option<ExternalSign>,
ext_signer: Option<SignerClient>,
l1_rollup: Rollup<Provider<Http>>,
l1_beacon_rpc: String,
gas_threshold: u64,
Expand Down Expand Up @@ -133,33 +133,23 @@ impl ScalarUpdater {
"commit_scalar",
) {
// Update commit_scalar
let calldata = self.l2_oracle.set_commit_scalar(U256::from(commit_scalar)).calldata();
let tx_hash = send_transaction(
self.l2_oracle.address(),
calldata,
&client,
&self.ext_signer,
&self.l2_provider,
)
.await
.map_err(|e| {
ScalarError::Error(anyhow!(format!("set_commit_scalar error: {:#?}", e)))
})?;
let call = self.l2_oracle.set_commit_scalar(U256::from(commit_scalar));
let tx_hash = send_transaction(call, &client, &self.ext_signer, &self.l2_provider)
.await
.map_err(|e| {
ScalarError::Error(anyhow!(format!("set_commit_scalar error: {:#?}", e)))
})?;
log::info!("set_commit_scalar success, tx_hash: {:#?}", tx_hash);
}

if self.check_threshold_reached(blob_scalar, current_blob_scalar.as_u64(), "blob_scalar") {
// Update blob_scalar
let calldata = self.l2_oracle.set_blob_scalar(U256::from(blob_scalar)).calldata();
let tx_hash = send_transaction(
self.l2_oracle.address(),
calldata,
&client,
&self.ext_signer,
&self.l2_provider,
)
.await
.map_err(|e| ScalarError::Error(anyhow!(format!("set_blob_scalar error: {:#?}", e))))?;
let call = self.l2_oracle.set_blob_scalar(U256::from(blob_scalar));
let tx_hash = send_transaction(call, &client, &self.ext_signer, &self.l2_provider)
.await
.map_err(|e| {
ScalarError::Error(anyhow!(format!("set_blob_scalar error: {:#?}", e)))
})?;
log::info!("set_blob_scalar success, tx_hash: {:#?}", tx_hash);
}

Expand Down Expand Up @@ -474,8 +464,7 @@ mod tests {

let l2_oracle_contract = GasPriceOracle::new(l2_oracle_address, l2_signer);

let ext_signer: ExternalSign =
ExternalSign::new("appid", "privkey_pem", "address", "chain", "url").unwrap();
let ext_signer = SignerClient::new("appid", "privkey_pem", "address", "chain", "url").unwrap();
let mut overhead: ScalarUpdater = ScalarUpdater::new(
l1_provider,
l2_provider,
Expand Down
224 changes: 0 additions & 224 deletions gas-oracle/app/src/external_sign.rs

This file was deleted.

9 changes: 4 additions & 5 deletions gas-oracle/app/src/gas_price_oracle.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use crate::{
abi::{gas_price_oracle_abi::GasPriceOracle, rollup_abi::Rollup},
da_scalar::l1_scalar::ScalarUpdater,
external_sign::ExternalSign,
l1_base_fee::BaseFeeUpdater,
read_parse_env,
};
use remote_signer_client::SignerClient;
use ethers::{
prelude::*,
providers::{Http, Provider},
Expand Down Expand Up @@ -182,21 +182,20 @@ async fn prepare_updater(
let use_ext_sign: bool = read_env_var("GAS_ORACLE_EXTERNAL_SIGN", false);

let ext_signer = if use_ext_sign {
log::info!("Gas Oracle will use external signer");
log::info!("Gas Oracle will use remote signer");
let gas_oracle_appid: String = read_parse_env("GAS_ORACLE_EXTERNAL_SIGN_APPID");
let privkey_pem: String = read_parse_env("GAS_ORACLE_EXTERNAL_SIGN_RSA_PRIV");
let sign_address: String = read_parse_env("GAS_ORACLE_EXTERNAL_SIGN_ADDRESS");
let sign_chain: String = read_parse_env("GAS_ORACLE_EXTERNAL_SIGN_CHAIN");
let sign_url: String = read_parse_env("GAS_ORACLE_EXTERNAL_SIGN_URL");
let signer: ExternalSign = ExternalSign::new(
let signer = SignerClient::new(
&gas_oracle_appid,
&privkey_pem,
&sign_address,
&sign_chain,
&sign_url,
)
.map_err(|e| anyhow!(format!("Prepare ExternalSign err: {:?}", e)))
.unwrap();
.map_err(|e| anyhow!("Prepare SignerClient err: {:?}", e))?;
Some(signer)
} else {
log::info!("Gas Oracle will use local signer");
Expand Down
Loading
Loading