tonlib_core/wallet/
wallet_code.rs

1use 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}