tonlib_core/wallet/
wallet_code.rs1use std::collections::HashMap;
2
3use lazy_static::lazy_static;
4
5use crate::cell::{ArcCell, BagOfCells};
6use crate::wallet::wallet_version::WalletVersion;
7use crate::TonHash;
8
9macro_rules! load_code {
10 ($path:expr) => {
11 BagOfCells::parse_base64(include_str!($path))
12 .unwrap()
13 .single_root()
14 .unwrap()
15 };
16}
17
18lazy_static! {
19 #[allow(clippy::all)]
20 pub(super) static ref WALLET_CODE_BY_VERSION: HashMap<WalletVersion, ArcCell> =
21 HashMap::from([
22 (WalletVersion::V1R1, load_code!("../../resources/wallet/wallet_v1r1.code")),
23 (WalletVersion::V1R2, load_code!("../../resources/wallet/wallet_v1r2.code")),
24 (WalletVersion::V1R3, load_code!("../../resources/wallet/wallet_v1r3.code")),
25 (WalletVersion::V2R1, load_code!("../../resources/wallet/wallet_v2r1.code")),
26 (WalletVersion::V2R2, load_code!("../../resources/wallet/wallet_v2r2.code")),
27 (WalletVersion::V3R1, load_code!("../../resources/wallet/wallet_v3r1.code")),
28 (WalletVersion::V3R2, load_code!("../../resources/wallet/wallet_v3r2.code")),
29 (WalletVersion::V4R1, load_code!("../../resources/wallet/wallet_v4r1.code")),
30 (WalletVersion::V4R2, load_code!("../../resources/wallet/wallet_v4r2.code")),
31 (WalletVersion::V5R1, load_code!("../../resources/wallet/wallet_v5.code")),
32 (WalletVersion::HighloadV1R1, load_code!("../../resources/wallet/highload_v1r1.code")),
33 (WalletVersion::HighloadV1R2, load_code!("../../resources/wallet/highload_v1r2.code")),
34 (WalletVersion::HighloadV2, load_code!("../../resources/wallet/highload_v2.code")),
35 (WalletVersion::HighloadV2R1, load_code!("../../resources/wallet/highload_v2r1.code")),
36 (WalletVersion::HighloadV2R2, load_code!("../../resources/wallet/highload_v2r2.code")),
37 ]);
38
39 pub(super) static ref WALLET_VERSION_BY_CODE: HashMap<TonHash, WalletVersion> = WALLET_CODE_BY_VERSION.iter()
40 .map(|(k, v)| (v.cell_hash(), *k)).collect();
41
42
43}