Skip to content

Commit e367fc3

Browse files
chore: update alloy version to 9.0 (#485)
1 parent 5c61864 commit e367fc3

File tree

14 files changed

+651
-757
lines changed

14 files changed

+651
-757
lines changed

Cargo.lock

Lines changed: 469 additions & 432 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ default-members = ["cli"]
2323

2424
[workspace.dependencies]
2525
# consensus
26-
ssz_types = "0.7.0"
27-
ethereum_ssz_derive = "0.6.0"
28-
ethereum_ssz = "0.6.0"
29-
tree_hash_derive = "0.7.0"
30-
tree_hash = "0.7.0"
26+
ssz_types = "0.10"
27+
ethereum_ssz_derive = "0.8"
28+
ethereum_ssz = "0.8"
29+
tree_hash_derive = "0.9.0"
30+
tree_hash = "0.9.0"
3131
sha2 = "0.9"
3232
bls12_381 = { version = "0.8.0", features = ["experimental"] }
3333

3434
# execution
35-
alloy = { version = "0.2.1", features = [
35+
alloy = { version = "0.9.1", features = [
3636
"rpc-types",
3737
"consensus",
3838
"rlp",
@@ -44,7 +44,8 @@ alloy = { version = "0.2.1", features = [
4444
"json-rpc",
4545
"signers",
4646
]}
47-
revm = { version = "12.1.0", default-features = false, features = [
47+
op-alloy-rpc-types = "0.9.0"
48+
revm = { version = "18.0.0", default-features = false, features = [
4849
"std",
4950
"serde",
5051
"optional_block_gas_limit",
@@ -92,7 +93,7 @@ dotenv = "0.15.0"
9293
serde = { version = "1.0.154", features = ["derive"] }
9394

9495
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
95-
alloy = { version = "0.2.1", features = ["full"] }
96+
alloy = { version = "0.9.1", features = ["full"] }
9697
tokio = { version = "1", features = ["full"] }
9798
eyre = "0.6.8"
9899
dirs = "5.0.1"

core/src/execution/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ impl<N: NetworkSpec, R: ExecutionRpc<N>> ExecutionClient<N, R> {
8484
let mut slot_map = HashMap::new();
8585

8686
for storage_proof in proof.storage_proof {
87-
let key = storage_proof.key.0;
87+
let key = storage_proof.key.as_b256();
8888
let key_hash = keccak256(key);
8989
let value = encode(storage_proof.value);
9090

core/src/execution/rpc/http_rpc.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,10 @@ impl<N: NetworkSpec> ExecutionRpc<N> for HttpRpc<N> {
127127
BlockTag::Number(num) => BlockNumberOrTag::Number(num),
128128
};
129129

130+
let block_id = BlockId::from(block);
130131
let receipts = self
131132
.provider
132-
.get_block_receipts(block)
133+
.get_block_receipts(block_id)
133134
.await
134135
.map_err(|e| RpcError::new("get_block_receipts", e))?;
135136

core/src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ impl<T: TransactionResponse> Block<T> {
5858
blob_gas_used: self.blob_gas_used.map(|v| v.to()),
5959
excess_blob_gas: self.excess_blob_gas.map(|v| v.to()),
6060
parent_beacon_block_root: self.parent_beacon_block_root,
61-
requests_root: None,
6261
extra_data: self.extra_data.clone(),
62+
requests_hash: None,
6363
};
6464

6565
header.hash_slow() == self.hash

ethereum/consensus-core/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ name = "helios-consensus-core"
44
edition = "2021"
55

66
[dependencies]
7-
alloy = { version = "0.2.1", features = [
7+
alloy = { version = "0.9.1", features = [
88
"consensus",
99
"rpc-types",
1010
"ssz",
1111
"rlp",
1212
"k256",
1313
] }
14-
alloy-rlp = "0.3.0"
14+
alloy-rlp = "0.3.10"
1515
bls12_381.workspace = true
1616
ssz_types.workspace = true
1717
ethereum_ssz_derive.workspace = true

ethereum/src/consensus.rs

Lines changed: 7 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::sync::Arc;
55
use alloy::consensus::{Transaction as TxTrait, TxEnvelope};
66
use alloy::primitives::{b256, fixed_bytes, B256, U256, U64};
77
use alloy::rlp::{encode, Decodable};
8-
use alloy::rpc::types::{Parity, Signature, Transaction};
8+
use alloy::rpc::types::Transaction;
99
use chrono::Duration;
1010
use eyre::eyre;
1111
use eyre::Result;
@@ -590,89 +590,16 @@ fn payload_to_block<S: ConsensusSpec>(value: ExecutionPayload<S>) -> Block<Trans
590590
let mut tx_bytes_slice = tx_bytes.as_slice();
591591
let tx_envelope = TxEnvelope::decode(&mut tx_bytes_slice).unwrap();
592592

593-
let mut tx = Transaction {
594-
hash: *tx_envelope.tx_hash(),
595-
nonce: tx_envelope.nonce(),
593+
let base_fee = Some(value.base_fee_per_gas().to());
594+
595+
Transaction {
596596
block_hash: Some(*value.block_hash()),
597597
block_number: Some(*value.block_number()),
598598
transaction_index: Some(i as u64),
599-
to: tx_envelope.to().to().cloned(),
600-
value: tx_envelope.value(),
601-
gas_price: tx_envelope.gas_price(),
602-
gas: tx_envelope.gas_limit(),
603-
input: tx_envelope.input().to_vec().into(),
604-
chain_id: tx_envelope.chain_id(),
605-
transaction_type: Some(tx_envelope.tx_type().into()),
606-
..Default::default()
607-
};
608-
609-
match tx_envelope {
610-
TxEnvelope::Legacy(inner) => {
611-
tx.from = inner.recover_signer().unwrap();
612-
tx.signature = Some(Signature {
613-
r: inner.signature().r(),
614-
s: inner.signature().s(),
615-
v: U256::from(inner.signature().v().to_u64()),
616-
y_parity: None,
617-
});
618-
}
619-
TxEnvelope::Eip2930(inner) => {
620-
tx.from = inner.recover_signer().unwrap();
621-
tx.signature = Some(Signature {
622-
r: inner.signature().r(),
623-
s: inner.signature().s(),
624-
v: U256::from(inner.signature().v().to_u64()),
625-
y_parity: Some(Parity(inner.signature().v().to_u64() == 1)),
626-
});
627-
tx.access_list = Some(inner.tx().access_list.clone());
628-
}
629-
TxEnvelope::Eip1559(inner) => {
630-
tx.from = inner.recover_signer().unwrap();
631-
tx.signature = Some(Signature {
632-
r: inner.signature().r(),
633-
s: inner.signature().s(),
634-
v: U256::from(inner.signature().v().to_u64()),
635-
y_parity: Some(Parity(inner.signature().v().to_u64() == 1)),
636-
});
637-
638-
let tx_inner = inner.tx();
639-
tx.access_list = Some(tx_inner.access_list.clone());
640-
tx.max_fee_per_gas = Some(tx_inner.max_fee_per_gas);
641-
tx.max_priority_fee_per_gas = Some(tx_inner.max_priority_fee_per_gas);
642-
643-
tx.gas_price = Some(gas_price(
644-
tx_inner.max_fee_per_gas,
645-
tx_inner.max_priority_fee_per_gas,
646-
value.base_fee_per_gas().to(),
647-
));
648-
}
649-
TxEnvelope::Eip4844(inner) => {
650-
tx.from = inner.recover_signer().unwrap();
651-
tx.signature = Some(Signature {
652-
r: inner.signature().r(),
653-
s: inner.signature().s(),
654-
v: U256::from(inner.signature().v().to_u64()),
655-
y_parity: Some(Parity(inner.signature().v().to_u64() == 1)),
656-
});
657-
658-
let tx_inner = inner.tx().tx();
659-
tx.access_list = Some(tx_inner.access_list.clone());
660-
tx.max_fee_per_gas = Some(tx_inner.max_fee_per_gas);
661-
tx.max_priority_fee_per_gas = Some(tx_inner.max_priority_fee_per_gas);
662-
tx.max_fee_per_blob_gas = Some(tx_inner.max_fee_per_blob_gas);
663-
tx.gas_price = Some(tx_inner.max_fee_per_gas);
664-
tx.blob_versioned_hashes = Some(tx_inner.blob_versioned_hashes.clone());
665-
666-
tx.gas_price = Some(gas_price(
667-
tx_inner.max_fee_per_gas,
668-
tx_inner.max_priority_fee_per_gas,
669-
value.base_fee_per_gas().to(),
670-
));
671-
}
672-
_ => todo!(),
599+
from: tx_envelope.recover_signer().unwrap().clone(),
600+
effective_gas_price: Some(tx_envelope.effective_gas_price(base_fee)),
601+
inner: tx_envelope,
673602
}
674-
675-
tx
676603
})
677604
.collect::<Vec<Transaction>>();
678605

@@ -711,10 +638,6 @@ fn payload_to_block<S: ConsensusSpec>(value: ExecutionPayload<S>) -> Block<Trans
711638
}
712639
}
713640

714-
fn gas_price(max_fee: u128, max_prio_fee: u128, base_fee: u128) -> u128 {
715-
u128::min(max_fee, max_prio_fee + base_fee)
716-
}
717-
718641
#[cfg(test)]
719642
mod tests {
720643
use std::sync::Arc;

ethereum/src/spec.rs

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
use alloy::{
2-
consensus::{
3-
BlobTransactionSidecar, Receipt, ReceiptWithBloom, TxReceipt, TxType, TypedTransaction,
4-
},
2+
consensus::{Receipt, ReceiptWithBloom, TxReceipt, TxType, TypedTransaction},
53
network::{BuildResult, Network, NetworkWallet, TransactionBuilder, TransactionBuilderError},
64
primitives::{Address, Bytes, ChainId, TxKind, U256},
75
rpc::types::{AccessList, Log, TransactionRequest},
@@ -25,7 +23,7 @@ impl NetworkSpec for Ethereum {
2523

2624
let consensus_receipt = Receipt {
2725
cumulative_gas_used: receipt.cumulative_gas_used(),
28-
status: *receipt.status_or_post_state(),
26+
status: receipt.status_or_post_state(),
2927
logs,
3028
};
3129

@@ -112,6 +110,7 @@ impl Network for Ethereum {
112110
type TransactionResponse = alloy::rpc::types::Transaction;
113111
type ReceiptResponse = alloy::rpc::types::TransactionReceipt;
114112
type HeaderResponse = alloy::rpc::types::Header;
113+
type BlockResponse = alloy::rpc::types::Block<Self::TransactionResponse, Self::HeaderResponse>;
115114
}
116115

117116
impl TransactionBuilder<Ethereum> for TransactionRequest {
@@ -191,19 +190,11 @@ impl TransactionBuilder<Ethereum> for TransactionRequest {
191190
self.max_priority_fee_per_gas = Some(max_priority_fee_per_gas);
192191
}
193192

194-
fn max_fee_per_blob_gas(&self) -> Option<u128> {
195-
self.max_fee_per_blob_gas
196-
}
197-
198-
fn set_max_fee_per_blob_gas(&mut self, max_fee_per_blob_gas: u128) {
199-
self.max_fee_per_blob_gas = Some(max_fee_per_blob_gas)
200-
}
201-
202-
fn gas_limit(&self) -> Option<u128> {
193+
fn gas_limit(&self) -> Option<u64> {
203194
self.gas
204195
}
205196

206-
fn set_gas_limit(&mut self, gas_limit: u128) {
197+
fn set_gas_limit(&mut self, gas_limit: u64) {
207198
self.gas = Some(gas_limit);
208199
}
209200

@@ -215,21 +206,13 @@ impl TransactionBuilder<Ethereum> for TransactionRequest {
215206
self.access_list = Some(access_list);
216207
}
217208

218-
fn blob_sidecar(&self) -> Option<&BlobTransactionSidecar> {
219-
self.sidecar.as_ref()
220-
}
221-
222-
fn set_blob_sidecar(&mut self, sidecar: BlobTransactionSidecar) {
223-
self.sidecar = Some(sidecar);
224-
self.populate_blob_hashes();
225-
}
226-
227209
fn complete_type(&self, ty: TxType) -> Result<(), Vec<&'static str>> {
228210
match ty {
229211
TxType::Legacy => self.complete_legacy(),
230212
TxType::Eip2930 => self.complete_2930(),
231213
TxType::Eip1559 => self.complete_1559(),
232214
TxType::Eip4844 => self.complete_4844(),
215+
TxType::Eip7702 => self.complete_7702(),
233216
}
234217
}
235218

helios-ts/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ console_error_panic_hook = "0.1.7"
1717

1818
eyre.workspace = true
1919
alloy.workspace = true
20+
op-alloy-rpc-types.workspace = true
2021

2122
hex = "0.4.3"
2223
serde = { version = "1.0.143", features = ["derive"] }

helios-ts/src/opstack.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ extern crate web_sys;
44
use std::str::FromStr;
55

66
use alloy::primitives::{Address, B256, U256};
7-
use alloy::rpc::types::{Filter, TransactionRequest};
7+
use alloy::rpc::types::Filter;
88
use wasm_bindgen::prelude::*;
99

10+
use op_alloy_rpc_types::OpTransactionRequest;
11+
1012
use helios_core::types::BlockTag;
1113
use helios_opstack::config::{Config, Network, NetworkConfig};
1214
use helios_opstack::OpStackClientBuilder;
@@ -175,15 +177,15 @@ impl OpStackClient {
175177

176178
#[wasm_bindgen]
177179
pub async fn call(&self, opts: JsValue, block: JsValue) -> Result<String, JsError> {
178-
let opts: TransactionRequest = serde_wasm_bindgen::from_value(opts)?;
180+
let opts: OpTransactionRequest = serde_wasm_bindgen::from_value(opts)?;
179181
let block: BlockTag = serde_wasm_bindgen::from_value(block)?;
180182
let res = map_err(self.inner.call(&opts, block).await)?;
181183
Ok(format!("0x{}", hex::encode(res)))
182184
}
183185

184186
#[wasm_bindgen]
185187
pub async fn estimate_gas(&self, opts: JsValue) -> Result<u32, JsError> {
186-
let opts: TransactionRequest = serde_wasm_bindgen::from_value(opts)?;
188+
let opts: OpTransactionRequest = serde_wasm_bindgen::from_value(opts)?;
187189
Ok(map_err(self.inner.estimate_gas(&opts).await)? as u32)
188190
}
189191

0 commit comments

Comments
 (0)