circle_api/models/
transaction.rs1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4#[derive(Serialize, Debug)]
5#[serde(rename_all = "camelCase")]
6pub struct TransactionRequest {
7 pub idempotency_key: Uuid,
8 pub amounts: Vec<String>,
9 pub destination_address: String,
10 pub entity_secret_cipher_text: String,
11 pub fee_level: Option<FeeLevel>,
12 pub gas_limit: Option<u64>,
13 pub gas_price: Option<f64>,
14 pub max_fee: Option<f64>,
15 pub priority_fee: Option<f64>,
16 pub nft_token_ids: Option<Vec<String>>,
17 pub ref_id: Option<String>,
18 pub token_id: Uuid,
19 pub wallet_id: Uuid,
20}
21
22#[derive(Serialize, Deserialize, Debug)]
23#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
24pub enum FeeLevel {
25 Low,
26 Medium,
27 High,
28}
29
30#[derive(Deserialize, Debug)]
31#[serde(rename_all = "camelCase")]
32pub struct TransactionResponse {
33 pub id: String,
34 pub state: TransactionState,
35}
36
37#[derive(Deserialize, Debug)]
38#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
39pub enum TransactionState {
40 Initiated,
41 PendingRiskScreening,
42 Denied,
43 Queued,
44 Sent,
45 Confirmed,
46 Complete,
47 Failed,
48 Cancelled,
49}