Skip to content

Commit b520b74

Browse files
koushirotgmichel
andauthored
Handle u64 conversion (#1091) (#1124)
* Handle `u64` conversion * suggestion switch to saturated conversion Co-authored-by: tgmichel <telmo@purestake.com>
1 parent 22277c2 commit b520b74

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

client/rpc/src/eth/cache/mod.rs

+12-11
Original file line numberDiff line numberDiff line change
@@ -338,19 +338,19 @@ where
338338
let base_fee = client.runtime_api().gas_price(hash).unwrap_or_default();
339339
let receipts = handler.current_receipts(hash);
340340
let mut result = FeeHistoryCacheItem {
341-
base_fee: if base_fee > U256::from(u64::MAX) { u64::MAX } else { base_fee.low_u64() },
341+
base_fee: UniqueSaturatedInto::<u64>::unique_saturated_into(base_fee),
342342
gas_used_ratio: 0f64,
343343
rewards: Vec::new(),
344344
};
345345
if let (Some(block), Some(receipts)) = (block, receipts) {
346-
block_number = Some(block.header.number.as_u64());
347-
let gas_used = block.header.gas_used.as_u64() as f64;
348-
let gas_limit = block.header.gas_limit.as_u64() as f64;
346+
block_number = Some(UniqueSaturatedInto::<u64>::unique_saturated_into(block.header.number));
347+
let gas_used = UniqueSaturatedInto::<u64>::unique_saturated_into(block.header.gas_used) as f64;
348+
let gas_limit = UniqueSaturatedInto::<u64>::unique_saturated_into(block.header.gas_limit) as f64;
349349
result.gas_used_ratio = gas_used / gas_limit;
350350

351351
let mut previous_cumulative_gas = U256::zero();
352352
let used_gas = |current: U256, previous: &mut U256| -> u64 {
353-
let r = current.saturating_sub(*previous).as_u64();
353+
let r = UniqueSaturatedInto::<u64>::unique_saturated_into(current.saturating_sub(*previous));
354354
*previous = current;
355355
r
356356
};
@@ -364,15 +364,16 @@ where
364364
},
365365
effective_reward: match block.transactions.get(i) {
366366
Some(ethereum::TransactionV2::Legacy(t)) => {
367-
t.gas_price.saturating_sub(base_fee).as_u64()
367+
UniqueSaturatedInto::<u64>::unique_saturated_into(t.gas_price.saturating_sub(base_fee))
368368
}
369369
Some(ethereum::TransactionV2::EIP2930(t)) => {
370-
t.gas_price.saturating_sub(base_fee).as_u64()
370+
UniqueSaturatedInto::<u64>::unique_saturated_into(t.gas_price.saturating_sub(base_fee))
371371
}
372-
Some(ethereum::TransactionV2::EIP1559(t)) => t
373-
.max_priority_fee_per_gas
374-
.min(t.max_fee_per_gas.saturating_sub(base_fee))
375-
.as_u64(),
372+
Some(ethereum::TransactionV2::EIP1559(t)) => UniqueSaturatedInto::<u64>::unique_saturated_into(
373+
t
374+
.max_priority_fee_per_gas
375+
.min(t.max_fee_per_gas.saturating_sub(base_fee))
376+
),
376377
None => 0,
377378
},
378379
})

client/rpc/src/eth/fee.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ where
150150
.unwrap_or(default_elasticity)
151151
.deconstruct();
152152
let elasticity = elasticity as f64 / 1_000_000f64;
153-
let last_fee_per_gas = last_fee_per_gas.as_u64() as f64;
153+
let last_fee_per_gas =
154+
UniqueSaturatedInto::<u64>::unique_saturated_into(*last_fee_per_gas) as f64;
154155
if last_gas_used > &0.5 {
155156
// Increase base gas
156157
let increase = ((last_gas_used - 0.5) * 2f64) * elasticity;

0 commit comments

Comments
 (0)