1
1
use schemars:: JsonSchema ;
2
2
use serde:: de:: { Error , IntoDeserializer } ;
3
3
use serde:: { Deserialize , Deserializer , Serialize } ;
4
+ use serde_with:: { DisplayFromStr , serde_as} ;
4
5
use std:: collections:: HashMap ;
5
6
6
7
use crate :: transaction:: InnerTransaction ;
@@ -9,9 +10,11 @@ pub mod auto;
9
10
10
11
// Base execution options for all transactions
11
12
// All specific execution options share this
12
- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema , utoipa:: ToSchema ) ]
13
+ #[ serde_as]
14
+ #[ derive( Debug , Clone , Serialize , Deserialize , utoipa:: ToSchema ) ]
13
15
#[ serde( rename_all = "camelCase" ) ]
14
16
pub struct BaseExecutionOptions {
17
+ #[ serde_as( as = "DisplayFromStr" ) ]
15
18
pub chain_id : u64 ,
16
19
#[ serde( default = "default_idempotency_key" ) ]
17
20
pub idempotency_key : String ,
56
59
57
60
/// This is the exposed API for execution options
58
61
/// Base and specific execution options are both flattened together
59
- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema , utoipa:: ToSchema ) ]
62
+ #[ derive( Debug , Clone , Serialize , Deserialize , utoipa:: ToSchema ) ]
60
63
pub struct ExecutionOptions {
61
64
#[ serde( flatten) ]
62
65
pub base : BaseExecutionOptions ,
@@ -72,7 +75,7 @@ pub struct WebhookOptions {
72
75
73
76
/// Incoming transaction request, parsed into InnerTransaction
74
77
/// Exposed API will have varying `params` but will all parse into InnerTransaction before execution
75
- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema , utoipa:: ToSchema ) ]
78
+ #[ derive( Debug , Clone , Serialize , Deserialize , utoipa:: ToSchema ) ]
76
79
#[ serde( rename_all = "camelCase" ) ]
77
80
pub struct SendTransactionRequest {
78
81
pub execution_options : ExecutionOptions ,
@@ -82,7 +85,7 @@ pub struct SendTransactionRequest {
82
85
83
86
/// # QueuedTransaction
84
87
/// Response for any request that queues one or more transactions
85
- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema , utoipa:: ToSchema ) ]
88
+ #[ derive( Debug , Clone , Serialize , Deserialize , utoipa:: ToSchema ) ]
86
89
#[ serde( rename_all = "camelCase" ) ]
87
90
pub struct QueuedTransaction {
88
91
/// The idempotency key this transaction was queued with
@@ -106,7 +109,7 @@ pub struct QueuedTransaction {
106
109
pub transaction_params : Vec < InnerTransaction > ,
107
110
}
108
111
109
- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema , utoipa:: ToSchema ) ]
112
+ #[ derive( Debug , Clone , Serialize , Deserialize , utoipa:: ToSchema ) ]
110
113
pub struct QueuedTransactionsResponse {
111
114
pub transactions : Vec < QueuedTransaction > ,
112
115
}
0 commit comments