iota_faucet/
requests.rs

1// Copyright (c) Mysten Labs, Inc.
2// Modifications Copyright (c) 2024 IOTA Stiftung
3// SPDX-License-Identifier: Apache-2.0
4
5use iota_types::base_types::IotaAddress;
6use serde::{Deserialize, Serialize};
7
8#[derive(Serialize, Deserialize, Debug, Clone)]
9pub enum FaucetRequest {
10    FixedAmountRequest(FixedAmountRequest),
11    GetBatchSendStatusRequest(GetBatchSendStatusRequest),
12}
13
14#[derive(Serialize, Deserialize, Debug, Clone)]
15pub struct FixedAmountRequest {
16    pub recipient: IotaAddress,
17}
18
19#[derive(Serialize, Deserialize, Debug, Clone)]
20pub struct GetBatchSendStatusRequest {
21    pub task_id: String,
22}
23
24impl FaucetRequest {
25    pub fn new_fixed_amount_request(recipient: impl Into<IotaAddress>) -> Self {
26        Self::FixedAmountRequest(FixedAmountRequest {
27            recipient: recipient.into(),
28        })
29    }
30
31    pub fn new_get_batch_send_status_request(task_id: impl Into<String>) -> Self {
32        Self::GetBatchSendStatusRequest(GetBatchSendStatusRequest {
33            task_id: task_id.into(),
34        })
35    }
36}