use serde::{Deserialize, Serialize};
use crate::core::{ArgMap, BytesEnvelope, TirEnvelope};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SubmitParams {
#[serde(rename = "tx")]
pub tx: BytesEnvelope,
#[serde(rename = "witnesses")]
pub witnesses: Vec<SubmitWitness>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TxEnvelope {
#[serde(rename = "hash")]
pub hash: String,
#[serde(rename = "tx")]
pub tx: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SubmitResponse {
#[serde(rename = "hash")]
pub hash: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchSpaceDiagnostic {
#[serde(rename = "by_address_count")]
pub by_address_count: Option<i64>,
#[serde(rename = "by_asset_class_count")]
pub by_asset_class_count: Option<i64>,
#[serde(rename = "by_ref_count")]
pub by_ref_count: Option<i64>,
#[serde(rename = "matched")]
pub matched: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InputQueryDiagnostic {
#[serde(rename = "address")]
pub address: Option<String>,
#[serde(rename = "collateral")]
pub collateral: bool,
#[serde(rename = "min_amount")]
pub min_amount: std::collections::HashMap<String, String>,
#[serde(rename = "refs")]
pub refs: Vec<String>,
#[serde(rename = "support_many")]
pub support_many: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResolveParams {
#[serde(rename = "args")]
pub args: ArgMap,
#[serde(rename = "tir")]
pub tir: TirEnvelope,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SubmitWitness {
#[serde(rename = "key")]
pub key: BytesEnvelope,
#[serde(rename = "signature")]
pub signature: BytesEnvelope,
#[serde(rename = "type")]
pub ty: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UnsupportedTirDiagnostic {
#[serde(rename = "expected")]
pub expected: String,
#[serde(rename = "provided")]
pub provided: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InputNotResolvedDiagnostic {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "query")]
pub query: InputQueryDiagnostic,
#[serde(rename = "search_space")]
pub search_space: SearchSpaceDiagnostic,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MissingTxArgDiagnostic {
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "type")]
pub ty: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TxScriptFailureDiagnostic {
#[serde(rename = "logs")]
pub logs: Vec<String>,
}