diff --git a/src/generated.rs b/src/generated.rs index b8ee1a76..287198ae 100644 --- a/src/generated.rs +++ b/src/generated.rs @@ -40,7 +40,7 @@ pub const XDR_FILES_SHA256: [(&str, &str); 13] = [ ), ( "xdr/Stellar-contract-spec.x", - "f0655f82e0a28a79e067c02f427cc709db1e4323a50c9b85f730f812b9612dbd", + "ee0ffdb86c74fc9596e0e171d6490b2c80d523adeaf4c45fe43143bd5bc11a73", ), ( "xdr/Stellar-contract.x", @@ -5003,6 +5003,9 @@ pub use sc_meta_entry::*; mod sc_spec_doc_limit; #[allow(unused_imports)] pub use sc_spec_doc_limit::*; +mod sc_spec_id_len; +#[allow(unused_imports)] +pub use sc_spec_id_len::*; mod sc_spec_type; #[allow(unused_imports)] pub use sc_spec_type::*; @@ -5027,6 +5030,9 @@ pub use sc_spec_type_bytes_n::*; mod sc_spec_type_udt; #[allow(unused_imports)] pub use sc_spec_type_udt::*; +mod sc_spec_type_udtv2; +#[allow(unused_imports)] +pub use sc_spec_type_udtv2::*; mod sc_spec_type_def; #[allow(unused_imports)] pub use sc_spec_type_def::*; @@ -5084,6 +5090,12 @@ pub use sc_spec_event_v0::*; mod sc_spec_entry_kind; #[allow(unused_imports)] pub use sc_spec_entry_kind::*; +mod sc_spec_entry_v2_body; +#[allow(unused_imports)] +pub use sc_spec_entry_v2_body::*; +mod sc_spec_entry_v2; +#[allow(unused_imports)] +pub use sc_spec_entry_v2::*; mod sc_spec_entry; #[allow(unused_imports)] pub use sc_spec_entry::*; diff --git a/src/generated/sc_spec_entry.rs b/src/generated/sc_spec_entry.rs index 83a6172f..6598e8cc 100644 --- a/src/generated/sc_spec_entry.rs +++ b/src/generated/sc_spec_entry.rs @@ -18,6 +18,8 @@ use super::*; /// SCSpecUDTErrorEnumV0 udtErrorEnumV0; /// case SC_SPEC_ENTRY_EVENT_V0: /// SCSpecEventV0 eventV0; +/// case SC_SPEC_ENTRY_V2: +/// SCSpecEntryV2 v2; /// }; /// ``` /// @@ -40,6 +42,7 @@ pub enum ScSpecEntry { UdtEnumV0(ScSpecUdtEnumV0), UdtErrorEnumV0(ScSpecUdtErrorEnumV0), EventV0(ScSpecEventV0), + V2(ScSpecEntryV2), } #[cfg(feature = "alloc")] @@ -57,6 +60,7 @@ impl ScSpecEntry { ScSpecEntryKind::UdtEnumV0, ScSpecEntryKind::UdtErrorEnumV0, ScSpecEntryKind::EventV0, + ScSpecEntryKind::V2, ]; pub const VARIANTS: [ScSpecEntryKind; Self::_VARIANTS.len()] = { let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()]; @@ -74,6 +78,7 @@ impl ScSpecEntry { "UdtEnumV0", "UdtErrorEnumV0", "EventV0", + "V2", ]; pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = { let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()]; @@ -94,6 +99,7 @@ impl ScSpecEntry { Self::UdtEnumV0(_) => "UdtEnumV0", Self::UdtErrorEnumV0(_) => "UdtErrorEnumV0", Self::EventV0(_) => "EventV0", + Self::V2(_) => "V2", } } @@ -107,6 +113,7 @@ impl ScSpecEntry { Self::UdtEnumV0(_) => ScSpecEntryKind::UdtEnumV0, Self::UdtErrorEnumV0(_) => ScSpecEntryKind::UdtErrorEnumV0, Self::EventV0(_) => ScSpecEntryKind::EventV0, + Self::V2(_) => ScSpecEntryKind::V2, } } @@ -153,6 +160,7 @@ impl ReadXdr for ScSpecEntry { Self::UdtErrorEnumV0(ScSpecUdtErrorEnumV0::read_xdr(r)?) } ScSpecEntryKind::EventV0 => Self::EventV0(ScSpecEventV0::read_xdr(r)?), + ScSpecEntryKind::V2 => Self::V2(ScSpecEntryV2::read_xdr(r)?), #[allow(unreachable_patterns)] _ => return Err(Error::Invalid), }; @@ -174,6 +182,7 @@ impl WriteXdr for ScSpecEntry { Self::UdtEnumV0(v) => v.write_xdr(w)?, Self::UdtErrorEnumV0(v) => v.write_xdr(w)?, Self::EventV0(v) => v.write_xdr(w)?, + Self::V2(v) => v.write_xdr(w)?, }; Ok(()) }) @@ -191,6 +200,7 @@ pub enum ScSpecEntryView<'a> { UdtEnumV0(ScSpecUdtEnumV0View<'a>), UdtErrorEnumV0(ScSpecUdtErrorEnumV0View<'a>), EventV0(ScSpecEventV0View<'a>), + V2(ScSpecEntryV2View<'a>), } #[cfg(feature = "alloc")] @@ -205,6 +215,7 @@ impl From<&ScSpecEntryView<'_>> for ScSpecEntry { ScSpecEntryView::UdtEnumV0(value) => Self::UdtEnumV0(value.into()), ScSpecEntryView::UdtErrorEnumV0(value) => Self::UdtErrorEnumV0(value.into()), ScSpecEntryView::EventV0(value) => Self::EventV0(value.into()), + ScSpecEntryView::V2(value) => Self::V2(value.into()), } } } @@ -228,6 +239,7 @@ impl ScSpecEntryView<'_> { Self::UdtEnumV0(_) => ScSpecEntryKind::UdtEnumV0, Self::UdtErrorEnumV0(_) => ScSpecEntryKind::UdtErrorEnumV0, Self::EventV0(_) => ScSpecEntryKind::EventV0, + Self::V2(_) => ScSpecEntryKind::V2, } } } @@ -245,6 +257,7 @@ impl WriteXdr for ScSpecEntryView<'_> { Self::UdtEnumV0(v) => v.write_xdr(w)?, Self::UdtErrorEnumV0(v) => v.write_xdr(w)?, Self::EventV0(v) => v.write_xdr(w)?, + Self::V2(v) => v.write_xdr(w)?, }; Ok(()) }) @@ -279,6 +292,9 @@ impl ScSpecEntryView<'_> { Self::EventV0(v) => { v.const_write_xdr(w); } + Self::V2(v) => { + v.const_write_xdr(w); + } } w.leave_depth(); } diff --git a/src/generated/sc_spec_entry_kind.rs b/src/generated/sc_spec_entry_kind.rs index 60539a0d..6a20a16a 100644 --- a/src/generated/sc_spec_entry_kind.rs +++ b/src/generated/sc_spec_entry_kind.rs @@ -11,7 +11,8 @@ use super::*; /// SC_SPEC_ENTRY_UDT_UNION_V0 = 2, /// SC_SPEC_ENTRY_UDT_ENUM_V0 = 3, /// SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0 = 4, -/// SC_SPEC_ENTRY_EVENT_V0 = 5 +/// SC_SPEC_ENTRY_EVENT_V0 = 5, +/// SC_SPEC_ENTRY_V2 = 6 /// }; /// ``` /// @@ -34,6 +35,7 @@ pub enum ScSpecEntryKind { UdtEnumV0 = 3, UdtErrorEnumV0 = 4, EventV0 = 5, + V2 = 6, } impl ScSpecEntryKind { @@ -44,6 +46,7 @@ impl ScSpecEntryKind { ScSpecEntryKind::UdtEnumV0, ScSpecEntryKind::UdtErrorEnumV0, ScSpecEntryKind::EventV0, + ScSpecEntryKind::V2, ]; pub const VARIANTS: [ScSpecEntryKind; Self::_VARIANTS.len()] = { let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()]; @@ -61,6 +64,7 @@ impl ScSpecEntryKind { "UdtEnumV0", "UdtErrorEnumV0", "EventV0", + "V2", ]; pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = { let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()]; @@ -81,6 +85,7 @@ impl ScSpecEntryKind { Self::UdtEnumV0 => "UdtEnumV0", Self::UdtErrorEnumV0 => "UdtErrorEnumV0", Self::EventV0 => "EventV0", + Self::V2 => "V2", } } @@ -122,6 +127,7 @@ impl TryFrom for ScSpecEntryKind { 3 => ScSpecEntryKind::UdtEnumV0, 4 => ScSpecEntryKind::UdtErrorEnumV0, 5 => ScSpecEntryKind::EventV0, + 6 => ScSpecEntryKind::V2, #[allow(unreachable_patterns)] _ => return Err(Error::Invalid), }; diff --git a/src/generated/sc_spec_entry_v2.rs b/src/generated/sc_spec_entry_v2.rs new file mode 100644 index 00000000..b4576528 --- /dev/null +++ b/src/generated/sc_spec_entry_v2.rs @@ -0,0 +1,158 @@ +#[allow(unused_imports, clippy::wildcard_imports)] +use super::*; + +/// ScSpecEntryV2 is an XDR Struct defined as: +/// +/// ```text +/// struct SCSpecEntryV2 +/// { +/// opaque id[SC_SPEC_ID_LEN]; +/// union switch (SCSpecEntryKind kind) +/// { +/// case SC_SPEC_ENTRY_FUNCTION_V0: +/// SCSpecFunctionV0 functionV0; +/// case SC_SPEC_ENTRY_UDT_STRUCT_V0: +/// SCSpecUDTStructV0 udtStructV0; +/// case SC_SPEC_ENTRY_UDT_UNION_V0: +/// SCSpecUDTUnionV0 udtUnionV0; +/// case SC_SPEC_ENTRY_UDT_ENUM_V0: +/// SCSpecUDTEnumV0 udtEnumV0; +/// case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: +/// SCSpecUDTErrorEnumV0 udtErrorEnumV0; +/// case SC_SPEC_ENTRY_EVENT_V0: +/// SCSpecEventV0 eventV0; +/// } body; +/// }; +/// ``` +/// +#[cfg_attr(feature = "alloc", derive(Default))] +#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] +#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)] +#[cfg_attr(feature = "arbitrary", derive(Arbitrary))] +#[cfg_attr( + all(feature = "serde", feature = "alloc"), + serde_with::serde_as, + derive(serde::Serialize, serde::Deserialize), + serde(rename_all = "snake_case") +)] +#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] +pub struct ScSpecEntryV2 { + pub id: [u8; 8], + pub body: ScSpecEntryV2Body, +} + +impl ReadXdr for ScSpecEntryV2 { + #[cfg(feature = "std")] + fn read_xdr(r: &mut Limited) -> Result { + r.with_limited_depth(|r| { + Ok(Self { + id: <[u8; 8]>::read_xdr(r)?, + body: ScSpecEntryV2Body::read_xdr(r)?, + }) + }) + } +} + +impl WriteXdr for ScSpecEntryV2 { + #[cfg(feature = "std")] + fn write_xdr(&self, w: &mut Limited) -> Result<(), Error> { + w.with_limited_depth(|w| { + self.id.write_xdr(w)?; + self.body.write_xdr(w)?; + Ok(()) + }) + } +} + +/// ScSpecEntryV2View is a borrowing equivalent of [`ScSpecEntryV2`], usable in +/// const contexts and convertible to the owned type via [`From`]/[`Into`]. +#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] +pub struct ScSpecEntryV2View<'a> { + pub id: [u8; 8], + pub body: ScSpecEntryV2BodyView<'a>, +} + +#[cfg(feature = "alloc")] +impl From<&ScSpecEntryV2View<'_>> for ScSpecEntryV2 { + #[must_use] + fn from(v: &ScSpecEntryV2View<'_>) -> Self { + Self { + id: v.id, + body: (&v.body).into(), + } + } +} + +#[cfg(feature = "alloc")] +impl From> for ScSpecEntryV2 { + #[must_use] + fn from(v: ScSpecEntryV2View<'_>) -> Self { + Self::from(&v) + } +} + +impl WriteXdr for ScSpecEntryV2View<'_> { + #[cfg(feature = "std")] + fn write_xdr(&self, w: &mut Limited) -> Result<(), Error> { + w.with_limited_depth(|w| { + self.id.write_xdr(w)?; + self.body.write_xdr(w)?; + Ok(()) + }) + } +} +#[cfg(feature = "const")] +impl ScSpecEntryV2View<'_> { + /// Serialize this value as XDR into a [`ConstWriter`] using only const + /// operations. This is the const counterpart to the owned type's + /// [`WriteXdr::write_xdr`]. + pub const fn const_write_xdr(&self, w: &mut ConstWriter) { + w.enter_depth(); + w.write_fixed_opaque(&self.id); + self.body.const_write_xdr(w); + w.leave_depth(); + } + /// The exact XDR-encoded length of this value, in bytes. + /// + /// Evaluable in a const context, so a caller (such as a proc-macro) can + /// size a buffer for [`Self::const_to_xdr`] at compile time. + #[cfg(feature = "const")] + #[must_use] + pub const fn const_xdr_len(&self) -> usize { + let limits = Limits { + depth: u32::MAX, + len: usize::MAX, + }; + let mut empty: [u8; 0] = []; + let mut w = ConstWriter::new(&mut empty, &limits); + self.const_write_xdr(&mut w); + w.position() + } + + /// Serialize this value as XDR into a fixed-size `[u8; N]` using only const + /// operations. This is the const counterpart to [`WriteXdr::to_xdr`]. + /// + /// `N` must equal [`Self::const_xdr_len`]. It is intended for callers, such + /// as a proc-macro, that compute the length with `const_xdr_len` and pass + /// it as `N`; `const_to_xdr` itself does not need to call `const_xdr_len`. + /// + /// # Panics + /// + /// Panics if `N` does not equal the value's [`Self::const_xdr_len`]. + #[cfg(feature = "const")] + #[must_use] + pub const fn const_to_xdr(&self) -> [u8; N] { + let limits = Limits { + depth: u32::MAX, + len: usize::MAX, + }; + let mut buf = [0u8; N]; + let mut w = ConstWriter::new(&mut buf, &limits); + self.const_write_xdr(&mut w); + assert!( + w.position() == N, + "const_to_xdr: N does not equal the XDR-encoded length" + ); + buf + } +} diff --git a/src/generated/sc_spec_entry_v2_body.rs b/src/generated/sc_spec_entry_v2_body.rs new file mode 100644 index 00000000..0d59dfc3 --- /dev/null +++ b/src/generated/sc_spec_entry_v2_body.rs @@ -0,0 +1,328 @@ +#[allow(unused_imports, clippy::wildcard_imports)] +use super::*; + +/// ScSpecEntryV2Body is an XDR NestedUnion defined as: +/// +/// ```text +/// union switch (SCSpecEntryKind kind) +/// { +/// case SC_SPEC_ENTRY_FUNCTION_V0: +/// SCSpecFunctionV0 functionV0; +/// case SC_SPEC_ENTRY_UDT_STRUCT_V0: +/// SCSpecUDTStructV0 udtStructV0; +/// case SC_SPEC_ENTRY_UDT_UNION_V0: +/// SCSpecUDTUnionV0 udtUnionV0; +/// case SC_SPEC_ENTRY_UDT_ENUM_V0: +/// SCSpecUDTEnumV0 udtEnumV0; +/// case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: +/// SCSpecUDTErrorEnumV0 udtErrorEnumV0; +/// case SC_SPEC_ENTRY_EVENT_V0: +/// SCSpecEventV0 eventV0; +/// } +/// ``` +/// +// union with discriminant ScSpecEntryKind +#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)] +#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] +#[cfg_attr(feature = "arbitrary", derive(Arbitrary))] +#[cfg_attr( + all(feature = "serde", feature = "alloc"), + serde_with::serde_as, + derive(serde::Serialize, serde::Deserialize), + serde(rename_all = "snake_case") +)] +#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] +#[allow(clippy::large_enum_variant)] +pub enum ScSpecEntryV2Body { + FunctionV0(ScSpecFunctionV0), + UdtStructV0(ScSpecUdtStructV0), + UdtUnionV0(ScSpecUdtUnionV0), + UdtEnumV0(ScSpecUdtEnumV0), + UdtErrorEnumV0(ScSpecUdtErrorEnumV0), + EventV0(ScSpecEventV0), +} + +#[cfg(feature = "alloc")] +impl Default for ScSpecEntryV2Body { + fn default() -> Self { + Self::FunctionV0(ScSpecFunctionV0::default()) + } +} + +impl ScSpecEntryV2Body { + const _VARIANTS: &[ScSpecEntryKind] = &[ + ScSpecEntryKind::FunctionV0, + ScSpecEntryKind::UdtStructV0, + ScSpecEntryKind::UdtUnionV0, + ScSpecEntryKind::UdtEnumV0, + ScSpecEntryKind::UdtErrorEnumV0, + ScSpecEntryKind::EventV0, + ]; + pub const VARIANTS: [ScSpecEntryKind; Self::_VARIANTS.len()] = { + let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()]; + let mut i = 1; + while i < Self::_VARIANTS.len() { + arr[i] = Self::_VARIANTS[i]; + i += 1; + } + arr + }; + const _VARIANTS_STR: &[&str] = &[ + "FunctionV0", + "UdtStructV0", + "UdtUnionV0", + "UdtEnumV0", + "UdtErrorEnumV0", + "EventV0", + ]; + pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = { + let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()]; + let mut i = 1; + while i < Self::_VARIANTS_STR.len() { + arr[i] = Self::_VARIANTS_STR[i]; + i += 1; + } + arr + }; + + #[must_use] + pub const fn name(&self) -> &'static str { + match self { + Self::FunctionV0(_) => "FunctionV0", + Self::UdtStructV0(_) => "UdtStructV0", + Self::UdtUnionV0(_) => "UdtUnionV0", + Self::UdtEnumV0(_) => "UdtEnumV0", + Self::UdtErrorEnumV0(_) => "UdtErrorEnumV0", + Self::EventV0(_) => "EventV0", + } + } + + #[must_use] + pub const fn discriminant(&self) -> ScSpecEntryKind { + #[allow(clippy::match_same_arms)] + match self { + Self::FunctionV0(_) => ScSpecEntryKind::FunctionV0, + Self::UdtStructV0(_) => ScSpecEntryKind::UdtStructV0, + Self::UdtUnionV0(_) => ScSpecEntryKind::UdtUnionV0, + Self::UdtEnumV0(_) => ScSpecEntryKind::UdtEnumV0, + Self::UdtErrorEnumV0(_) => ScSpecEntryKind::UdtErrorEnumV0, + Self::EventV0(_) => ScSpecEntryKind::EventV0, + } + } + + #[must_use] + pub const fn variants() -> [ScSpecEntryKind; Self::_VARIANTS.len()] { + Self::VARIANTS + } +} + +impl Name for ScSpecEntryV2Body { + #[must_use] + fn name(&self) -> &'static str { + Self::name(self) + } +} + +impl Discriminant for ScSpecEntryV2Body { + #[must_use] + fn discriminant(&self) -> ScSpecEntryKind { + Self::discriminant(self) + } +} + +impl Variants for ScSpecEntryV2Body { + fn variants() -> slice::Iter<'static, ScSpecEntryKind> { + Self::VARIANTS.iter() + } +} + +impl Union for ScSpecEntryV2Body {} + +impl ReadXdr for ScSpecEntryV2Body { + #[cfg(feature = "std")] + fn read_xdr(r: &mut Limited) -> Result { + r.with_limited_depth(|r| { + let dv: ScSpecEntryKind = ::read_xdr(r)?; + #[allow(clippy::match_same_arms, clippy::match_wildcard_for_single_variants)] + let v = match dv { + ScSpecEntryKind::FunctionV0 => Self::FunctionV0(ScSpecFunctionV0::read_xdr(r)?), + ScSpecEntryKind::UdtStructV0 => Self::UdtStructV0(ScSpecUdtStructV0::read_xdr(r)?), + ScSpecEntryKind::UdtUnionV0 => Self::UdtUnionV0(ScSpecUdtUnionV0::read_xdr(r)?), + ScSpecEntryKind::UdtEnumV0 => Self::UdtEnumV0(ScSpecUdtEnumV0::read_xdr(r)?), + ScSpecEntryKind::UdtErrorEnumV0 => { + Self::UdtErrorEnumV0(ScSpecUdtErrorEnumV0::read_xdr(r)?) + } + ScSpecEntryKind::EventV0 => Self::EventV0(ScSpecEventV0::read_xdr(r)?), + #[allow(unreachable_patterns)] + _ => return Err(Error::Invalid), + }; + Ok(v) + }) + } +} + +impl WriteXdr for ScSpecEntryV2Body { + #[cfg(feature = "std")] + fn write_xdr(&self, w: &mut Limited) -> Result<(), Error> { + w.with_limited_depth(|w| { + self.discriminant().write_xdr(w)?; + #[allow(clippy::match_same_arms)] + match self { + Self::FunctionV0(v) => v.write_xdr(w)?, + Self::UdtStructV0(v) => v.write_xdr(w)?, + Self::UdtUnionV0(v) => v.write_xdr(w)?, + Self::UdtEnumV0(v) => v.write_xdr(w)?, + Self::UdtErrorEnumV0(v) => v.write_xdr(w)?, + Self::EventV0(v) => v.write_xdr(w)?, + }; + Ok(()) + }) + } +} + +/// ScSpecEntryV2BodyView is a borrowing equivalent of [`ScSpecEntryV2Body`], usable in +/// const contexts and convertible to the owned type via [`From`]/[`Into`]. +#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] +#[allow(clippy::large_enum_variant)] +pub enum ScSpecEntryV2BodyView<'a> { + FunctionV0(ScSpecFunctionV0View<'a>), + UdtStructV0(ScSpecUdtStructV0View<'a>), + UdtUnionV0(ScSpecUdtUnionV0View<'a>), + UdtEnumV0(ScSpecUdtEnumV0View<'a>), + UdtErrorEnumV0(ScSpecUdtErrorEnumV0View<'a>), + EventV0(ScSpecEventV0View<'a>), +} + +#[cfg(feature = "alloc")] +impl From<&ScSpecEntryV2BodyView<'_>> for ScSpecEntryV2Body { + #[must_use] + fn from(v: &ScSpecEntryV2BodyView<'_>) -> Self { + #[allow(clippy::match_same_arms)] + match v { + ScSpecEntryV2BodyView::FunctionV0(value) => Self::FunctionV0(value.into()), + ScSpecEntryV2BodyView::UdtStructV0(value) => Self::UdtStructV0(value.into()), + ScSpecEntryV2BodyView::UdtUnionV0(value) => Self::UdtUnionV0(value.into()), + ScSpecEntryV2BodyView::UdtEnumV0(value) => Self::UdtEnumV0(value.into()), + ScSpecEntryV2BodyView::UdtErrorEnumV0(value) => Self::UdtErrorEnumV0(value.into()), + ScSpecEntryV2BodyView::EventV0(value) => Self::EventV0(value.into()), + } + } +} + +#[cfg(feature = "alloc")] +impl From> for ScSpecEntryV2Body { + #[must_use] + fn from(v: ScSpecEntryV2BodyView<'_>) -> Self { + Self::from(&v) + } +} + +impl ScSpecEntryV2BodyView<'_> { + #[must_use] + pub const fn discriminant(&self) -> ScSpecEntryKind { + #[allow(clippy::match_same_arms)] + match self { + Self::FunctionV0(_) => ScSpecEntryKind::FunctionV0, + Self::UdtStructV0(_) => ScSpecEntryKind::UdtStructV0, + Self::UdtUnionV0(_) => ScSpecEntryKind::UdtUnionV0, + Self::UdtEnumV0(_) => ScSpecEntryKind::UdtEnumV0, + Self::UdtErrorEnumV0(_) => ScSpecEntryKind::UdtErrorEnumV0, + Self::EventV0(_) => ScSpecEntryKind::EventV0, + } + } +} + +impl WriteXdr for ScSpecEntryV2BodyView<'_> { + #[cfg(feature = "std")] + fn write_xdr(&self, w: &mut Limited) -> Result<(), Error> { + w.with_limited_depth(|w| { + self.discriminant().write_xdr(w)?; + #[allow(clippy::match_same_arms)] + match self { + Self::FunctionV0(v) => v.write_xdr(w)?, + Self::UdtStructV0(v) => v.write_xdr(w)?, + Self::UdtUnionV0(v) => v.write_xdr(w)?, + Self::UdtEnumV0(v) => v.write_xdr(w)?, + Self::UdtErrorEnumV0(v) => v.write_xdr(w)?, + Self::EventV0(v) => v.write_xdr(w)?, + }; + Ok(()) + }) + } +} +#[cfg(feature = "const")] +impl ScSpecEntryV2BodyView<'_> { + /// Serialize this value as XDR into a [`ConstWriter`] using only const + /// operations. This is the const counterpart to the owned type's + /// [`WriteXdr::write_xdr`]. + pub const fn const_write_xdr(&self, w: &mut ConstWriter) { + w.enter_depth(); + let d = self.discriminant(); + d.const_write_xdr(w); + #[allow(clippy::match_same_arms)] + match self { + Self::FunctionV0(v) => { + v.const_write_xdr(w); + } + Self::UdtStructV0(v) => { + v.const_write_xdr(w); + } + Self::UdtUnionV0(v) => { + v.const_write_xdr(w); + } + Self::UdtEnumV0(v) => { + v.const_write_xdr(w); + } + Self::UdtErrorEnumV0(v) => { + v.const_write_xdr(w); + } + Self::EventV0(v) => { + v.const_write_xdr(w); + } + } + w.leave_depth(); + } + /// The exact XDR-encoded length of this value, in bytes. + /// + /// Evaluable in a const context, so a caller (such as a proc-macro) can + /// size a buffer for [`Self::const_to_xdr`] at compile time. + #[cfg(feature = "const")] + #[must_use] + pub const fn const_xdr_len(&self) -> usize { + let limits = Limits { + depth: u32::MAX, + len: usize::MAX, + }; + let mut empty: [u8; 0] = []; + let mut w = ConstWriter::new(&mut empty, &limits); + self.const_write_xdr(&mut w); + w.position() + } + + /// Serialize this value as XDR into a fixed-size `[u8; N]` using only const + /// operations. This is the const counterpart to [`WriteXdr::to_xdr`]. + /// + /// `N` must equal [`Self::const_xdr_len`]. It is intended for callers, such + /// as a proc-macro, that compute the length with `const_xdr_len` and pass + /// it as `N`; `const_to_xdr` itself does not need to call `const_xdr_len`. + /// + /// # Panics + /// + /// Panics if `N` does not equal the value's [`Self::const_xdr_len`]. + #[cfg(feature = "const")] + #[must_use] + pub const fn const_to_xdr(&self) -> [u8; N] { + let limits = Limits { + depth: u32::MAX, + len: usize::MAX, + }; + let mut buf = [0u8; N]; + let mut w = ConstWriter::new(&mut buf, &limits); + self.const_write_xdr(&mut w); + assert!( + w.position() == N, + "const_to_xdr: N does not equal the XDR-encoded length" + ); + buf + } +} diff --git a/src/generated/sc_spec_id_len.rs b/src/generated/sc_spec_id_len.rs new file mode 100644 index 00000000..32a63e75 --- /dev/null +++ b/src/generated/sc_spec_id_len.rs @@ -0,0 +1,10 @@ +#[allow(unused_imports, clippy::wildcard_imports)] +use super::*; + +/// ScSpecIdLen is an XDR Const defined as: +/// +/// ```text +/// const SC_SPEC_ID_LEN = 8; +/// ``` +/// +pub const SC_SPEC_ID_LEN: u64 = 8; diff --git a/src/generated/sc_spec_type.rs b/src/generated/sc_spec_type.rs index 870b709c..538e9db6 100644 --- a/src/generated/sc_spec_type.rs +++ b/src/generated/sc_spec_type.rs @@ -37,7 +37,8 @@ use super::*; /// SC_SPEC_TYPE_BYTES_N = 1006, /// /// // User defined types. -/// SC_SPEC_TYPE_UDT = 2000 +/// SC_SPEC_TYPE_UDT = 2000, +/// SC_SPEC_TYPE_UDT_V2 = 2001 /// }; /// ``` /// @@ -80,6 +81,7 @@ pub enum ScSpecType { Tuple = 1005, BytesN = 1006, Udt = 2000, + UdtV2 = 2001, } impl ScSpecType { @@ -110,6 +112,7 @@ impl ScSpecType { ScSpecType::Tuple, ScSpecType::BytesN, ScSpecType::Udt, + ScSpecType::UdtV2, ]; pub const VARIANTS: [ScSpecType; Self::_VARIANTS.len()] = { let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()]; @@ -147,6 +150,7 @@ impl ScSpecType { "Tuple", "BytesN", "Udt", + "UdtV2", ]; pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = { let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()]; @@ -187,6 +191,7 @@ impl ScSpecType { Self::Tuple => "Tuple", Self::BytesN => "BytesN", Self::Udt => "Udt", + Self::UdtV2 => "UdtV2", } } @@ -248,6 +253,7 @@ impl TryFrom for ScSpecType { 1005 => ScSpecType::Tuple, 1006 => ScSpecType::BytesN, 2000 => ScSpecType::Udt, + 2001 => ScSpecType::UdtV2, #[allow(unreachable_patterns)] _ => return Err(Error::Invalid), }; diff --git a/src/generated/sc_spec_type_def.rs b/src/generated/sc_spec_type_def.rs index 296ee9dc..80172717 100644 --- a/src/generated/sc_spec_type_def.rs +++ b/src/generated/sc_spec_type_def.rs @@ -40,6 +40,8 @@ use super::*; /// SCSpecTypeBytesN bytesN; /// case SC_SPEC_TYPE_UDT: /// SCSpecTypeUDT udt; +/// case SC_SPEC_TYPE_UDT_V2: +/// SCSpecTypeUDTV2 udtV2; /// }; /// ``` /// @@ -82,6 +84,7 @@ pub enum ScSpecTypeDef { Tuple(Box), BytesN(ScSpecTypeBytesN), Udt(ScSpecTypeUdt), + UdtV2(ScSpecTypeUdtv2), } #[cfg(feature = "alloc")] @@ -119,6 +122,7 @@ impl ScSpecTypeDef { ScSpecType::Tuple, ScSpecType::BytesN, ScSpecType::Udt, + ScSpecType::UdtV2, ]; pub const VARIANTS: [ScSpecType; Self::_VARIANTS.len()] = { let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()]; @@ -156,6 +160,7 @@ impl ScSpecTypeDef { "Tuple", "BytesN", "Udt", + "UdtV2", ]; pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = { let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()]; @@ -196,6 +201,7 @@ impl ScSpecTypeDef { Self::Tuple(_) => "Tuple", Self::BytesN(_) => "BytesN", Self::Udt(_) => "Udt", + Self::UdtV2(_) => "UdtV2", } } @@ -229,6 +235,7 @@ impl ScSpecTypeDef { Self::Tuple(_) => ScSpecType::Tuple, Self::BytesN(_) => ScSpecType::BytesN, Self::Udt(_) => ScSpecType::Udt, + Self::UdtV2(_) => ScSpecType::UdtV2, } } @@ -293,6 +300,7 @@ impl ReadXdr for ScSpecTypeDef { ScSpecType::Tuple => Self::Tuple(Box::::read_xdr(r)?), ScSpecType::BytesN => Self::BytesN(ScSpecTypeBytesN::read_xdr(r)?), ScSpecType::Udt => Self::Udt(ScSpecTypeUdt::read_xdr(r)?), + ScSpecType::UdtV2 => Self::UdtV2(ScSpecTypeUdtv2::read_xdr(r)?), #[allow(unreachable_patterns)] _ => return Err(Error::Invalid), }; @@ -334,6 +342,7 @@ impl WriteXdr for ScSpecTypeDef { Self::Tuple(v) => v.write_xdr(w)?, Self::BytesN(v) => v.write_xdr(w)?, Self::Udt(v) => v.write_xdr(w)?, + Self::UdtV2(v) => v.write_xdr(w)?, }; Ok(()) }) @@ -371,6 +380,7 @@ pub enum ScSpecTypeDefView<'a> { Tuple(&'a ScSpecTypeTupleView<'a>), BytesN(ScSpecTypeBytesN), Udt(ScSpecTypeUdtView<'a>), + UdtV2(ScSpecTypeUdtv2View<'a>), } #[cfg(feature = "alloc")] @@ -405,6 +415,7 @@ impl From<&ScSpecTypeDefView<'_>> for ScSpecTypeDef { ScSpecTypeDefView::Tuple(value) => Self::Tuple(Box::new((*value).into())), ScSpecTypeDefView::BytesN(value) => Self::BytesN(value.clone()), ScSpecTypeDefView::Udt(value) => Self::Udt(value.into()), + ScSpecTypeDefView::UdtV2(value) => Self::UdtV2(value.into()), } } } @@ -448,6 +459,7 @@ impl ScSpecTypeDefView<'_> { Self::Tuple(_) => ScSpecType::Tuple, Self::BytesN(_) => ScSpecType::BytesN, Self::Udt(_) => ScSpecType::Udt, + Self::UdtV2(_) => ScSpecType::UdtV2, } } } @@ -485,6 +497,7 @@ impl WriteXdr for ScSpecTypeDefView<'_> { Self::Tuple(v) => v.write_xdr(w)?, Self::BytesN(v) => v.write_xdr(w)?, Self::Udt(v) => v.write_xdr(w)?, + Self::UdtV2(v) => v.write_xdr(w)?, }; Ok(()) }) @@ -551,6 +564,9 @@ impl ScSpecTypeDefView<'_> { Self::Udt(v) => { v.const_write_xdr(w); } + Self::UdtV2(v) => { + v.const_write_xdr(w); + } } w.leave_depth(); } diff --git a/src/generated/sc_spec_type_udtv2.rs b/src/generated/sc_spec_type_udtv2.rs new file mode 100644 index 00000000..4bb3ae0d --- /dev/null +++ b/src/generated/sc_spec_type_udtv2.rs @@ -0,0 +1,144 @@ +#[allow(unused_imports, clippy::wildcard_imports)] +use super::*; + +/// ScSpecTypeUdtv2 is an XDR Struct defined as: +/// +/// ```text +/// struct SCSpecTypeUDTV2 +/// { +/// string name<60>; +/// opaque id[SC_SPEC_ID_LEN]; +/// }; +/// ``` +/// +#[cfg_attr(feature = "alloc", derive(Default))] +#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] +#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)] +#[cfg_attr(feature = "arbitrary", derive(Arbitrary))] +#[cfg_attr( + all(feature = "serde", feature = "alloc"), + serde_with::serde_as, + derive(serde::Serialize, serde::Deserialize), + serde(rename_all = "snake_case") +)] +#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] +pub struct ScSpecTypeUdtv2 { + pub name: StringM<60>, + pub id: [u8; 8], +} + +impl ReadXdr for ScSpecTypeUdtv2 { + #[cfg(feature = "std")] + fn read_xdr(r: &mut Limited) -> Result { + r.with_limited_depth(|r| { + Ok(Self { + name: StringM::<60>::read_xdr(r)?, + id: <[u8; 8]>::read_xdr(r)?, + }) + }) + } +} + +impl WriteXdr for ScSpecTypeUdtv2 { + #[cfg(feature = "std")] + fn write_xdr(&self, w: &mut Limited) -> Result<(), Error> { + w.with_limited_depth(|w| { + self.name.write_xdr(w)?; + self.id.write_xdr(w)?; + Ok(()) + }) + } +} + +/// ScSpecTypeUdtv2View is a borrowing equivalent of [`ScSpecTypeUdtv2`], usable in +/// const contexts and convertible to the owned type via [`From`]/[`Into`]. +#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)] +pub struct ScSpecTypeUdtv2View<'a> { + pub name: StringMView<'a, 60>, + pub id: [u8; 8], +} + +#[cfg(feature = "alloc")] +impl From<&ScSpecTypeUdtv2View<'_>> for ScSpecTypeUdtv2 { + #[must_use] + fn from(v: &ScSpecTypeUdtv2View<'_>) -> Self { + Self { + name: v.name.to_stringm(), + id: v.id, + } + } +} + +#[cfg(feature = "alloc")] +impl From> for ScSpecTypeUdtv2 { + #[must_use] + fn from(v: ScSpecTypeUdtv2View<'_>) -> Self { + Self::from(&v) + } +} + +impl WriteXdr for ScSpecTypeUdtv2View<'_> { + #[cfg(feature = "std")] + fn write_xdr(&self, w: &mut Limited) -> Result<(), Error> { + w.with_limited_depth(|w| { + self.name.write_xdr(w)?; + self.id.write_xdr(w)?; + Ok(()) + }) + } +} +#[cfg(feature = "const")] +impl ScSpecTypeUdtv2View<'_> { + /// Serialize this value as XDR into a [`ConstWriter`] using only const + /// operations. This is the const counterpart to the owned type's + /// [`WriteXdr::write_xdr`]. + pub const fn const_write_xdr(&self, w: &mut ConstWriter) { + w.enter_depth(); + w.write_len_prefixed(self.name.as_slice()); + w.write_fixed_opaque(&self.id); + w.leave_depth(); + } + /// The exact XDR-encoded length of this value, in bytes. + /// + /// Evaluable in a const context, so a caller (such as a proc-macro) can + /// size a buffer for [`Self::const_to_xdr`] at compile time. + #[cfg(feature = "const")] + #[must_use] + pub const fn const_xdr_len(&self) -> usize { + let limits = Limits { + depth: u32::MAX, + len: usize::MAX, + }; + let mut empty: [u8; 0] = []; + let mut w = ConstWriter::new(&mut empty, &limits); + self.const_write_xdr(&mut w); + w.position() + } + + /// Serialize this value as XDR into a fixed-size `[u8; N]` using only const + /// operations. This is the const counterpart to [`WriteXdr::to_xdr`]. + /// + /// `N` must equal [`Self::const_xdr_len`]. It is intended for callers, such + /// as a proc-macro, that compute the length with `const_xdr_len` and pass + /// it as `N`; `const_to_xdr` itself does not need to call `const_xdr_len`. + /// + /// # Panics + /// + /// Panics if `N` does not equal the value's [`Self::const_xdr_len`]. + #[cfg(feature = "const")] + #[must_use] + pub const fn const_to_xdr(&self) -> [u8; N] { + let limits = Limits { + depth: u32::MAX, + len: usize::MAX, + }; + let mut buf = [0u8; N]; + let mut w = ConstWriter::new(&mut buf, &limits); + self.const_write_xdr(&mut w); + assert!( + w.position() == N, + "const_to_xdr: N does not equal the XDR-encoded length" + ); + buf + } +} diff --git a/src/generated/type_enum.rs b/src/generated/type_enum.rs index 1eb948fa..d5b40937 100644 --- a/src/generated/type_enum.rs +++ b/src/generated/type_enum.rs @@ -56,6 +56,7 @@ pub enum TypeVariant { ScSpecTypeTuple, ScSpecTypeBytesN, ScSpecTypeUdt, + ScSpecTypeUdtv2, ScSpecTypeDef, ScSpecUdtStructFieldV0, ScSpecUdtStructV0, @@ -75,6 +76,8 @@ pub enum TypeVariant { ScSpecEventDataFormat, ScSpecEventV0, ScSpecEntryKind, + ScSpecEntryV2, + ScSpecEntryV2Body, ScSpecEntry, ScBytes, ScString, @@ -538,6 +541,7 @@ impl TypeVariant { TypeVariant::ScSpecTypeTuple, TypeVariant::ScSpecTypeBytesN, TypeVariant::ScSpecTypeUdt, + TypeVariant::ScSpecTypeUdtv2, TypeVariant::ScSpecTypeDef, TypeVariant::ScSpecUdtStructFieldV0, TypeVariant::ScSpecUdtStructV0, @@ -557,6 +561,8 @@ impl TypeVariant { TypeVariant::ScSpecEventDataFormat, TypeVariant::ScSpecEventV0, TypeVariant::ScSpecEntryKind, + TypeVariant::ScSpecEntryV2, + TypeVariant::ScSpecEntryV2Body, TypeVariant::ScSpecEntry, TypeVariant::ScBytes, TypeVariant::ScString, @@ -1026,6 +1032,7 @@ impl TypeVariant { "ScSpecTypeTuple", "ScSpecTypeBytesN", "ScSpecTypeUdt", + "ScSpecTypeUdtv2", "ScSpecTypeDef", "ScSpecUdtStructFieldV0", "ScSpecUdtStructV0", @@ -1045,6 +1052,8 @@ impl TypeVariant { "ScSpecEventDataFormat", "ScSpecEventV0", "ScSpecEntryKind", + "ScSpecEntryV2", + "ScSpecEntryV2Body", "ScSpecEntry", "ScBytes", "ScString", @@ -1520,6 +1529,7 @@ impl TypeVariant { Self::ScSpecTypeTuple => "ScSpecTypeTuple", Self::ScSpecTypeBytesN => "ScSpecTypeBytesN", Self::ScSpecTypeUdt => "ScSpecTypeUdt", + Self::ScSpecTypeUdtv2 => "ScSpecTypeUdtv2", Self::ScSpecTypeDef => "ScSpecTypeDef", Self::ScSpecUdtStructFieldV0 => "ScSpecUdtStructFieldV0", Self::ScSpecUdtStructV0 => "ScSpecUdtStructV0", @@ -1539,6 +1549,8 @@ impl TypeVariant { Self::ScSpecEventDataFormat => "ScSpecEventDataFormat", Self::ScSpecEventV0 => "ScSpecEventV0", Self::ScSpecEntryKind => "ScSpecEntryKind", + Self::ScSpecEntryV2 => "ScSpecEntryV2", + Self::ScSpecEntryV2Body => "ScSpecEntryV2Body", Self::ScSpecEntry => "ScSpecEntry", Self::ScBytes => "ScBytes", Self::ScString => "ScString", @@ -2045,6 +2057,7 @@ impl TypeVariant { Self::ScSpecTypeTuple => gen.into_root_schema_for::(), Self::ScSpecTypeBytesN => gen.into_root_schema_for::(), Self::ScSpecTypeUdt => gen.into_root_schema_for::(), + Self::ScSpecTypeUdtv2 => gen.into_root_schema_for::(), Self::ScSpecTypeDef => gen.into_root_schema_for::(), Self::ScSpecUdtStructFieldV0 => gen.into_root_schema_for::(), Self::ScSpecUdtStructV0 => gen.into_root_schema_for::(), @@ -2074,6 +2087,8 @@ impl TypeVariant { Self::ScSpecEventDataFormat => gen.into_root_schema_for::(), Self::ScSpecEventV0 => gen.into_root_schema_for::(), Self::ScSpecEntryKind => gen.into_root_schema_for::(), + Self::ScSpecEntryV2 => gen.into_root_schema_for::(), + Self::ScSpecEntryV2Body => gen.into_root_schema_for::(), Self::ScSpecEntry => gen.into_root_schema_for::(), Self::ScBytes => gen.into_root_schema_for::(), Self::ScString => gen.into_root_schema_for::(), @@ -2763,6 +2778,7 @@ impl core::str::FromStr for TypeVariant { "ScSpecTypeTuple" => Ok(Self::ScSpecTypeTuple), "ScSpecTypeBytesN" => Ok(Self::ScSpecTypeBytesN), "ScSpecTypeUdt" => Ok(Self::ScSpecTypeUdt), + "ScSpecTypeUdtv2" => Ok(Self::ScSpecTypeUdtv2), "ScSpecTypeDef" => Ok(Self::ScSpecTypeDef), "ScSpecUdtStructFieldV0" => Ok(Self::ScSpecUdtStructFieldV0), "ScSpecUdtStructV0" => Ok(Self::ScSpecUdtStructV0), @@ -2782,6 +2798,8 @@ impl core::str::FromStr for TypeVariant { "ScSpecEventDataFormat" => Ok(Self::ScSpecEventDataFormat), "ScSpecEventV0" => Ok(Self::ScSpecEventV0), "ScSpecEntryKind" => Ok(Self::ScSpecEntryKind), + "ScSpecEntryV2" => Ok(Self::ScSpecEntryV2), + "ScSpecEntryV2Body" => Ok(Self::ScSpecEntryV2Body), "ScSpecEntry" => Ok(Self::ScSpecEntry), "ScBytes" => Ok(Self::ScBytes), "ScString" => Ok(Self::ScString), @@ -3281,6 +3299,7 @@ pub enum Type { ScSpecTypeTuple(Box), ScSpecTypeBytesN(Box), ScSpecTypeUdt(Box), + ScSpecTypeUdtv2(Box), ScSpecTypeDef(Box), ScSpecUdtStructFieldV0(Box), ScSpecUdtStructV0(Box), @@ -3300,6 +3319,8 @@ pub enum Type { ScSpecEventDataFormat(Box), ScSpecEventV0(Box), ScSpecEntryKind(Box), + ScSpecEntryV2(Box), + ScSpecEntryV2Body(Box), ScSpecEntry(Box), ScBytes(Box), ScString(Box), @@ -3765,6 +3786,7 @@ impl Type { TypeVariant::ScSpecTypeTuple, TypeVariant::ScSpecTypeBytesN, TypeVariant::ScSpecTypeUdt, + TypeVariant::ScSpecTypeUdtv2, TypeVariant::ScSpecTypeDef, TypeVariant::ScSpecUdtStructFieldV0, TypeVariant::ScSpecUdtStructV0, @@ -3784,6 +3806,8 @@ impl Type { TypeVariant::ScSpecEventDataFormat, TypeVariant::ScSpecEventV0, TypeVariant::ScSpecEntryKind, + TypeVariant::ScSpecEntryV2, + TypeVariant::ScSpecEntryV2Body, TypeVariant::ScSpecEntry, TypeVariant::ScBytes, TypeVariant::ScString, @@ -4253,6 +4277,7 @@ impl Type { "ScSpecTypeTuple", "ScSpecTypeBytesN", "ScSpecTypeUdt", + "ScSpecTypeUdtv2", "ScSpecTypeDef", "ScSpecUdtStructFieldV0", "ScSpecUdtStructV0", @@ -4272,6 +4297,8 @@ impl Type { "ScSpecEventDataFormat", "ScSpecEventV0", "ScSpecEntryKind", + "ScSpecEntryV2", + "ScSpecEntryV2Body", "ScSpecEntry", "ScBytes", "ScString", @@ -4899,6 +4926,11 @@ impl Type { TypeVariant::ScSpecTypeUdt => r.with_limited_depth(|r| { Ok(Self::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::read_xdr(r)?))) }), + TypeVariant::ScSpecTypeUdtv2 => r.with_limited_depth(|r| { + Ok(Self::ScSpecTypeUdtv2(Box::new(ScSpecTypeUdtv2::read_xdr( + r, + )?))) + }), TypeVariant::ScSpecTypeDef => r.with_limited_depth(|r| { Ok(Self::ScSpecTypeDef(Box::new(ScSpecTypeDef::read_xdr(r)?))) }), @@ -4990,6 +5022,14 @@ impl Type { r, )?))) }), + TypeVariant::ScSpecEntryV2 => r.with_limited_depth(|r| { + Ok(Self::ScSpecEntryV2(Box::new(ScSpecEntryV2::read_xdr(r)?))) + }), + TypeVariant::ScSpecEntryV2Body => r.with_limited_depth(|r| { + Ok(Self::ScSpecEntryV2Body(Box::new( + ScSpecEntryV2Body::read_xdr(r)?, + ))) + }), TypeVariant::ScSpecEntry => { r.with_limited_depth(|r| Ok(Self::ScSpecEntry(Box::new(ScSpecEntry::read_xdr(r)?)))) } @@ -7040,6 +7080,10 @@ impl Type { ReadXdrIter::<_, ScSpecTypeUdt>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t)))), ), + TypeVariant::ScSpecTypeUdtv2 => Box::new( + ReadXdrIter::<_, ScSpecTypeUdtv2>::new(&mut r.inner, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecTypeUdtv2(Box::new(t)))), + ), TypeVariant::ScSpecTypeDef => Box::new( ReadXdrIter::<_, ScSpecTypeDef>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t)))), @@ -7116,6 +7160,14 @@ impl Type { ReadXdrIter::<_, ScSpecEntryKind>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t)))), ), + TypeVariant::ScSpecEntryV2 => Box::new( + ReadXdrIter::<_, ScSpecEntryV2>::new(&mut r.inner, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecEntryV2(Box::new(t)))), + ), + TypeVariant::ScSpecEntryV2Body => Box::new( + ReadXdrIter::<_, ScSpecEntryV2Body>::new(&mut r.inner, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecEntryV2Body(Box::new(t)))), + ), TypeVariant::ScSpecEntry => Box::new( ReadXdrIter::<_, ScSpecEntry>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t)))), @@ -9117,6 +9169,10 @@ impl Type { ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t.0)))), ), + TypeVariant::ScSpecTypeUdtv2 => Box::new( + ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecTypeUdtv2(Box::new(t.0)))), + ), TypeVariant::ScSpecTypeDef => Box::new( ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t.0)))), @@ -9211,6 +9267,14 @@ impl Type { ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t.0)))), ), + TypeVariant::ScSpecEntryV2 => Box::new( + ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecEntryV2(Box::new(t.0)))), + ), + TypeVariant::ScSpecEntryV2Body => Box::new( + ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecEntryV2Body(Box::new(t.0)))), + ), TypeVariant::ScSpecEntry => Box::new( ReadXdrIter::<_, Frame>::new(&mut r.inner, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t.0)))), @@ -11464,6 +11528,10 @@ impl Type { ReadXdrIter::<_, ScSpecTypeUdt>::new(dec, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t)))), ), + TypeVariant::ScSpecTypeUdtv2 => Box::new( + ReadXdrIter::<_, ScSpecTypeUdtv2>::new(dec, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecTypeUdtv2(Box::new(t)))), + ), TypeVariant::ScSpecTypeDef => Box::new( ReadXdrIter::<_, ScSpecTypeDef>::new(dec, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t)))), @@ -11540,6 +11608,14 @@ impl Type { ReadXdrIter::<_, ScSpecEntryKind>::new(dec, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t)))), ), + TypeVariant::ScSpecEntryV2 => Box::new( + ReadXdrIter::<_, ScSpecEntryV2>::new(dec, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecEntryV2(Box::new(t)))), + ), + TypeVariant::ScSpecEntryV2Body => Box::new( + ReadXdrIter::<_, ScSpecEntryV2Body>::new(dec, r.limits.clone()) + .map(|r| r.map(|t| Self::ScSpecEntryV2Body(Box::new(t)))), + ), TypeVariant::ScSpecEntry => Box::new( ReadXdrIter::<_, ScSpecEntry>::new(dec, r.limits.clone()) .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t)))), @@ -13381,6 +13457,9 @@ impl Type { TypeVariant::ScSpecTypeUdt => { Ok(Self::ScSpecTypeUdt(Box::new(serde_json::from_reader(r)?))) } + TypeVariant::ScSpecTypeUdtv2 => { + Ok(Self::ScSpecTypeUdtv2(Box::new(serde_json::from_reader(r)?))) + } TypeVariant::ScSpecTypeDef => { Ok(Self::ScSpecTypeDef(Box::new(serde_json::from_reader(r)?))) } @@ -13438,6 +13517,12 @@ impl Type { TypeVariant::ScSpecEntryKind => { Ok(Self::ScSpecEntryKind(Box::new(serde_json::from_reader(r)?))) } + TypeVariant::ScSpecEntryV2 => { + Ok(Self::ScSpecEntryV2(Box::new(serde_json::from_reader(r)?))) + } + TypeVariant::ScSpecEntryV2Body => Ok(Self::ScSpecEntryV2Body(Box::new( + serde_json::from_reader(r)?, + ))), TypeVariant::ScSpecEntry => { Ok(Self::ScSpecEntry(Box::new(serde_json::from_reader(r)?))) } @@ -14724,6 +14809,9 @@ impl Type { TypeVariant::ScSpecTypeUdt => Ok(Self::ScSpecTypeUdt(Box::new( serde::de::Deserialize::deserialize(r)?, ))), + TypeVariant::ScSpecTypeUdtv2 => Ok(Self::ScSpecTypeUdtv2(Box::new( + serde::de::Deserialize::deserialize(r)?, + ))), TypeVariant::ScSpecTypeDef => Ok(Self::ScSpecTypeDef(Box::new( serde::de::Deserialize::deserialize(r)?, ))), @@ -14781,6 +14869,12 @@ impl Type { TypeVariant::ScSpecEntryKind => Ok(Self::ScSpecEntryKind(Box::new( serde::de::Deserialize::deserialize(r)?, ))), + TypeVariant::ScSpecEntryV2 => Ok(Self::ScSpecEntryV2(Box::new( + serde::de::Deserialize::deserialize(r)?, + ))), + TypeVariant::ScSpecEntryV2Body => Ok(Self::ScSpecEntryV2Body(Box::new( + serde::de::Deserialize::deserialize(r)?, + ))), TypeVariant::ScSpecEntry => Ok(Self::ScSpecEntry(Box::new( serde::de::Deserialize::deserialize(r)?, ))), @@ -16347,6 +16441,11 @@ impl Type { }) .map(|t| Self::ScSpecTypeUdt(Box::new(t))) .map_err(Error::Json), + TypeVariant::ScSpecTypeUdtv2 => serde_ignored::deserialize(r, |path| { + ignored.borrow_mut().push(path.to_string()); + }) + .map(|t| Self::ScSpecTypeUdtv2(Box::new(t))) + .map_err(Error::Json), TypeVariant::ScSpecTypeDef => serde_ignored::deserialize(r, |path| { ignored.borrow_mut().push(path.to_string()); }) @@ -16442,6 +16541,16 @@ impl Type { }) .map(|t| Self::ScSpecEntryKind(Box::new(t))) .map_err(Error::Json), + TypeVariant::ScSpecEntryV2 => serde_ignored::deserialize(r, |path| { + ignored.borrow_mut().push(path.to_string()); + }) + .map(|t| Self::ScSpecEntryV2(Box::new(t))) + .map_err(Error::Json), + TypeVariant::ScSpecEntryV2Body => serde_ignored::deserialize(r, |path| { + ignored.borrow_mut().push(path.to_string()); + }) + .map(|t| Self::ScSpecEntryV2Body(Box::new(t))) + .map_err(Error::Json), TypeVariant::ScSpecEntry => serde_ignored::deserialize(r, |path| { ignored.borrow_mut().push(path.to_string()); }) @@ -18694,6 +18803,9 @@ impl Type { TypeVariant::ScSpecTypeUdt => { Ok(Self::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::arbitrary(u)?))) } + TypeVariant::ScSpecTypeUdtv2 => Ok(Self::ScSpecTypeUdtv2(Box::new( + ScSpecTypeUdtv2::arbitrary(u)?, + ))), TypeVariant::ScSpecTypeDef => { Ok(Self::ScSpecTypeDef(Box::new(ScSpecTypeDef::arbitrary(u)?))) } @@ -18751,6 +18863,12 @@ impl Type { TypeVariant::ScSpecEntryKind => Ok(Self::ScSpecEntryKind(Box::new( ScSpecEntryKind::arbitrary(u)?, ))), + TypeVariant::ScSpecEntryV2 => { + Ok(Self::ScSpecEntryV2(Box::new(ScSpecEntryV2::arbitrary(u)?))) + } + TypeVariant::ScSpecEntryV2Body => Ok(Self::ScSpecEntryV2Body(Box::new( + ScSpecEntryV2Body::arbitrary(u)?, + ))), TypeVariant::ScSpecEntry => Ok(Self::ScSpecEntry(Box::new(ScSpecEntry::arbitrary(u)?))), TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(ScBytes::arbitrary(u)?))), TypeVariant::ScString => Ok(Self::ScString(Box::new(ScString::arbitrary(u)?))), @@ -19975,6 +20093,7 @@ impl Type { TypeVariant::ScSpecTypeTuple => Self::ScSpecTypeTuple(Box::default()), TypeVariant::ScSpecTypeBytesN => Self::ScSpecTypeBytesN(Box::default()), TypeVariant::ScSpecTypeUdt => Self::ScSpecTypeUdt(Box::default()), + TypeVariant::ScSpecTypeUdtv2 => Self::ScSpecTypeUdtv2(Box::default()), TypeVariant::ScSpecTypeDef => Self::ScSpecTypeDef(Box::default()), TypeVariant::ScSpecUdtStructFieldV0 => Self::ScSpecUdtStructFieldV0(Box::default()), TypeVariant::ScSpecUdtStructV0 => Self::ScSpecUdtStructV0(Box::default()), @@ -19998,6 +20117,8 @@ impl Type { TypeVariant::ScSpecEventDataFormat => Self::ScSpecEventDataFormat(Box::default()), TypeVariant::ScSpecEventV0 => Self::ScSpecEventV0(Box::default()), TypeVariant::ScSpecEntryKind => Self::ScSpecEntryKind(Box::default()), + TypeVariant::ScSpecEntryV2 => Self::ScSpecEntryV2(Box::default()), + TypeVariant::ScSpecEntryV2Body => Self::ScSpecEntryV2Body(Box::default()), TypeVariant::ScSpecEntry => Self::ScSpecEntry(Box::default()), TypeVariant::ScBytes => Self::ScBytes(Box::default()), TypeVariant::ScString => Self::ScString(Box::default()), @@ -20637,6 +20758,7 @@ impl Type { Self::ScSpecTypeTuple(ref v) => v.as_ref(), Self::ScSpecTypeBytesN(ref v) => v.as_ref(), Self::ScSpecTypeUdt(ref v) => v.as_ref(), + Self::ScSpecTypeUdtv2(ref v) => v.as_ref(), Self::ScSpecTypeDef(ref v) => v.as_ref(), Self::ScSpecUdtStructFieldV0(ref v) => v.as_ref(), Self::ScSpecUdtStructV0(ref v) => v.as_ref(), @@ -20656,6 +20778,8 @@ impl Type { Self::ScSpecEventDataFormat(ref v) => v.as_ref(), Self::ScSpecEventV0(ref v) => v.as_ref(), Self::ScSpecEntryKind(ref v) => v.as_ref(), + Self::ScSpecEntryV2(ref v) => v.as_ref(), + Self::ScSpecEntryV2Body(ref v) => v.as_ref(), Self::ScSpecEntry(ref v) => v.as_ref(), Self::ScBytes(ref v) => v.as_ref(), Self::ScString(ref v) => v.as_ref(), @@ -21127,6 +21251,7 @@ impl Type { Self::ScSpecTypeTuple(_) => "ScSpecTypeTuple", Self::ScSpecTypeBytesN(_) => "ScSpecTypeBytesN", Self::ScSpecTypeUdt(_) => "ScSpecTypeUdt", + Self::ScSpecTypeUdtv2(_) => "ScSpecTypeUdtv2", Self::ScSpecTypeDef(_) => "ScSpecTypeDef", Self::ScSpecUdtStructFieldV0(_) => "ScSpecUdtStructFieldV0", Self::ScSpecUdtStructV0(_) => "ScSpecUdtStructV0", @@ -21146,6 +21271,8 @@ impl Type { Self::ScSpecEventDataFormat(_) => "ScSpecEventDataFormat", Self::ScSpecEventV0(_) => "ScSpecEventV0", Self::ScSpecEntryKind(_) => "ScSpecEntryKind", + Self::ScSpecEntryV2(_) => "ScSpecEntryV2", + Self::ScSpecEntryV2Body(_) => "ScSpecEntryV2Body", Self::ScSpecEntry(_) => "ScSpecEntry", Self::ScBytes(_) => "ScBytes", Self::ScString(_) => "ScString", @@ -21653,6 +21780,7 @@ impl Type { Self::ScSpecTypeTuple(_) => TypeVariant::ScSpecTypeTuple, Self::ScSpecTypeBytesN(_) => TypeVariant::ScSpecTypeBytesN, Self::ScSpecTypeUdt(_) => TypeVariant::ScSpecTypeUdt, + Self::ScSpecTypeUdtv2(_) => TypeVariant::ScSpecTypeUdtv2, Self::ScSpecTypeDef(_) => TypeVariant::ScSpecTypeDef, Self::ScSpecUdtStructFieldV0(_) => TypeVariant::ScSpecUdtStructFieldV0, Self::ScSpecUdtStructV0(_) => TypeVariant::ScSpecUdtStructV0, @@ -21672,6 +21800,8 @@ impl Type { Self::ScSpecEventDataFormat(_) => TypeVariant::ScSpecEventDataFormat, Self::ScSpecEventV0(_) => TypeVariant::ScSpecEventV0, Self::ScSpecEntryKind(_) => TypeVariant::ScSpecEntryKind, + Self::ScSpecEntryV2(_) => TypeVariant::ScSpecEntryV2, + Self::ScSpecEntryV2Body(_) => TypeVariant::ScSpecEntryV2Body, Self::ScSpecEntry(_) => TypeVariant::ScSpecEntry, Self::ScBytes(_) => TypeVariant::ScBytes, Self::ScString(_) => TypeVariant::ScString, @@ -22217,6 +22347,7 @@ impl WriteXdr for Type { Self::ScSpecTypeTuple(v) => v.write_xdr(w), Self::ScSpecTypeBytesN(v) => v.write_xdr(w), Self::ScSpecTypeUdt(v) => v.write_xdr(w), + Self::ScSpecTypeUdtv2(v) => v.write_xdr(w), Self::ScSpecTypeDef(v) => v.write_xdr(w), Self::ScSpecUdtStructFieldV0(v) => v.write_xdr(w), Self::ScSpecUdtStructV0(v) => v.write_xdr(w), @@ -22236,6 +22367,8 @@ impl WriteXdr for Type { Self::ScSpecEventDataFormat(v) => v.write_xdr(w), Self::ScSpecEventV0(v) => v.write_xdr(w), Self::ScSpecEntryKind(v) => v.write_xdr(w), + Self::ScSpecEntryV2(v) => v.write_xdr(w), + Self::ScSpecEntryV2Body(v) => v.write_xdr(w), Self::ScSpecEntry(v) => v.write_xdr(w), Self::ScBytes(v) => v.write_xdr(w), Self::ScString(v) => v.write_xdr(w), diff --git a/xdr b/xdr index 9c9c1459..f34d4094 160000 --- a/xdr +++ b/xdr @@ -1 +1 @@ -Subproject commit 9c9c145953e80990d6ff1ae3a6a973a0ce6d0694 +Subproject commit f34d409475c0a1ecf262b502c7d4bffe505c0fcd diff --git a/xdr-definitions-json/xdr.json b/xdr-definitions-json/xdr.json index a5c73c9c..569bfab4 100644 --- a/xdr-definitions-json/xdr.json +++ b/xdr-definitions-json/xdr.json @@ -19,7 +19,7 @@ }, { "name": "xdr/Stellar-contract-spec.x", - "sha256": "f0655f82e0a28a79e067c02f427cc709db1e4323a50c9b85f730f812b9612dbd" + "sha256": "ee0ffdb86c74fc9596e0e171d6490b2c80d523adeaf4c45fe43143bd5bc11a73" }, { "name": "xdr/Stellar-contract.x", @@ -1893,10 +1893,17 @@ "source": "const SC_SPEC_DOC_LIMIT = 1024;", "file_index": 4 }, + { + "kind": "const", + "name": "SC_SPEC_ID_LEN", + "value": 8, + "source": "const SC_SPEC_ID_LEN = 8;", + "file_index": 4 + }, { "kind": "enum", "name": "SCSpecType", - "source": "enum SCSpecType\n{\n SC_SPEC_TYPE_VAL = 0,\n\n // Types with no parameters.\n SC_SPEC_TYPE_BOOL = 1,\n SC_SPEC_TYPE_VOID = 2,\n SC_SPEC_TYPE_ERROR = 3,\n SC_SPEC_TYPE_U32 = 4,\n SC_SPEC_TYPE_I32 = 5,\n SC_SPEC_TYPE_U64 = 6,\n SC_SPEC_TYPE_I64 = 7,\n SC_SPEC_TYPE_TIMEPOINT = 8,\n SC_SPEC_TYPE_DURATION = 9,\n SC_SPEC_TYPE_U128 = 10,\n SC_SPEC_TYPE_I128 = 11,\n SC_SPEC_TYPE_U256 = 12,\n SC_SPEC_TYPE_I256 = 13,\n SC_SPEC_TYPE_BYTES = 14,\n SC_SPEC_TYPE_STRING = 16,\n SC_SPEC_TYPE_SYMBOL = 17,\n SC_SPEC_TYPE_ADDRESS = 19,\n SC_SPEC_TYPE_MUXED_ADDRESS = 20,\n\n // Types with parameters.\n SC_SPEC_TYPE_OPTION = 1000,\n SC_SPEC_TYPE_RESULT = 1001,\n SC_SPEC_TYPE_VEC = 1002,\n SC_SPEC_TYPE_MAP = 1004,\n SC_SPEC_TYPE_TUPLE = 1005,\n SC_SPEC_TYPE_BYTES_N = 1006,\n\n // User defined types.\n SC_SPEC_TYPE_UDT = 2000\n};", + "source": "enum SCSpecType\n{\n SC_SPEC_TYPE_VAL = 0,\n\n // Types with no parameters.\n SC_SPEC_TYPE_BOOL = 1,\n SC_SPEC_TYPE_VOID = 2,\n SC_SPEC_TYPE_ERROR = 3,\n SC_SPEC_TYPE_U32 = 4,\n SC_SPEC_TYPE_I32 = 5,\n SC_SPEC_TYPE_U64 = 6,\n SC_SPEC_TYPE_I64 = 7,\n SC_SPEC_TYPE_TIMEPOINT = 8,\n SC_SPEC_TYPE_DURATION = 9,\n SC_SPEC_TYPE_U128 = 10,\n SC_SPEC_TYPE_I128 = 11,\n SC_SPEC_TYPE_U256 = 12,\n SC_SPEC_TYPE_I256 = 13,\n SC_SPEC_TYPE_BYTES = 14,\n SC_SPEC_TYPE_STRING = 16,\n SC_SPEC_TYPE_SYMBOL = 17,\n SC_SPEC_TYPE_ADDRESS = 19,\n SC_SPEC_TYPE_MUXED_ADDRESS = 20,\n\n // Types with parameters.\n SC_SPEC_TYPE_OPTION = 1000,\n SC_SPEC_TYPE_RESULT = 1001,\n SC_SPEC_TYPE_VEC = 1002,\n SC_SPEC_TYPE_MAP = 1004,\n SC_SPEC_TYPE_TUPLE = 1005,\n SC_SPEC_TYPE_BYTES_N = 1006,\n\n // User defined types.\n SC_SPEC_TYPE_UDT = 2000,\n SC_SPEC_TYPE_UDT_V2 = 2001\n};", "file_index": 4, "member_prefix": "SC_SPEC_TYPE_", "members": [ @@ -2003,6 +2010,10 @@ { "name": "SC_SPEC_TYPE_UDT", "value": 2000 + }, + { + "name": "SC_SPEC_TYPE_UDT_V2", + "value": 2001 } ] }, @@ -2136,11 +2147,34 @@ } ] }, + { + "kind": "struct", + "name": "SCSpecTypeUDTV2", + "fixed_size": null, + "source": "struct SCSpecTypeUDTV2\n{\n string name<60>;\n opaque id[SC_SPEC_ID_LEN];\n};", + "file_index": 4, + "fields": [ + { + "name": "name", + "type": { + "kind": "string", + "max_size": 60 + } + }, + { + "name": "id", + "type": { + "kind": "opaque_fixed", + "size": 8 + } + } + ] + }, { "kind": "union", "name": "SCSpecTypeDef", "fixed_size": null, - "source": "union SCSpecTypeDef switch (SCSpecType type)\n{\ncase SC_SPEC_TYPE_VAL:\ncase SC_SPEC_TYPE_BOOL:\ncase SC_SPEC_TYPE_VOID:\ncase SC_SPEC_TYPE_ERROR:\ncase SC_SPEC_TYPE_U32:\ncase SC_SPEC_TYPE_I32:\ncase SC_SPEC_TYPE_U64:\ncase SC_SPEC_TYPE_I64:\ncase SC_SPEC_TYPE_TIMEPOINT:\ncase SC_SPEC_TYPE_DURATION:\ncase SC_SPEC_TYPE_U128:\ncase SC_SPEC_TYPE_I128:\ncase SC_SPEC_TYPE_U256:\ncase SC_SPEC_TYPE_I256:\ncase SC_SPEC_TYPE_BYTES:\ncase SC_SPEC_TYPE_STRING:\ncase SC_SPEC_TYPE_SYMBOL:\ncase SC_SPEC_TYPE_ADDRESS:\ncase SC_SPEC_TYPE_MUXED_ADDRESS:\n void;\ncase SC_SPEC_TYPE_OPTION:\n SCSpecTypeOption option;\ncase SC_SPEC_TYPE_RESULT:\n SCSpecTypeResult result;\ncase SC_SPEC_TYPE_VEC:\n SCSpecTypeVec vec;\ncase SC_SPEC_TYPE_MAP:\n SCSpecTypeMap map;\ncase SC_SPEC_TYPE_TUPLE:\n SCSpecTypeTuple tuple;\ncase SC_SPEC_TYPE_BYTES_N:\n SCSpecTypeBytesN bytesN;\ncase SC_SPEC_TYPE_UDT:\n SCSpecTypeUDT udt;\n};", + "source": "union SCSpecTypeDef switch (SCSpecType type)\n{\ncase SC_SPEC_TYPE_VAL:\ncase SC_SPEC_TYPE_BOOL:\ncase SC_SPEC_TYPE_VOID:\ncase SC_SPEC_TYPE_ERROR:\ncase SC_SPEC_TYPE_U32:\ncase SC_SPEC_TYPE_I32:\ncase SC_SPEC_TYPE_U64:\ncase SC_SPEC_TYPE_I64:\ncase SC_SPEC_TYPE_TIMEPOINT:\ncase SC_SPEC_TYPE_DURATION:\ncase SC_SPEC_TYPE_U128:\ncase SC_SPEC_TYPE_I128:\ncase SC_SPEC_TYPE_U256:\ncase SC_SPEC_TYPE_I256:\ncase SC_SPEC_TYPE_BYTES:\ncase SC_SPEC_TYPE_STRING:\ncase SC_SPEC_TYPE_SYMBOL:\ncase SC_SPEC_TYPE_ADDRESS:\ncase SC_SPEC_TYPE_MUXED_ADDRESS:\n void;\ncase SC_SPEC_TYPE_OPTION:\n SCSpecTypeOption option;\ncase SC_SPEC_TYPE_RESULT:\n SCSpecTypeResult result;\ncase SC_SPEC_TYPE_VEC:\n SCSpecTypeVec vec;\ncase SC_SPEC_TYPE_MAP:\n SCSpecTypeMap map;\ncase SC_SPEC_TYPE_TUPLE:\n SCSpecTypeTuple tuple;\ncase SC_SPEC_TYPE_BYTES_N:\n SCSpecTypeBytesN bytesN;\ncase SC_SPEC_TYPE_UDT:\n SCSpecTypeUDT udt;\ncase SC_SPEC_TYPE_UDT_V2:\n SCSpecTypeUDTV2 udtV2;\n};", "file_index": 4, "discriminant": { "name": "type", @@ -2321,6 +2355,19 @@ "kind": "ref", "name": "SCSpecTypeUDT" } + }, + { + "cases": [ + { + "value": 2001, + "name": "SC_SPEC_TYPE_UDT_V2" + } + ], + "name": "udtV2", + "type": { + "kind": "ref", + "name": "SCSpecTypeUDTV2" + } } ] }, @@ -2899,7 +2946,7 @@ { "kind": "enum", "name": "SCSpecEntryKind", - "source": "enum SCSpecEntryKind\n{\n SC_SPEC_ENTRY_FUNCTION_V0 = 0,\n SC_SPEC_ENTRY_UDT_STRUCT_V0 = 1,\n SC_SPEC_ENTRY_UDT_UNION_V0 = 2,\n SC_SPEC_ENTRY_UDT_ENUM_V0 = 3,\n SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0 = 4,\n SC_SPEC_ENTRY_EVENT_V0 = 5\n};", + "source": "enum SCSpecEntryKind\n{\n SC_SPEC_ENTRY_FUNCTION_V0 = 0,\n SC_SPEC_ENTRY_UDT_STRUCT_V0 = 1,\n SC_SPEC_ENTRY_UDT_UNION_V0 = 2,\n SC_SPEC_ENTRY_UDT_ENUM_V0 = 3,\n SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0 = 4,\n SC_SPEC_ENTRY_EVENT_V0 = 5,\n SC_SPEC_ENTRY_V2 = 6\n};", "file_index": 4, "member_prefix": "SC_SPEC_ENTRY_", "members": [ @@ -2926,6 +2973,127 @@ { "name": "SC_SPEC_ENTRY_EVENT_V0", "value": 5 + }, + { + "name": "SC_SPEC_ENTRY_V2", + "value": 6 + } + ] + }, + { + "kind": "union", + "name": "SCSpecEntryV2Body", + "fixed_size": null, + "source": "union switch (SCSpecEntryKind kind)\n {\n case SC_SPEC_ENTRY_FUNCTION_V0:\n SCSpecFunctionV0 functionV0;\n case SC_SPEC_ENTRY_UDT_STRUCT_V0:\n SCSpecUDTStructV0 udtStructV0;\n case SC_SPEC_ENTRY_UDT_UNION_V0:\n SCSpecUDTUnionV0 udtUnionV0;\n case SC_SPEC_ENTRY_UDT_ENUM_V0:\n SCSpecUDTEnumV0 udtEnumV0;\n case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0:\n SCSpecUDTErrorEnumV0 udtErrorEnumV0;\n case SC_SPEC_ENTRY_EVENT_V0:\n SCSpecEventV0 eventV0;\n }", + "file_index": 4, + "discriminant": { + "name": "kind", + "type": { + "kind": "ref", + "name": "SCSpecEntryKind" + } + }, + "arms": [ + { + "cases": [ + { + "value": 0, + "name": "SC_SPEC_ENTRY_FUNCTION_V0" + } + ], + "name": "functionV0", + "type": { + "kind": "ref", + "name": "SCSpecFunctionV0" + } + }, + { + "cases": [ + { + "value": 1, + "name": "SC_SPEC_ENTRY_UDT_STRUCT_V0" + } + ], + "name": "udtStructV0", + "type": { + "kind": "ref", + "name": "SCSpecUDTStructV0" + } + }, + { + "cases": [ + { + "value": 2, + "name": "SC_SPEC_ENTRY_UDT_UNION_V0" + } + ], + "name": "udtUnionV0", + "type": { + "kind": "ref", + "name": "SCSpecUDTUnionV0" + } + }, + { + "cases": [ + { + "value": 3, + "name": "SC_SPEC_ENTRY_UDT_ENUM_V0" + } + ], + "name": "udtEnumV0", + "type": { + "kind": "ref", + "name": "SCSpecUDTEnumV0" + } + }, + { + "cases": [ + { + "value": 4, + "name": "SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0" + } + ], + "name": "udtErrorEnumV0", + "type": { + "kind": "ref", + "name": "SCSpecUDTErrorEnumV0" + } + }, + { + "cases": [ + { + "value": 5, + "name": "SC_SPEC_ENTRY_EVENT_V0" + } + ], + "name": "eventV0", + "type": { + "kind": "ref", + "name": "SCSpecEventV0" + } + } + ] + }, + { + "kind": "struct", + "name": "SCSpecEntryV2", + "fixed_size": null, + "source": "struct SCSpecEntryV2\n{\n opaque id[SC_SPEC_ID_LEN];\n union switch (SCSpecEntryKind kind)\n {\n case SC_SPEC_ENTRY_FUNCTION_V0:\n SCSpecFunctionV0 functionV0;\n case SC_SPEC_ENTRY_UDT_STRUCT_V0:\n SCSpecUDTStructV0 udtStructV0;\n case SC_SPEC_ENTRY_UDT_UNION_V0:\n SCSpecUDTUnionV0 udtUnionV0;\n case SC_SPEC_ENTRY_UDT_ENUM_V0:\n SCSpecUDTEnumV0 udtEnumV0;\n case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0:\n SCSpecUDTErrorEnumV0 udtErrorEnumV0;\n case SC_SPEC_ENTRY_EVENT_V0:\n SCSpecEventV0 eventV0;\n } body;\n};", + "file_index": 4, + "fields": [ + { + "name": "id", + "type": { + "kind": "opaque_fixed", + "size": 8 + } + }, + { + "name": "body", + "type": { + "kind": "ref", + "name": "SCSpecEntryV2Body" + } } ] }, @@ -2933,7 +3101,7 @@ "kind": "union", "name": "SCSpecEntry", "fixed_size": null, - "source": "union SCSpecEntry switch (SCSpecEntryKind kind)\n{\ncase SC_SPEC_ENTRY_FUNCTION_V0:\n SCSpecFunctionV0 functionV0;\ncase SC_SPEC_ENTRY_UDT_STRUCT_V0:\n SCSpecUDTStructV0 udtStructV0;\ncase SC_SPEC_ENTRY_UDT_UNION_V0:\n SCSpecUDTUnionV0 udtUnionV0;\ncase SC_SPEC_ENTRY_UDT_ENUM_V0:\n SCSpecUDTEnumV0 udtEnumV0;\ncase SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0:\n SCSpecUDTErrorEnumV0 udtErrorEnumV0;\ncase SC_SPEC_ENTRY_EVENT_V0:\n SCSpecEventV0 eventV0;\n};", + "source": "union SCSpecEntry switch (SCSpecEntryKind kind)\n{\ncase SC_SPEC_ENTRY_FUNCTION_V0:\n SCSpecFunctionV0 functionV0;\ncase SC_SPEC_ENTRY_UDT_STRUCT_V0:\n SCSpecUDTStructV0 udtStructV0;\ncase SC_SPEC_ENTRY_UDT_UNION_V0:\n SCSpecUDTUnionV0 udtUnionV0;\ncase SC_SPEC_ENTRY_UDT_ENUM_V0:\n SCSpecUDTEnumV0 udtEnumV0;\ncase SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0:\n SCSpecUDTErrorEnumV0 udtErrorEnumV0;\ncase SC_SPEC_ENTRY_EVENT_V0:\n SCSpecEventV0 eventV0;\ncase SC_SPEC_ENTRY_V2:\n SCSpecEntryV2 v2;\n};", "file_index": 4, "discriminant": { "name": "kind", @@ -3020,6 +3188,19 @@ "kind": "ref", "name": "SCSpecEventV0" } + }, + { + "cases": [ + { + "value": 6, + "name": "SC_SPEC_ENTRY_V2" + } + ], + "name": "v2", + "type": { + "kind": "ref", + "name": "SCSpecEntryV2" + } } ] }, diff --git a/xdr-json/ScSpecEntry.json b/xdr-json/ScSpecEntry.json index 488b6418..06bb36d7 100644 --- a/xdr-json/ScSpecEntry.json +++ b/xdr-json/ScSpecEntry.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "ScSpecEntry", - "description": "ScSpecEntry is an XDR Union defined as:\n\n```text union SCSpecEntry switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; }; ```", + "description": "ScSpecEntry is an XDR Union defined as:\n\n```text union SCSpecEntry switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; case SC_SPEC_ENTRY_V2: SCSpecEntryV2 v2; }; ```", "oneOf": [ { "type": "object", @@ -68,6 +68,17 @@ "$ref": "#/definitions/ScSpecEventV0" } } + }, + { + "type": "object", + "required": [ + "v2" + ], + "properties": { + "v2": { + "$ref": "#/definitions/ScSpecEntryV2" + } + } } ], "properties": { @@ -77,6 +88,100 @@ }, "unevaluatedProperties": false, "definitions": { + "ScSpecEntryV2": { + "description": "ScSpecEntryV2 is an XDR Struct defined as:\n\n```text struct SCSpecEntryV2 { opaque id[SC_SPEC_ID_LEN]; union switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; } body; }; ```", + "type": "object", + "required": [ + "body", + "id" + ], + "properties": { + "body": { + "$ref": "#/definitions/ScSpecEntryV2Body" + }, + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + } + } + }, + "ScSpecEntryV2Body": { + "description": "ScSpecEntryV2Body is an XDR NestedUnion defined as:\n\n```text union switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; } ```", + "oneOf": [ + { + "type": "object", + "required": [ + "function_v0" + ], + "properties": { + "function_v0": { + "$ref": "#/definitions/ScSpecFunctionV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_struct_v0" + ], + "properties": { + "udt_struct_v0": { + "$ref": "#/definitions/ScSpecUdtStructV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_union_v0" + ], + "properties": { + "udt_union_v0": { + "$ref": "#/definitions/ScSpecUdtUnionV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_enum_v0" + ], + "properties": { + "udt_enum_v0": { + "$ref": "#/definitions/ScSpecUdtEnumV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_error_enum_v0" + ], + "properties": { + "udt_error_enum_v0": { + "$ref": "#/definitions/ScSpecUdtErrorEnumV0" + } + } + }, + { + "type": "object", + "required": [ + "event_v0" + ], + "properties": { + "event_v0": { + "$ref": "#/definitions/ScSpecEventV0" + } + } + } + ] + }, "ScSpecEventDataFormat": { "description": "ScSpecEventDataFormat is an XDR Enum defined as:\n\n```text enum SCSpecEventDataFormat { SC_SPEC_EVENT_DATA_FORMAT_SINGLE_VALUE = 0, SC_SPEC_EVENT_DATA_FORMAT_VEC = 1, SC_SPEC_EVENT_DATA_FORMAT_MAP = 2 }; ```", "type": "string", @@ -225,7 +330,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -327,6 +432,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -402,6 +518,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecEntryKind.json b/xdr-json/ScSpecEntryKind.json index c0f55e41..ba3a6084 100644 --- a/xdr-json/ScSpecEntryKind.json +++ b/xdr-json/ScSpecEntryKind.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "ScSpecEntryKind", - "description": "ScSpecEntryKind is an XDR Enum defined as:\n\n```text enum SCSpecEntryKind { SC_SPEC_ENTRY_FUNCTION_V0 = 0, SC_SPEC_ENTRY_UDT_STRUCT_V0 = 1, SC_SPEC_ENTRY_UDT_UNION_V0 = 2, SC_SPEC_ENTRY_UDT_ENUM_V0 = 3, SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0 = 4, SC_SPEC_ENTRY_EVENT_V0 = 5 }; ```", + "description": "ScSpecEntryKind is an XDR Enum defined as:\n\n```text enum SCSpecEntryKind { SC_SPEC_ENTRY_FUNCTION_V0 = 0, SC_SPEC_ENTRY_UDT_STRUCT_V0 = 1, SC_SPEC_ENTRY_UDT_UNION_V0 = 2, SC_SPEC_ENTRY_UDT_ENUM_V0 = 3, SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0 = 4, SC_SPEC_ENTRY_EVENT_V0 = 5, SC_SPEC_ENTRY_V2 = 6 }; ```", "type": "string", "enum": [ "function_v0", @@ -9,6 +9,7 @@ "udt_union_v0", "udt_enum_v0", "udt_error_enum_v0", - "event_v0" + "event_v0", + "v2" ] } \ No newline at end of file diff --git a/xdr-json/ScSpecEntryV2.json b/xdr-json/ScSpecEntryV2.json new file mode 100644 index 00000000..ab2b7c07 --- /dev/null +++ b/xdr-json/ScSpecEntryV2.json @@ -0,0 +1,740 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ScSpecEntryV2", + "description": "ScSpecEntryV2 is an XDR Struct defined as:\n\n```text struct SCSpecEntryV2 { opaque id[SC_SPEC_ID_LEN]; union switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; } body; }; ```", + "type": "object", + "required": [ + "body", + "id" + ], + "properties": { + "$schema": { + "type": "string" + }, + "body": { + "$ref": "#/definitions/ScSpecEntryV2Body" + }, + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + } + }, + "unevaluatedProperties": false, + "definitions": { + "ScSpecEntryV2Body": { + "description": "ScSpecEntryV2Body is an XDR NestedUnion defined as:\n\n```text union switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; } ```", + "oneOf": [ + { + "type": "object", + "required": [ + "function_v0" + ], + "properties": { + "function_v0": { + "$ref": "#/definitions/ScSpecFunctionV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_struct_v0" + ], + "properties": { + "udt_struct_v0": { + "$ref": "#/definitions/ScSpecUdtStructV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_union_v0" + ], + "properties": { + "udt_union_v0": { + "$ref": "#/definitions/ScSpecUdtUnionV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_enum_v0" + ], + "properties": { + "udt_enum_v0": { + "$ref": "#/definitions/ScSpecUdtEnumV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_error_enum_v0" + ], + "properties": { + "udt_error_enum_v0": { + "$ref": "#/definitions/ScSpecUdtErrorEnumV0" + } + } + }, + { + "type": "object", + "required": [ + "event_v0" + ], + "properties": { + "event_v0": { + "$ref": "#/definitions/ScSpecEventV0" + } + } + } + ] + }, + "ScSpecEventDataFormat": { + "description": "ScSpecEventDataFormat is an XDR Enum defined as:\n\n```text enum SCSpecEventDataFormat { SC_SPEC_EVENT_DATA_FORMAT_SINGLE_VALUE = 0, SC_SPEC_EVENT_DATA_FORMAT_VEC = 1, SC_SPEC_EVENT_DATA_FORMAT_MAP = 2 }; ```", + "type": "string", + "enum": [ + "single_value", + "vec", + "map" + ] + }, + "ScSpecEventParamLocationV0": { + "description": "ScSpecEventParamLocationV0 is an XDR Enum defined as:\n\n```text enum SCSpecEventParamLocationV0 { SC_SPEC_EVENT_PARAM_LOCATION_DATA = 0, SC_SPEC_EVENT_PARAM_LOCATION_TOPIC_LIST = 1 }; ```", + "type": "string", + "enum": [ + "data", + "topic_list" + ] + }, + "ScSpecEventParamV0": { + "description": "ScSpecEventParamV0 is an XDR Struct defined as:\n\n```text struct SCSpecEventParamV0 { string doc; string name<30>; SCSpecTypeDef type; SCSpecEventParamLocationV0 location; }; ```", + "type": "object", + "required": [ + "doc", + "location", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "location": { + "$ref": "#/definitions/ScSpecEventParamLocationV0" + }, + "name": { + "$ref": "#/definitions/StringM<30>" + }, + "type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecEventV0": { + "description": "ScSpecEventV0 is an XDR Struct defined as:\n\n```text struct SCSpecEventV0 { string doc; string lib<80>; SCSymbol name; SCSymbol prefixTopics<2>; SCSpecEventParamV0 params<>; SCSpecEventDataFormat dataFormat; }; ```", + "type": "object", + "required": [ + "data_format", + "doc", + "lib", + "name", + "params", + "prefix_topics" + ], + "properties": { + "data_format": { + "$ref": "#/definitions/ScSpecEventDataFormat" + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/ScSymbol" + }, + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecEventParamV0" + }, + "maxItems": 4294967295 + }, + "prefix_topics": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSymbol" + }, + "maxItems": 2 + } + } + }, + "ScSpecFunctionInputV0": { + "description": "ScSpecFunctionInputV0 is an XDR Struct defined as:\n\n```text struct SCSpecFunctionInputV0 { string doc; string name<30>; SCSpecTypeDef type; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<30>" + }, + "type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecFunctionV0": { + "description": "ScSpecFunctionV0 is an XDR Struct defined as:\n\n```text struct SCSpecFunctionV0 { string doc; SCSymbol name; SCSpecFunctionInputV0 inputs<>; SCSpecTypeDef outputs<1>; }; ```", + "type": "object", + "required": [ + "doc", + "inputs", + "name", + "outputs" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecFunctionInputV0" + }, + "maxItems": 4294967295 + }, + "name": { + "$ref": "#/definitions/ScSymbol" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "maxItems": 1 + } + } + }, + "ScSpecTypeBytesN": { + "description": "ScSpecTypeBytesN is an XDR Struct defined as:\n\n```text struct SCSpecTypeBytesN { uint32 n; }; ```", + "type": "object", + "required": [ + "n" + ], + "properties": { + "n": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ScSpecTypeDef": { + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", + "oneOf": [ + { + "type": "string", + "enum": [ + "val", + "bool", + "void", + "error", + "u32", + "i32", + "u64", + "i64", + "timepoint", + "duration", + "u128", + "i128", + "u256", + "i256", + "bytes", + "string", + "symbol", + "address", + "muxed_address" + ] + }, + { + "type": "object", + "required": [ + "option" + ], + "properties": { + "option": { + "$ref": "#/definitions/ScSpecTypeOption" + } + } + }, + { + "type": "object", + "required": [ + "result" + ], + "properties": { + "result": { + "$ref": "#/definitions/ScSpecTypeResult" + } + } + }, + { + "type": "object", + "required": [ + "vec" + ], + "properties": { + "vec": { + "$ref": "#/definitions/ScSpecTypeVec" + } + } + }, + { + "type": "object", + "required": [ + "map" + ], + "properties": { + "map": { + "$ref": "#/definitions/ScSpecTypeMap" + } + } + }, + { + "type": "object", + "required": [ + "tuple" + ], + "properties": { + "tuple": { + "$ref": "#/definitions/ScSpecTypeTuple" + } + } + }, + { + "type": "object", + "required": [ + "bytes_n" + ], + "properties": { + "bytes_n": { + "$ref": "#/definitions/ScSpecTypeBytesN" + } + } + }, + { + "type": "object", + "required": [ + "udt" + ], + "properties": { + "udt": { + "$ref": "#/definitions/ScSpecTypeUdt" + } + } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } + } + ] + }, + "ScSpecTypeMap": { + "description": "ScSpecTypeMap is an XDR Struct defined as:\n\n```text struct SCSpecTypeMap { SCSpecTypeDef keyType; SCSpecTypeDef valueType; }; ```", + "type": "object", + "required": [ + "key_type", + "value_type" + ], + "properties": { + "key_type": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "value_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecTypeOption": { + "description": "ScSpecTypeOption is an XDR Struct defined as:\n\n```text struct SCSpecTypeOption { SCSpecTypeDef valueType; }; ```", + "type": "object", + "required": [ + "value_type" + ], + "properties": { + "value_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecTypeResult": { + "description": "ScSpecTypeResult is an XDR Struct defined as:\n\n```text struct SCSpecTypeResult { SCSpecTypeDef okType; SCSpecTypeDef errorType; }; ```", + "type": "object", + "required": [ + "error_type", + "ok_type" + ], + "properties": { + "error_type": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "ok_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecTypeTuple": { + "description": "ScSpecTypeTuple is an XDR Struct defined as:\n\n```text struct SCSpecTypeTuple { SCSpecTypeDef valueTypes<12>; }; ```", + "type": "object", + "required": [ + "value_types" + ], + "properties": { + "value_types": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "maxItems": 12 + } + } + }, + "ScSpecTypeUdt": { + "description": "ScSpecTypeUdt is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDT { string name<60>; }; ```", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecTypeVec": { + "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", + "type": "object", + "required": [ + "element_type" + ], + "properties": { + "element_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecUdtEnumCaseV0": { + "description": "ScSpecUdtEnumCaseV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTEnumCaseV0 { string doc; string name<60>; uint32 value; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "value" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + }, + "value": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ScSpecUdtEnumV0": { + "description": "ScSpecUdtEnumV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTEnumV0 { string doc; string lib<80>; string name<60>; SCSpecUDTEnumCaseV0 cases<>; }; ```", + "type": "object", + "required": [ + "cases", + "doc", + "lib", + "name" + ], + "properties": { + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtEnumCaseV0" + }, + "maxItems": 4294967295 + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtErrorEnumCaseV0": { + "description": "ScSpecUdtErrorEnumCaseV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTErrorEnumCaseV0 { string doc; string name<60>; uint32 value; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "value" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + }, + "value": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ScSpecUdtErrorEnumV0": { + "description": "ScSpecUdtErrorEnumV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTErrorEnumV0 { string doc; string lib<80>; string name<60>; SCSpecUDTErrorEnumCaseV0 cases<>; }; ```", + "type": "object", + "required": [ + "cases", + "doc", + "lib", + "name" + ], + "properties": { + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtErrorEnumCaseV0" + }, + "maxItems": 4294967295 + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtStructFieldV0": { + "description": "ScSpecUdtStructFieldV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTStructFieldV0 { string doc; string name<30>; SCSpecTypeDef type; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<30>" + }, + "type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecUdtStructV0": { + "description": "ScSpecUdtStructV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTStructV0 { string doc; string lib<80>; string name<60>; SCSpecUDTStructFieldV0 fields<>; }; ```", + "type": "object", + "required": [ + "doc", + "fields", + "lib", + "name" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtStructFieldV0" + }, + "maxItems": 4294967295 + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtUnionCaseTupleV0": { + "description": "ScSpecUdtUnionCaseTupleV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTUnionCaseTupleV0 { string doc; string name<60>; SCSpecTypeDef type<>; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + }, + "type": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "maxItems": 4294967295 + } + } + }, + "ScSpecUdtUnionCaseV0": { + "description": "ScSpecUdtUnionCaseV0 is an XDR Union defined as:\n\n```text union SCSpecUDTUnionCaseV0 switch (SCSpecUDTUnionCaseV0Kind kind) { case SC_SPEC_UDT_UNION_CASE_VOID_V0: SCSpecUDTUnionCaseVoidV0 voidCase; case SC_SPEC_UDT_UNION_CASE_TUPLE_V0: SCSpecUDTUnionCaseTupleV0 tupleCase; }; ```", + "oneOf": [ + { + "type": "object", + "required": [ + "void_v0" + ], + "properties": { + "void_v0": { + "$ref": "#/definitions/ScSpecUdtUnionCaseVoidV0" + } + } + }, + { + "type": "object", + "required": [ + "tuple_v0" + ], + "properties": { + "tuple_v0": { + "$ref": "#/definitions/ScSpecUdtUnionCaseTupleV0" + } + } + } + ] + }, + "ScSpecUdtUnionCaseVoidV0": { + "description": "ScSpecUdtUnionCaseVoidV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTUnionCaseVoidV0 { string doc; string name<60>; }; ```", + "type": "object", + "required": [ + "doc", + "name" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtUnionV0": { + "description": "ScSpecUdtUnionV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTUnionV0 { string doc; string lib<80>; string name<60>; SCSpecUDTUnionCaseV0 cases<>; }; ```", + "type": "object", + "required": [ + "cases", + "doc", + "lib", + "name" + ], + "properties": { + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtUnionCaseV0" + }, + "maxItems": 4294967295 + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSymbol": { + "description": "ScSymbol is an XDR Typedef defined as:\n\n```text typedef string SCSymbol; ```", + "$ref": "#/definitions/StringM<32>" + }, + "StringM<1024>": { + "type": "string", + "maxLength": 1024 + }, + "StringM<30>": { + "type": "string", + "maxLength": 30 + }, + "StringM<32>": { + "type": "string", + "maxLength": 32 + }, + "StringM<60>": { + "type": "string", + "maxLength": 60 + }, + "StringM<80>": { + "type": "string", + "maxLength": 80 + } + } +} \ No newline at end of file diff --git a/xdr-json/ScSpecEntryV2Body.json b/xdr-json/ScSpecEntryV2Body.json new file mode 100644 index 00000000..fd2826a0 --- /dev/null +++ b/xdr-json/ScSpecEntryV2Body.json @@ -0,0 +1,719 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ScSpecEntryV2Body", + "description": "ScSpecEntryV2Body is an XDR NestedUnion defined as:\n\n```text union switch (SCSpecEntryKind kind) { case SC_SPEC_ENTRY_FUNCTION_V0: SCSpecFunctionV0 functionV0; case SC_SPEC_ENTRY_UDT_STRUCT_V0: SCSpecUDTStructV0 udtStructV0; case SC_SPEC_ENTRY_UDT_UNION_V0: SCSpecUDTUnionV0 udtUnionV0; case SC_SPEC_ENTRY_UDT_ENUM_V0: SCSpecUDTEnumV0 udtEnumV0; case SC_SPEC_ENTRY_UDT_ERROR_ENUM_V0: SCSpecUDTErrorEnumV0 udtErrorEnumV0; case SC_SPEC_ENTRY_EVENT_V0: SCSpecEventV0 eventV0; } ```", + "oneOf": [ + { + "type": "object", + "required": [ + "function_v0" + ], + "properties": { + "function_v0": { + "$ref": "#/definitions/ScSpecFunctionV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_struct_v0" + ], + "properties": { + "udt_struct_v0": { + "$ref": "#/definitions/ScSpecUdtStructV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_union_v0" + ], + "properties": { + "udt_union_v0": { + "$ref": "#/definitions/ScSpecUdtUnionV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_enum_v0" + ], + "properties": { + "udt_enum_v0": { + "$ref": "#/definitions/ScSpecUdtEnumV0" + } + } + }, + { + "type": "object", + "required": [ + "udt_error_enum_v0" + ], + "properties": { + "udt_error_enum_v0": { + "$ref": "#/definitions/ScSpecUdtErrorEnumV0" + } + } + }, + { + "type": "object", + "required": [ + "event_v0" + ], + "properties": { + "event_v0": { + "$ref": "#/definitions/ScSpecEventV0" + } + } + } + ], + "properties": { + "$schema": { + "type": "string" + } + }, + "unevaluatedProperties": false, + "definitions": { + "ScSpecEventDataFormat": { + "description": "ScSpecEventDataFormat is an XDR Enum defined as:\n\n```text enum SCSpecEventDataFormat { SC_SPEC_EVENT_DATA_FORMAT_SINGLE_VALUE = 0, SC_SPEC_EVENT_DATA_FORMAT_VEC = 1, SC_SPEC_EVENT_DATA_FORMAT_MAP = 2 }; ```", + "type": "string", + "enum": [ + "single_value", + "vec", + "map" + ] + }, + "ScSpecEventParamLocationV0": { + "description": "ScSpecEventParamLocationV0 is an XDR Enum defined as:\n\n```text enum SCSpecEventParamLocationV0 { SC_SPEC_EVENT_PARAM_LOCATION_DATA = 0, SC_SPEC_EVENT_PARAM_LOCATION_TOPIC_LIST = 1 }; ```", + "type": "string", + "enum": [ + "data", + "topic_list" + ] + }, + "ScSpecEventParamV0": { + "description": "ScSpecEventParamV0 is an XDR Struct defined as:\n\n```text struct SCSpecEventParamV0 { string doc; string name<30>; SCSpecTypeDef type; SCSpecEventParamLocationV0 location; }; ```", + "type": "object", + "required": [ + "doc", + "location", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "location": { + "$ref": "#/definitions/ScSpecEventParamLocationV0" + }, + "name": { + "$ref": "#/definitions/StringM<30>" + }, + "type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecEventV0": { + "description": "ScSpecEventV0 is an XDR Struct defined as:\n\n```text struct SCSpecEventV0 { string doc; string lib<80>; SCSymbol name; SCSymbol prefixTopics<2>; SCSpecEventParamV0 params<>; SCSpecEventDataFormat dataFormat; }; ```", + "type": "object", + "required": [ + "data_format", + "doc", + "lib", + "name", + "params", + "prefix_topics" + ], + "properties": { + "data_format": { + "$ref": "#/definitions/ScSpecEventDataFormat" + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/ScSymbol" + }, + "params": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecEventParamV0" + }, + "maxItems": 4294967295 + }, + "prefix_topics": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSymbol" + }, + "maxItems": 2 + } + } + }, + "ScSpecFunctionInputV0": { + "description": "ScSpecFunctionInputV0 is an XDR Struct defined as:\n\n```text struct SCSpecFunctionInputV0 { string doc; string name<30>; SCSpecTypeDef type; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<30>" + }, + "type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecFunctionV0": { + "description": "ScSpecFunctionV0 is an XDR Struct defined as:\n\n```text struct SCSpecFunctionV0 { string doc; SCSymbol name; SCSpecFunctionInputV0 inputs<>; SCSpecTypeDef outputs<1>; }; ```", + "type": "object", + "required": [ + "doc", + "inputs", + "name", + "outputs" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "inputs": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecFunctionInputV0" + }, + "maxItems": 4294967295 + }, + "name": { + "$ref": "#/definitions/ScSymbol" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "maxItems": 1 + } + } + }, + "ScSpecTypeBytesN": { + "description": "ScSpecTypeBytesN is an XDR Struct defined as:\n\n```text struct SCSpecTypeBytesN { uint32 n; }; ```", + "type": "object", + "required": [ + "n" + ], + "properties": { + "n": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ScSpecTypeDef": { + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", + "oneOf": [ + { + "type": "string", + "enum": [ + "val", + "bool", + "void", + "error", + "u32", + "i32", + "u64", + "i64", + "timepoint", + "duration", + "u128", + "i128", + "u256", + "i256", + "bytes", + "string", + "symbol", + "address", + "muxed_address" + ] + }, + { + "type": "object", + "required": [ + "option" + ], + "properties": { + "option": { + "$ref": "#/definitions/ScSpecTypeOption" + } + } + }, + { + "type": "object", + "required": [ + "result" + ], + "properties": { + "result": { + "$ref": "#/definitions/ScSpecTypeResult" + } + } + }, + { + "type": "object", + "required": [ + "vec" + ], + "properties": { + "vec": { + "$ref": "#/definitions/ScSpecTypeVec" + } + } + }, + { + "type": "object", + "required": [ + "map" + ], + "properties": { + "map": { + "$ref": "#/definitions/ScSpecTypeMap" + } + } + }, + { + "type": "object", + "required": [ + "tuple" + ], + "properties": { + "tuple": { + "$ref": "#/definitions/ScSpecTypeTuple" + } + } + }, + { + "type": "object", + "required": [ + "bytes_n" + ], + "properties": { + "bytes_n": { + "$ref": "#/definitions/ScSpecTypeBytesN" + } + } + }, + { + "type": "object", + "required": [ + "udt" + ], + "properties": { + "udt": { + "$ref": "#/definitions/ScSpecTypeUdt" + } + } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } + } + ] + }, + "ScSpecTypeMap": { + "description": "ScSpecTypeMap is an XDR Struct defined as:\n\n```text struct SCSpecTypeMap { SCSpecTypeDef keyType; SCSpecTypeDef valueType; }; ```", + "type": "object", + "required": [ + "key_type", + "value_type" + ], + "properties": { + "key_type": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "value_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecTypeOption": { + "description": "ScSpecTypeOption is an XDR Struct defined as:\n\n```text struct SCSpecTypeOption { SCSpecTypeDef valueType; }; ```", + "type": "object", + "required": [ + "value_type" + ], + "properties": { + "value_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecTypeResult": { + "description": "ScSpecTypeResult is an XDR Struct defined as:\n\n```text struct SCSpecTypeResult { SCSpecTypeDef okType; SCSpecTypeDef errorType; }; ```", + "type": "object", + "required": [ + "error_type", + "ok_type" + ], + "properties": { + "error_type": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "ok_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecTypeTuple": { + "description": "ScSpecTypeTuple is an XDR Struct defined as:\n\n```text struct SCSpecTypeTuple { SCSpecTypeDef valueTypes<12>; }; ```", + "type": "object", + "required": [ + "value_types" + ], + "properties": { + "value_types": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "maxItems": 12 + } + } + }, + "ScSpecTypeUdt": { + "description": "ScSpecTypeUdt is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDT { string name<60>; }; ```", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecTypeVec": { + "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", + "type": "object", + "required": [ + "element_type" + ], + "properties": { + "element_type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecUdtEnumCaseV0": { + "description": "ScSpecUdtEnumCaseV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTEnumCaseV0 { string doc; string name<60>; uint32 value; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "value" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + }, + "value": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ScSpecUdtEnumV0": { + "description": "ScSpecUdtEnumV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTEnumV0 { string doc; string lib<80>; string name<60>; SCSpecUDTEnumCaseV0 cases<>; }; ```", + "type": "object", + "required": [ + "cases", + "doc", + "lib", + "name" + ], + "properties": { + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtEnumCaseV0" + }, + "maxItems": 4294967295 + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtErrorEnumCaseV0": { + "description": "ScSpecUdtErrorEnumCaseV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTErrorEnumCaseV0 { string doc; string name<60>; uint32 value; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "value" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + }, + "value": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + } + }, + "ScSpecUdtErrorEnumV0": { + "description": "ScSpecUdtErrorEnumV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTErrorEnumV0 { string doc; string lib<80>; string name<60>; SCSpecUDTErrorEnumCaseV0 cases<>; }; ```", + "type": "object", + "required": [ + "cases", + "doc", + "lib", + "name" + ], + "properties": { + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtErrorEnumCaseV0" + }, + "maxItems": 4294967295 + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtStructFieldV0": { + "description": "ScSpecUdtStructFieldV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTStructFieldV0 { string doc; string name<30>; SCSpecTypeDef type; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<30>" + }, + "type": { + "$ref": "#/definitions/ScSpecTypeDef" + } + } + }, + "ScSpecUdtStructV0": { + "description": "ScSpecUdtStructV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTStructV0 { string doc; string lib<80>; string name<60>; SCSpecUDTStructFieldV0 fields<>; }; ```", + "type": "object", + "required": [ + "doc", + "fields", + "lib", + "name" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtStructFieldV0" + }, + "maxItems": 4294967295 + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtUnionCaseTupleV0": { + "description": "ScSpecUdtUnionCaseTupleV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTUnionCaseTupleV0 { string doc; string name<60>; SCSpecTypeDef type<>; }; ```", + "type": "object", + "required": [ + "doc", + "name", + "type" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + }, + "type": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecTypeDef" + }, + "maxItems": 4294967295 + } + } + }, + "ScSpecUdtUnionCaseV0": { + "description": "ScSpecUdtUnionCaseV0 is an XDR Union defined as:\n\n```text union SCSpecUDTUnionCaseV0 switch (SCSpecUDTUnionCaseV0Kind kind) { case SC_SPEC_UDT_UNION_CASE_VOID_V0: SCSpecUDTUnionCaseVoidV0 voidCase; case SC_SPEC_UDT_UNION_CASE_TUPLE_V0: SCSpecUDTUnionCaseTupleV0 tupleCase; }; ```", + "oneOf": [ + { + "type": "object", + "required": [ + "void_v0" + ], + "properties": { + "void_v0": { + "$ref": "#/definitions/ScSpecUdtUnionCaseVoidV0" + } + } + }, + { + "type": "object", + "required": [ + "tuple_v0" + ], + "properties": { + "tuple_v0": { + "$ref": "#/definitions/ScSpecUdtUnionCaseTupleV0" + } + } + } + ] + }, + "ScSpecUdtUnionCaseVoidV0": { + "description": "ScSpecUdtUnionCaseVoidV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTUnionCaseVoidV0 { string doc; string name<60>; }; ```", + "type": "object", + "required": [ + "doc", + "name" + ], + "properties": { + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSpecUdtUnionV0": { + "description": "ScSpecUdtUnionV0 is an XDR Struct defined as:\n\n```text struct SCSpecUDTUnionV0 { string doc; string lib<80>; string name<60>; SCSpecUDTUnionCaseV0 cases<>; }; ```", + "type": "object", + "required": [ + "cases", + "doc", + "lib", + "name" + ], + "properties": { + "cases": { + "type": "array", + "items": { + "$ref": "#/definitions/ScSpecUdtUnionCaseV0" + }, + "maxItems": 4294967295 + }, + "doc": { + "$ref": "#/definitions/StringM<1024>" + }, + "lib": { + "$ref": "#/definitions/StringM<80>" + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, + "ScSymbol": { + "description": "ScSymbol is an XDR Typedef defined as:\n\n```text typedef string SCSymbol; ```", + "$ref": "#/definitions/StringM<32>" + }, + "StringM<1024>": { + "type": "string", + "maxLength": 1024 + }, + "StringM<30>": { + "type": "string", + "maxLength": 30 + }, + "StringM<32>": { + "type": "string", + "maxLength": 32 + }, + "StringM<60>": { + "type": "string", + "maxLength": 60 + }, + "StringM<80>": { + "type": "string", + "maxLength": 80 + } + } +} \ No newline at end of file diff --git a/xdr-json/ScSpecEventParamV0.json b/xdr-json/ScSpecEventParamV0.json index eb5ed50c..b281f74d 100644 --- a/xdr-json/ScSpecEventParamV0.json +++ b/xdr-json/ScSpecEventParamV0.json @@ -51,7 +51,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -153,6 +153,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -228,6 +239,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecEventV0.json b/xdr-json/ScSpecEventV0.json index 8b4c64ce..a6ecd3fa 100644 --- a/xdr-json/ScSpecEventV0.json +++ b/xdr-json/ScSpecEventV0.json @@ -100,7 +100,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -202,6 +202,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -277,6 +288,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecFunctionInputV0.json b/xdr-json/ScSpecFunctionInputV0.json index 1063ca41..7b0eee08 100644 --- a/xdr-json/ScSpecFunctionInputV0.json +++ b/xdr-json/ScSpecFunctionInputV0.json @@ -39,7 +39,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -141,6 +141,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -216,6 +227,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecFunctionV0.json b/xdr-json/ScSpecFunctionV0.json index ea6fff62..a6adcb28 100644 --- a/xdr-json/ScSpecFunctionV0.json +++ b/xdr-json/ScSpecFunctionV0.json @@ -71,7 +71,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -173,6 +173,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -248,6 +259,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecType.json b/xdr-json/ScSpecType.json index 18654db8..95d25f23 100644 --- a/xdr-json/ScSpecType.json +++ b/xdr-json/ScSpecType.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "ScSpecType", - "description": "ScSpecType is an XDR Enum defined as:\n\n```text enum SCSpecType { SC_SPEC_TYPE_VAL = 0,\n\n// Types with no parameters. SC_SPEC_TYPE_BOOL = 1, SC_SPEC_TYPE_VOID = 2, SC_SPEC_TYPE_ERROR = 3, SC_SPEC_TYPE_U32 = 4, SC_SPEC_TYPE_I32 = 5, SC_SPEC_TYPE_U64 = 6, SC_SPEC_TYPE_I64 = 7, SC_SPEC_TYPE_TIMEPOINT = 8, SC_SPEC_TYPE_DURATION = 9, SC_SPEC_TYPE_U128 = 10, SC_SPEC_TYPE_I128 = 11, SC_SPEC_TYPE_U256 = 12, SC_SPEC_TYPE_I256 = 13, SC_SPEC_TYPE_BYTES = 14, SC_SPEC_TYPE_STRING = 16, SC_SPEC_TYPE_SYMBOL = 17, SC_SPEC_TYPE_ADDRESS = 19, SC_SPEC_TYPE_MUXED_ADDRESS = 20,\n\n// Types with parameters. SC_SPEC_TYPE_OPTION = 1000, SC_SPEC_TYPE_RESULT = 1001, SC_SPEC_TYPE_VEC = 1002, SC_SPEC_TYPE_MAP = 1004, SC_SPEC_TYPE_TUPLE = 1005, SC_SPEC_TYPE_BYTES_N = 1006,\n\n// User defined types. SC_SPEC_TYPE_UDT = 2000 }; ```", + "description": "ScSpecType is an XDR Enum defined as:\n\n```text enum SCSpecType { SC_SPEC_TYPE_VAL = 0,\n\n// Types with no parameters. SC_SPEC_TYPE_BOOL = 1, SC_SPEC_TYPE_VOID = 2, SC_SPEC_TYPE_ERROR = 3, SC_SPEC_TYPE_U32 = 4, SC_SPEC_TYPE_I32 = 5, SC_SPEC_TYPE_U64 = 6, SC_SPEC_TYPE_I64 = 7, SC_SPEC_TYPE_TIMEPOINT = 8, SC_SPEC_TYPE_DURATION = 9, SC_SPEC_TYPE_U128 = 10, SC_SPEC_TYPE_I128 = 11, SC_SPEC_TYPE_U256 = 12, SC_SPEC_TYPE_I256 = 13, SC_SPEC_TYPE_BYTES = 14, SC_SPEC_TYPE_STRING = 16, SC_SPEC_TYPE_SYMBOL = 17, SC_SPEC_TYPE_ADDRESS = 19, SC_SPEC_TYPE_MUXED_ADDRESS = 20,\n\n// Types with parameters. SC_SPEC_TYPE_OPTION = 1000, SC_SPEC_TYPE_RESULT = 1001, SC_SPEC_TYPE_VEC = 1002, SC_SPEC_TYPE_MAP = 1004, SC_SPEC_TYPE_TUPLE = 1005, SC_SPEC_TYPE_BYTES_N = 1006,\n\n// User defined types. SC_SPEC_TYPE_UDT = 2000, SC_SPEC_TYPE_UDT_V2 = 2001 }; ```", "type": "string", "enum": [ "val", @@ -29,6 +29,7 @@ "map", "tuple", "bytes_n", - "udt" + "udt", + "udt_v2" ] } \ No newline at end of file diff --git a/xdr-json/ScSpecTypeDef.json b/xdr-json/ScSpecTypeDef.json index a0d492a5..862d03b0 100644 --- a/xdr-json/ScSpecTypeDef.json +++ b/xdr-json/ScSpecTypeDef.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "ScSpecTypeDef", - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -103,6 +103,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ], "properties": { @@ -127,7 +138,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -229,6 +240,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -304,6 +326,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecTypeMap.json b/xdr-json/ScSpecTypeMap.json index 38f09bc7..b2ef1598 100644 --- a/xdr-json/ScSpecTypeMap.json +++ b/xdr-json/ScSpecTypeMap.json @@ -35,7 +35,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -137,6 +137,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -212,6 +223,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecTypeOption.json b/xdr-json/ScSpecTypeOption.json index 74f48476..793ec22d 100644 --- a/xdr-json/ScSpecTypeOption.json +++ b/xdr-json/ScSpecTypeOption.json @@ -31,7 +31,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -133,6 +133,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -208,6 +219,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecTypeResult.json b/xdr-json/ScSpecTypeResult.json index 5360f226..2f8ad612 100644 --- a/xdr-json/ScSpecTypeResult.json +++ b/xdr-json/ScSpecTypeResult.json @@ -35,7 +35,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -137,6 +137,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -212,6 +223,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecTypeTuple.json b/xdr-json/ScSpecTypeTuple.json index 3912f671..419978f5 100644 --- a/xdr-json/ScSpecTypeTuple.json +++ b/xdr-json/ScSpecTypeTuple.json @@ -35,7 +35,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -137,6 +137,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -212,6 +223,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecTypeUdtv2.json b/xdr-json/ScSpecTypeUdtv2.json new file mode 100644 index 00000000..818183c3 --- /dev/null +++ b/xdr-json/ScSpecTypeUdtv2.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ScSpecTypeUdtv2", + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "$schema": { + "type": "string" + }, + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + }, + "unevaluatedProperties": false, + "definitions": { + "StringM<60>": { + "type": "string", + "maxLength": 60 + } + } +} \ No newline at end of file diff --git a/xdr-json/ScSpecTypeVec.json b/xdr-json/ScSpecTypeVec.json index abced42f..ff7229d0 100644 --- a/xdr-json/ScSpecTypeVec.json +++ b/xdr-json/ScSpecTypeVec.json @@ -31,7 +31,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -133,6 +133,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -208,6 +219,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecUdtStructFieldV0.json b/xdr-json/ScSpecUdtStructFieldV0.json index ef690b09..cf4661b7 100644 --- a/xdr-json/ScSpecUdtStructFieldV0.json +++ b/xdr-json/ScSpecUdtStructFieldV0.json @@ -39,7 +39,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -141,6 +141,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -216,6 +227,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecUdtStructV0.json b/xdr-json/ScSpecUdtStructV0.json index 35db4da9..bb849929 100644 --- a/xdr-json/ScSpecUdtStructV0.json +++ b/xdr-json/ScSpecUdtStructV0.json @@ -47,7 +47,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -149,6 +149,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -224,6 +235,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecUdtUnionCaseTupleV0.json b/xdr-json/ScSpecUdtUnionCaseTupleV0.json index 7f776df9..8f09b043 100644 --- a/xdr-json/ScSpecUdtUnionCaseTupleV0.json +++ b/xdr-json/ScSpecUdtUnionCaseTupleV0.json @@ -43,7 +43,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -145,6 +145,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -220,6 +231,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecUdtUnionCaseV0.json b/xdr-json/ScSpecUdtUnionCaseV0.json index 697fd4f6..6431ddff 100644 --- a/xdr-json/ScSpecUdtUnionCaseV0.json +++ b/xdr-json/ScSpecUdtUnionCaseV0.json @@ -48,7 +48,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -150,6 +150,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -225,6 +236,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-json/ScSpecUdtUnionV0.json b/xdr-json/ScSpecUdtUnionV0.json index 74d90ee6..cb6411c5 100644 --- a/xdr-json/ScSpecUdtUnionV0.json +++ b/xdr-json/ScSpecUdtUnionV0.json @@ -47,7 +47,7 @@ } }, "ScSpecTypeDef": { - "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; }; ```", + "description": "ScSpecTypeDef is an XDR Union defined as:\n\n```text union SCSpecTypeDef switch (SCSpecType type) { case SC_SPEC_TYPE_VAL: case SC_SPEC_TYPE_BOOL: case SC_SPEC_TYPE_VOID: case SC_SPEC_TYPE_ERROR: case SC_SPEC_TYPE_U32: case SC_SPEC_TYPE_I32: case SC_SPEC_TYPE_U64: case SC_SPEC_TYPE_I64: case SC_SPEC_TYPE_TIMEPOINT: case SC_SPEC_TYPE_DURATION: case SC_SPEC_TYPE_U128: case SC_SPEC_TYPE_I128: case SC_SPEC_TYPE_U256: case SC_SPEC_TYPE_I256: case SC_SPEC_TYPE_BYTES: case SC_SPEC_TYPE_STRING: case SC_SPEC_TYPE_SYMBOL: case SC_SPEC_TYPE_ADDRESS: case SC_SPEC_TYPE_MUXED_ADDRESS: void; case SC_SPEC_TYPE_OPTION: SCSpecTypeOption option; case SC_SPEC_TYPE_RESULT: SCSpecTypeResult result; case SC_SPEC_TYPE_VEC: SCSpecTypeVec vec; case SC_SPEC_TYPE_MAP: SCSpecTypeMap map; case SC_SPEC_TYPE_TUPLE: SCSpecTypeTuple tuple; case SC_SPEC_TYPE_BYTES_N: SCSpecTypeBytesN bytesN; case SC_SPEC_TYPE_UDT: SCSpecTypeUDT udt; case SC_SPEC_TYPE_UDT_V2: SCSpecTypeUDTV2 udtV2; }; ```", "oneOf": [ { "type": "string", @@ -149,6 +149,17 @@ "$ref": "#/definitions/ScSpecTypeUdt" } } + }, + { + "type": "object", + "required": [ + "udt_v2" + ], + "properties": { + "udt_v2": { + "$ref": "#/definitions/ScSpecTypeUdtv2" + } + } } ] }, @@ -224,6 +235,29 @@ } } }, + "ScSpecTypeUdtv2": { + "description": "ScSpecTypeUdtv2 is an XDR Struct defined as:\n\n```text struct SCSpecTypeUDTV2 { string name<60>; opaque id[SC_SPEC_ID_LEN]; }; ```", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 8, + "minItems": 8 + }, + "name": { + "$ref": "#/definitions/StringM<60>" + } + } + }, "ScSpecTypeVec": { "description": "ScSpecTypeVec is an XDR Struct defined as:\n\n```text struct SCSpecTypeVec { SCSpecTypeDef elementType; }; ```", "type": "object", diff --git a/xdr-version b/xdr-version index 0b697893..7429d7e5 100644 --- a/xdr-version +++ b/xdr-version @@ -1 +1 @@ -9c9c145953e80990d6ff1ae3a6a973a0ce6d0694 \ No newline at end of file +f34d409475c0a1ecf262b502c7d4bffe505c0fcd \ No newline at end of file