fuels_test_helpers/
wallets_config.rs1use fuel_types::AssetId;
2
3pub 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}