tx_sitter_client/types/
transaction.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Debug, Serialize, Deserialize, Clone)]
4#[serde(rename_all = "camelCase")]
5pub struct TxSitterTransactionInput {
6    pub to: String,
7    #[serde(default, skip_serializing_if = "String::is_empty")]
8    pub data: String,
9    pub value: String,
10    pub gas_limit: String,
11    pub relayer_id: String,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub transaction_id: Option<String>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub priority: Option<TransactionPriority>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub transaction_type: Option<TransactionType>,
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub metadata: Option<String>,
20}
21
22#[derive(Default, Debug, Serialize, Deserialize, Clone)]
23pub struct TransactionResponse {
24    pub id: u64,
25    pub jsonrpc: String,
26    pub result: String,
27}
28
29#[derive(Default, Debug, Serialize, Deserialize, Clone)]
30pub struct TxSitterTransaction {
31    pub id: String,
32    pub to: String,
33    #[serde(default, skip_serializing_if = "String::is_empty")]
34    pub data: String,
35    pub value: String,
36    pub gas_limit: String,
37    pub relayer_id: String,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub transaction_id: Option<String>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub priority: Option<TransactionPriority>,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub transaction_type: Option<TransactionType>,
44    pub tx_hash: String,
45}
46
47#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
48#[serde(rename_all = "camelCase")]
49pub enum TransactionPriority {
50    Slowest,
51    Slow,
52    Regular,
53    Fast,
54    Fastest,
55}
56
57#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
58#[serde(rename_all = "camelCase")]
59pub enum TransactionType {
60    All,
61    Swap,
62    Transfer,
63    Drop,
64    Grant,
65    Funding,
66    WalletDeployment,
67    RootPropagation,
68    Noop,
69    Bundle,
70    InvitePayout
71}