Skip to main content

paratro_sdk/
transfer.rs

1use serde::{Deserialize, Serialize};
2
3use crate::client::MpcClient;
4use crate::error::Error;
5
6/// Request to create a transfer.
7#[derive(Debug, Serialize)]
8pub struct CreateTransferRequest {
9    pub from_address: String,
10    pub to_address: String,
11    pub chain: String,
12    pub token_symbol: String,
13    pub amount: String,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub memo: Option<String>,
16}
17
18/// Response of a transfer creation.
19#[derive(Debug, Deserialize)]
20pub struct TransferResponse {
21    pub tx_id: String,
22    pub status: String,
23    pub message: String,
24}
25
26impl MpcClient {
27    /// Creates a transfer to send funds to an external address.
28    pub async fn create_transfer(
29        &self,
30        req: &CreateTransferRequest,
31    ) -> Result<TransferResponse, Error> {
32        self.post("/api/v1/transfer", req).await
33    }
34}