1use serde::{Deserialize, Serialize};
3
4use crate::core::{ArgMap, BytesEnvelope, TirEnvelope};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct SubmitParams {
8 #[serde(rename = "tx")]
9 pub tx: BytesEnvelope,
10 #[serde(rename = "witnesses")]
11 pub witnesses: Vec<SubmitWitness>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct TxEnvelope {
16 #[serde(rename = "hash")]
17 pub hash: String,
18 #[serde(rename = "tx")]
19 pub tx: String,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct SubmitResponse {
24 #[serde(rename = "hash")]
25 pub hash: String,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29pub struct SearchSpaceDiagnostic {
30 #[serde(rename = "by_address_count")]
31 pub by_address_count: Option<i64>,
32 #[serde(rename = "by_asset_class_count")]
33 pub by_asset_class_count: Option<i64>,
34 #[serde(rename = "by_ref_count")]
35 pub by_ref_count: Option<i64>,
36 #[serde(rename = "matched")]
37 pub matched: Vec<String>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct InputQueryDiagnostic {
42 #[serde(rename = "address")]
43 pub address: Option<String>,
44 #[serde(rename = "collateral")]
45 pub collateral: bool,
46 #[serde(rename = "min_amount")]
47 pub min_amount: std::collections::HashMap<String, String>,
48 #[serde(rename = "refs")]
49 pub refs: Vec<String>,
50 #[serde(rename = "support_many")]
51 pub support_many: bool,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct ResolveParams {
56 #[serde(rename = "args")]
57 pub args: ArgMap,
58 #[serde(rename = "tir")]
59 pub tir: TirEnvelope,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
63pub struct SubmitWitness {
64 #[serde(rename = "key")]
65 pub key: BytesEnvelope,
66 #[serde(rename = "signature")]
67 pub signature: BytesEnvelope,
68 #[serde(rename = "type")]
69 pub ty: String,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct UnsupportedTirDiagnostic {
74 #[serde(rename = "expected")]
75 pub expected: String,
76 #[serde(rename = "provided")]
77 pub provided: String,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct InputNotResolvedDiagnostic {
82 #[serde(rename = "name")]
83 pub name: String,
84 #[serde(rename = "query")]
85 pub query: InputQueryDiagnostic,
86 #[serde(rename = "search_space")]
87 pub search_space: SearchSpaceDiagnostic,
88}
89
90#[derive(Debug, Clone, Serialize, Deserialize)]
91pub struct MissingTxArgDiagnostic {
92 #[serde(rename = "key")]
93 pub key: String,
94 #[serde(rename = "type")]
95 pub ty: String,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize)]
99pub struct TxScriptFailureDiagnostic {
100 #[serde(rename = "logs")]
101 pub logs: Vec<String>,
102}