1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use crate::core::{Capacity, Cycle, TransactionView};
use ckb_channel::Sender;
use std::sync::mpsc;
pub const SIGNAL_CHANNEL_SIZE: usize = 1;
pub const DEFAULT_CHANNEL_SIZE: usize = 32;
pub struct Request<A, R> {
pub responder: mpsc::Sender<R>,
pub arguments: A,
}
impl<A, R> Request<A, R> {
pub fn call(sender: &Sender<Request<A, R>>, arguments: A) -> Option<R> {
let (responder, response) = mpsc::channel();
let _ = sender.send(Request {
responder,
arguments,
});
response.recv().ok()
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct PoolTransactionEntry {
pub transaction: TransactionView,
pub cycles: Cycle,
pub size: usize,
pub fee: Capacity,
pub timestamp: u64,
}