Skip to content

Commit 1790d1a

Browse files
Update dynamic_fee.rs
add alchemy dynamic fee support and my private rpc :)
1 parent 6339ffd commit 1790d1a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/dynamic_fee.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use url::Url;
88
enum FeeStrategy {
99
Helius,
1010
Triton,
11+
Alchemy,
1112
}
1213

1314
impl Miner {
@@ -26,6 +27,10 @@ impl Miner {
2627
.to_string();
2728
let strategy = if host.contains("helius-rpc.com") {
2829
FeeStrategy::Helius
30+
} else if host.contains("alchemy.com") {
31+
FeeStrategy::Alchemy
32+
}else if host.contains("pandaever.host") {
33+
FeeStrategy::Alchemy
2934
} else if host.contains("rpcpool.com") {
3035
FeeStrategy::Triton
3136
} else {
@@ -51,6 +56,16 @@ impl Miner {
5156
}]
5257
})
5358
}
59+
FeeStrategy::Alchemy => {
60+
json!({
61+
"jsonrpc": "2.0",
62+
"id": "priority-fee-estimate",
63+
"method": "getRecentPrioritizationFees",
64+
"params": [
65+
ore_addresses
66+
]
67+
})
68+
}
5469
FeeStrategy::Triton => {
5570
json!({
5671
"jsonrpc": "2.0",
@@ -84,6 +99,23 @@ impl Miner {
8499
.map(|fee| fee as u64)
85100
.ok_or_else(|| format!("Failed to parse priority fee. Response: {:?}", response))
86101
.unwrap(),
102+
FeeStrategy::Alchemy => response["result"]
103+
.as_array()
104+
.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(),
87119
FeeStrategy::Triton => response["result"]
88120
.as_array()
89121
.and_then(|arr| arr.last())

0 commit comments

Comments
 (0)