Skip to content

Commit 372224d

Browse files
committed
update
1 parent 5f80f04 commit 372224d

File tree

3 files changed

+8
-78
lines changed

3 files changed

+8
-78
lines changed

Cargo.lock

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

light-client-lib/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ anyhow = "1.0.56"
4747
thiserror = "1.0.30"
4848
toml = "0.5.8"
4949
tokio = { version = "1.20" }
50-
ouroboros = "0.18.5"
5150

5251
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
5352
rocksdb = { package = "ckb-rocksdb", version = "=0.21.1", features = [

light-client-lib/src/verify.rs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,48 +26,41 @@ const DEFAULT_MIN_FEE_RATE: FeeRate = FeeRate(1000);
2626

2727
/// Used to verify if a transaction meets the lowest fee rate
2828
/// Use self reference here since `DaoCalculator` requires references to consensus and data_loader, but `ContextualTransactionVerifier` can only provide `Arc`s
29-
#[ouroboros::self_referencing]
30-
pub struct MinFeeVerifier<DL: 'static> {
29+
pub struct MinFeeVerifier<DL> {
3130
min_fee_rate: FeeRate,
3231
resolved_tx: Arc<ResolvedTransaction>,
3332
consensus: Arc<Consensus>,
3433
data_loader: Arc<DL>,
35-
#[borrows(consensus, data_loader)]
36-
#[covariant]
37-
fee_calculator: DaoCalculator<'this, DL>,
3834
}
39-
impl<DL: CellDataProvider + HeaderProvider + 'static> MinFeeVerifier<DL> {
35+
impl<DL: CellDataProvider + HeaderProvider> MinFeeVerifier<DL> {
4036
/// Creates a new `MinFeeVerifier`.
4137
pub fn new_with_arc(
4238
min_fee_rate: FeeRate,
4339
resolved_tx: Arc<ResolvedTransaction>,
4440
consensus: Arc<Consensus>,
4541
data_loader: Arc<DL>,
4642
) -> Self {
47-
MinFeeVerifierBuilder {
43+
Self {
4844
min_fee_rate,
4945
resolved_tx,
5046
consensus,
5147
data_loader,
52-
fee_calculator_builder: |a: &Arc<Consensus>, b: &Arc<DL>| DaoCalculator::new(a, b),
5348
}
54-
.build()
5549
}
5650
/// Verify if the transaction meets the lowest fee rate set by `min_fee_rate`
5751
pub fn verify(&self) -> Result<(), Error> {
58-
let fee = self
59-
.borrow_fee_calculator()
60-
.transaction_fee(self.borrow_resolved_tx())?;
52+
let fee = DaoCalculator::new(&*self.consensus, &*self.data_loader)
53+
.transaction_fee(&self.resolved_tx)?;
6154
let tx_size = self
62-
.borrow_resolved_tx()
55+
.resolved_tx
6356
.transaction
6457
.data()
6558
.serialized_size_in_block();
66-
let min_fee = self.borrow_min_fee_rate().fee(tx_size as u64);
59+
let min_fee = self.min_fee_rate.fee(tx_size as u64);
6760
if fee < min_fee {
6861
return Err(OtherError::new(format!(
6962
"Transaction rejected by low fee rate: min_fee_rate = {}, min_fee = {}, fee = {}, tx_size = {}",
70-
self.borrow_min_fee_rate(), min_fee, fee, tx_size
63+
self.min_fee_rate, min_fee, fee, tx_size
7164
))
7265
.into());
7366
}

0 commit comments

Comments
 (0)