fuels_test_helpers/
wallets_config.rs

1use fuel_types::AssetId;
2
3// These constants define the default number of wallets to be setup,
4// the number of coins per wallet and the amount per coin
5pub const DEFAULT_NUM_WALLETS: u64 = 10;
6pub const DEFAULT_NUM_COINS: u64 = 1;
7pub const DEFAULT_COIN_AMOUNT: u64 = 1_000_000_000;
8
9#[derive(Debug, Clone)]
10pub struct AssetConfig {
11    pub id: AssetId,
12    pub num_coins: u64,
13    pub coin_amount: u64,
14}
15
16#[derive(Debug)]
17pub struct WalletsConfig {
18    num_wallets: u64,
19    assets: Vec<AssetConfig>,
20}
21
22impl WalletsConfig {
23    pub fn new(num_wallets: Option<u64>, num_coins: Option<u64>, coin_amount: Option<u64>) -> Self {
24        Self {
25            num_wallets: num_wallets.unwrap_or(DEFAULT_NUM_WALLETS),
26            assets: vec![AssetConfig {
27                id: AssetId::zeroed(),
28                num_coins: num_coins.unwrap_or(DEFAULT_NUM_COINS),
29                coin_amount: coin_amount.unwrap_or(DEFAULT_COIN_AMOUNT),
30            }],
31        }
32    }
33
34    pub fn new_multiple_assets(num_wallets: u64, assets: Vec<AssetConfig>) -> Self {
35        Self {
36            num_wallets,
37            assets,
38        }
39    }
40
41    pub fn num_wallets(&self) -> u64 {
42        self.num_wallets
43    }
44
45    pub fn assets(&self) -> &[AssetConfig] {
46        &self.assets[..]
47    }
48}
49
50impl Default for WalletsConfig {
51    fn default() -> Self {
52        Self {
53            num_wallets: DEFAULT_NUM_WALLETS,
54            assets: vec![AssetConfig {
55                id: AssetId::zeroed(),
56                num_coins: DEFAULT_NUM_COINS,
57                coin_amount: DEFAULT_COIN_AMOUNT,
58            }],
59        }
60    }
61}