1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Copyright 2020-2021 IOTA Stiftung
// SPDX-License-Identifier: Apache-2.0

use crate::{
    input::{Input, TreasuryInput, UtxoInput},
    rand::{milestone::rand_milestone_id, number::rand_number, output::rand_output_id},
};

/// Generates a random Utxo input.
pub fn rand_utxo_input() -> UtxoInput {
    rand_output_id().into()
}

/// Generates a random treasury input.
pub fn rand_treasury_input() -> TreasuryInput {
    TreasuryInput::new(rand_milestone_id())
}

/// Generates a random input.
pub fn rand_input() -> Input {
    match rand_number::<u64>() % 2 {
        0 => rand_utxo_input().into(),
        1 => rand_treasury_input().into(),
        _ => unreachable!(),
    }
}