Skip to content

Commit c8beebb

Browse files
Update dynamic_fee.rs
Updated support quicknode :)
1 parent 1790d1a commit c8beebb

File tree

1 file changed

+36
-17
lines changed

1 file changed

+36
-17
lines changed

src/dynamic_fee.rs

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ enum FeeStrategy {
99
Helius,
1010
Triton,
1111
Alchemy,
12+
Quicknode,
1213
}
1314

1415
impl Miner {
@@ -29,8 +30,8 @@ impl Miner {
2930
FeeStrategy::Helius
3031
} else if host.contains("alchemy.com") {
3132
FeeStrategy::Alchemy
32-
}else if host.contains("pandaever.host") {
33-
FeeStrategy::Alchemy
33+
} else if host.contains("quiknode.pro") {
34+
FeeStrategy::Quicknode
3435
} else if host.contains("rpcpool.com") {
3536
FeeStrategy::Triton
3637
} else {
@@ -66,6 +67,17 @@ impl Miner {
6667
]
6768
})
6869
}
70+
FeeStrategy::Quicknode => {
71+
json!({
72+
"jsonrpc": "2.0",
73+
"id": "1",
74+
"method": "qn_estimatePriorityFees",
75+
"params": {
76+
"account": "oreV2ZymfyeXgNgBdqMkumTqqAprVqgBWQfoYkrtKWQ",
77+
"last_n_blocks": 100
78+
}
79+
})
80+
}
6981
FeeStrategy::Triton => {
7082
json!({
7183
"jsonrpc": "2.0",
@@ -99,23 +111,30 @@ impl Miner {
99111
.map(|fee| fee as u64)
100112
.ok_or_else(|| format!("Failed to parse priority fee. Response: {:?}", response))
101113
.unwrap(),
114+
FeeStrategy::Quicknode => response["result"]["per_compute_unit"]["medium"]
115+
.as_f64()
116+
.map(|fee| fee as u64)
117+
.ok_or_else(|| {
118+
format!("Failed to parse priority fee. Response: {:?}", response)
119+
})
120+
.unwrap(),
102121
FeeStrategy::Alchemy => response["result"]
103-
.as_array()
122+
.as_array()
104123
.and_then(|arr| {
105-
Some(
106-
arr.into_iter()
107-
.map(|v| v["prioritizationFee"].as_u64().unwrap())
108-
.collect::<Vec<u64>>(),
109-
)
110-
})
111-
.and_then(|fees| {
112-
Some((fees.iter().sum::<u64>() as f32 / fees.len() as f32).ceil()
113-
as u64)
114-
})
115-
.ok_or_else(|| {
116-
format!("Failed to parse priority fee. Response: {:?}", response)
117-
})
118-
.unwrap(),
124+
Some(
125+
arr.into_iter()
126+
.map(|v| v["prioritizationFee"].as_u64().unwrap())
127+
.collect::<Vec<u64>>(),
128+
)
129+
})
130+
.and_then(|fees| {
131+
Some(((fees.iter().sum::<u64>() as f32 / fees.len() as f32).ceil() * 1.2)
132+
as u64)
133+
})
134+
.ok_or_else(|| {
135+
format!("Failed to parse priority fee. Response: {:?}", response)
136+
})
137+
.unwrap(),
119138
FeeStrategy::Triton => response["result"]
120139
.as_array()
121140
.and_then(|arr| arr.last())

0 commit comments

Comments
 (0)