1use serde::{Deserialize, Serialize};
2
3use crate::client::MpcClient;
4use crate::error::Error;
5
6#[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#[derive(Debug, Deserialize)]
20pub struct TransferResponse {
21 pub tx_id: String,
22 pub status: String,
23 pub message: String,
24}
25
26impl MpcClient {
27 pub async fn create_transfer(
29 &self,
30 req: &CreateTransferRequest,
31 ) -> Result<TransferResponse, Error> {
32 self.post("/api/v1/transfer", req).await
33 }
34}