diff --git a/crates/tx3-resolver/src/trp/spec.rs b/crates/tx3-resolver/src/trp/spec.rs index 872d9783..4f519936 100644 --- a/crates/tx3-resolver/src/trp/spec.rs +++ b/crates/tx3-resolver/src/trp/spec.rs @@ -5,19 +5,26 @@ use crate::interop::{BytesEncoding, BytesEnvelope}; pub type JsonArgMap = serde_json::Map; -#[derive(Debug, Deserialize, Serialize, Clone)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct TirEnvelope { pub content: String, pub encoding: BytesEncoding, pub version: String, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum WitnessInput { + Object(SubmitWitness), + Hex(String), +} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SubmitParams { #[serde(rename = "tx")] pub tx: BytesEnvelope, #[serde(rename = "witnesses")] - pub witnesses: Vec, + pub witnesses: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -64,6 +71,8 @@ pub struct InputQueryDiagnostic { pub struct ResolveParams { #[serde(rename = "args")] pub args: JsonArgMap, + #[serde(rename = "env")] + pub env: JsonArgMap, #[serde(rename = "tir")] pub tir: TirEnvelope, } diff --git a/specs/v1beta0/trp.json b/specs/v1beta0/trp.json index 867f0593..a3b79e28 100644 --- a/specs/v1beta0/trp.json +++ b/specs/v1beta0/trp.json @@ -282,6 +282,19 @@ "logs" ] }, + "WitnessInput": { + "title": "WitnessInput", + "oneOf": [ + { + "$ref": "#/components/schemas/SubmitWitness", + "title": "Object" + }, + { + "type": "string", + "title": "Hex" + } + ] + }, "SubmitParams": { "title": "SubmitParams", "type": "object", @@ -292,7 +305,7 @@ "witnesses": { "type": "array", "items": { - "$ref": "#/components/schemas/SubmitWitness" + "$ref": "#/components/schemas/WitnessInput" } } },