11use schemars:: JsonSchema ;
22use serde:: de:: { Error , IntoDeserializer } ;
33use serde:: { Deserialize , Deserializer , Serialize } ;
4+ use serde_with:: { DisplayFromStr , serde_as} ;
45use std:: collections:: HashMap ;
56
67use crate :: transaction:: InnerTransaction ;
@@ -9,9 +10,11 @@ pub mod auto;
910
1011// Base execution options for all transactions
1112// 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 ) ]
1315#[ serde( rename_all = "camelCase" ) ]
1416pub struct BaseExecutionOptions {
17+ #[ serde_as( as = "DisplayFromStr" ) ]
1518 pub chain_id : u64 ,
1619 #[ serde( default = "default_idempotency_key" ) ]
1720 pub idempotency_key : String ,
5659
5760/// This is the exposed API for execution options
5861/// 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 ) ]
6063pub struct ExecutionOptions {
6164 #[ serde( flatten) ]
6265 pub base : BaseExecutionOptions ,
@@ -72,7 +75,7 @@ pub struct WebhookOptions {
7275
7376/// Incoming transaction request, parsed into InnerTransaction
7477/// 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 ) ]
7679#[ serde( rename_all = "camelCase" ) ]
7780pub struct SendTransactionRequest {
7881 pub execution_options : ExecutionOptions ,
@@ -82,7 +85,7 @@ pub struct SendTransactionRequest {
8285
8386/// # QueuedTransaction
8487/// 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 ) ]
8689#[ serde( rename_all = "camelCase" ) ]
8790pub struct QueuedTransaction {
8891 /// The idempotency key this transaction was queued with
@@ -106,7 +109,7 @@ pub struct QueuedTransaction {
106109 pub transaction_params : Vec < InnerTransaction > ,
107110}
108111
109- #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema , utoipa:: ToSchema ) ]
112+ #[ derive( Debug , Clone , Serialize , Deserialize , utoipa:: ToSchema ) ]
110113pub struct QueuedTransactionsResponse {
111114 pub transactions : Vec < QueuedTransaction > ,
112115}
0 commit comments