Skip to content

Commit 253a91c

Browse files
committed
Moved the Lido address map into a static var
1 parent 65fa572 commit 253a91c

File tree

4 files changed

+71
-67
lines changed

4 files changed

+71
-67
lines changed

Cargo.lock

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

crates/common/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ ethereum_ssz_derive.workspace = true
2626
eyre.workspace = true
2727
futures.workspace = true
2828
jsonwebtoken.workspace = true
29+
lazy_static.workspace = true
2930
lh_eth2.workspace = true
3031
lh_eth2_keystore.workspace = true
3132
lh_types.workspace = true

crates/common/src/config/mux.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,6 @@ async fn fetch_lido_csm_registry_keys(
344344
) -> eyre::Result<Vec<BlsPublicKey>> {
345345
let provider = ProviderBuilder::new().connect_client(rpc_client);
346346
let registry = get_lido_csm_registry(registry_address, provider);
347-
348347
let total_keys = fetch_lido_csm_keys_total(&registry, node_operator_id).await?;
349348

350349
collect_registry_keys(total_keys, |offset, limit| {

crates/common/src/interop/lido/utils.rs

Lines changed: 69 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::collections::HashMap;
22

33
use alloy::primitives::{Address, Bytes, U256, address};
44
use eyre::Context;
5+
use lazy_static::lazy_static;
56

67
use crate::{
78
interop::lido::types::{
@@ -11,76 +12,78 @@ use crate::{
1112
types::{Chain, HoleskyLidoModule, HoodiLidoModule, MainnetLidoModule},
1213
};
1314

14-
pub fn lido_registry_addresses_by_module() -> HashMap<Chain, HashMap<u8, Address>> {
15-
let mut map: HashMap<Chain, HashMap<u8, Address>> = HashMap::new();
16-
17-
// --- Mainnet ---
18-
let mut mainnet = HashMap::new();
19-
mainnet.insert(
20-
MainnetLidoModule::Curated as u8,
21-
address!("55032650b14df07b85bF18A3a3eC8E0Af2e028d5"),
22-
);
23-
mainnet.insert(
24-
MainnetLidoModule::SimpleDVT as u8,
25-
address!("aE7B191A31f627b4eB1d4DaC64eaB9976995b433"),
26-
);
27-
mainnet.insert(
28-
MainnetLidoModule::CommunityStaking as u8,
29-
address!("dA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"),
30-
);
31-
map.insert(Chain::Mainnet, mainnet);
32-
33-
// --- Holesky ---
34-
let mut holesky = HashMap::new();
35-
holesky.insert(
36-
HoleskyLidoModule::Curated as u8,
37-
address!("595F64Ddc3856a3b5Ff4f4CC1d1fb4B46cFd2bAC"),
38-
);
39-
holesky.insert(
40-
HoleskyLidoModule::SimpleDVT as u8,
41-
address!("11a93807078f8BB880c1BD0ee4C387537de4b4b6"),
42-
);
43-
holesky.insert(
44-
HoleskyLidoModule::Sandbox as u8,
45-
address!("D6C2ce3BB8bea2832496Ac8b5144819719f343AC"),
46-
);
47-
holesky.insert(
48-
HoleskyLidoModule::CommunityStaking as u8,
49-
address!("4562c3e63c2e586cD1651B958C22F88135aCAd4f"),
50-
);
51-
map.insert(Chain::Holesky, holesky);
52-
53-
// --- Hoodi ---
54-
let mut hoodi = HashMap::new();
55-
hoodi.insert(
56-
HoodiLidoModule::Curated as u8,
57-
address!("5cDbE1590c083b5A2A64427fAA63A7cfDB91FbB5"),
58-
);
59-
hoodi.insert(
60-
HoodiLidoModule::SimpleDVT as u8,
61-
address!("0B5236BECA68004DB89434462DfC3BB074d2c830"),
62-
);
63-
hoodi.insert(
64-
HoodiLidoModule::Sandbox as u8,
65-
address!("682E94d2630846a503BDeE8b6810DF71C9806891"),
66-
);
67-
hoodi.insert(
68-
HoodiLidoModule::CommunityStaking as u8,
69-
address!("79CEf36D84743222f37765204Bec41E92a93E59d"),
70-
);
71-
map.insert(Chain::Hoodi, hoodi);
72-
73-
// --- Sepolia --
74-
let mut sepolia = HashMap::new();
75-
sepolia.insert(1, address!("33d6E15047E8644F8DDf5CD05d202dfE587DA6E3"));
76-
map.insert(Chain::Sepolia, sepolia);
77-
78-
map
15+
lazy_static! {
16+
static ref LIDO_REGISTRY_ADDRESSES_BY_MODULE: HashMap<Chain, HashMap<u8, Address>> = {
17+
let mut map: HashMap<Chain, HashMap<u8, Address>> = HashMap::new();
18+
19+
// --- Mainnet ---
20+
let mut mainnet = HashMap::new();
21+
mainnet.insert(
22+
MainnetLidoModule::Curated as u8,
23+
address!("55032650b14df07b85bF18A3a3eC8E0Af2e028d5"),
24+
);
25+
mainnet.insert(
26+
MainnetLidoModule::SimpleDVT as u8,
27+
address!("aE7B191A31f627b4eB1d4DaC64eaB9976995b433"),
28+
);
29+
mainnet.insert(
30+
MainnetLidoModule::CommunityStaking as u8,
31+
address!("dA7dE2ECdDfccC6c3AF10108Db212ACBBf9EA83F"),
32+
);
33+
map.insert(Chain::Mainnet, mainnet);
34+
35+
// --- Holesky ---
36+
let mut holesky = HashMap::new();
37+
holesky.insert(
38+
HoleskyLidoModule::Curated as u8,
39+
address!("595F64Ddc3856a3b5Ff4f4CC1d1fb4B46cFd2bAC"),
40+
);
41+
holesky.insert(
42+
HoleskyLidoModule::SimpleDVT as u8,
43+
address!("11a93807078f8BB880c1BD0ee4C387537de4b4b6"),
44+
);
45+
holesky.insert(
46+
HoleskyLidoModule::Sandbox as u8,
47+
address!("D6C2ce3BB8bea2832496Ac8b5144819719f343AC"),
48+
);
49+
holesky.insert(
50+
HoleskyLidoModule::CommunityStaking as u8,
51+
address!("4562c3e63c2e586cD1651B958C22F88135aCAd4f"),
52+
);
53+
map.insert(Chain::Holesky, holesky);
54+
55+
// --- Hoodi ---
56+
let mut hoodi = HashMap::new();
57+
hoodi.insert(
58+
HoodiLidoModule::Curated as u8,
59+
address!("5cDbE1590c083b5A2A64427fAA63A7cfDB91FbB5"),
60+
);
61+
hoodi.insert(
62+
HoodiLidoModule::SimpleDVT as u8,
63+
address!("0B5236BECA68004DB89434462DfC3BB074d2c830"),
64+
);
65+
hoodi.insert(
66+
HoodiLidoModule::Sandbox as u8,
67+
address!("682E94d2630846a503BDeE8b6810DF71C9806891"),
68+
);
69+
hoodi.insert(
70+
HoodiLidoModule::CommunityStaking as u8,
71+
address!("79CEf36D84743222f37765204Bec41E92a93E59d"),
72+
);
73+
map.insert(Chain::Hoodi, hoodi);
74+
75+
// --- Sepolia --
76+
let mut sepolia = HashMap::new();
77+
sepolia.insert(1, address!("33d6E15047E8644F8DDf5CD05d202dfE587DA6E3"));
78+
map.insert(Chain::Sepolia, sepolia);
79+
80+
map
81+
};
7982
}
8083

8184
// Fetching appropiate registry address
8285
pub fn lido_registry_address(chain: Chain, lido_module_id: u8) -> eyre::Result<Address> {
83-
lido_registry_addresses_by_module()
86+
LIDO_REGISTRY_ADDRESSES_BY_MODULE
8487
.get(&chain)
8588
.ok_or_else(|| eyre::eyre!("Lido registry not supported for chain: {chain:?}"))?
8689
.get(&lido_module_id)

0 commit comments

Comments
 (0)