From e32a88ab67325a27863b8fbf02e5ac0c186e34fd Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:16:39 +0000 Subject: [PATCH 01/41] reduce qualified udt names in contract info output --- cmd/crates/soroban-spec-tools/src/lib.rs | 1 + cmd/crates/soroban-spec-tools/src/reduce.rs | 465 ++++++++++++++++++ .../src/commands/contract/info/interface.rs | 34 +- 3 files changed, 497 insertions(+), 3 deletions(-) create mode 100644 cmd/crates/soroban-spec-tools/src/reduce.rs diff --git a/cmd/crates/soroban-spec-tools/src/lib.rs b/cmd/crates/soroban-spec-tools/src/lib.rs index 29beda432d..426fb46e82 100644 --- a/cmd/crates/soroban-spec-tools/src/lib.rs +++ b/cmd/crates/soroban-spec-tools/src/lib.rs @@ -17,6 +17,7 @@ use stellar_xdr::{ pub mod contract; pub mod event; +pub mod reduce; pub mod test_utils; pub mod utils; mod verify; diff --git a/cmd/crates/soroban-spec-tools/src/reduce.rs b/cmd/crates/soroban-spec-tools/src/reduce.rs new file mode 100644 index 0000000000..0c0de1beb4 --- /dev/null +++ b/cmd/crates/soroban-spec-tools/src/reduce.rs @@ -0,0 +1,465 @@ +//! Reduce the fully qualified user-defined type names that appear in a contract +//! spec down to short, human-friendly names for display and code generation. +//! +//! Contract specs built with a soroban-sdk that names user-defined types by +//! their fully qualified Rust path (see +//! ) carry names such as +//! `my_contract::inner::State`. Those names are unambiguous but noisy, and the +//! `::` separator is not a valid identifier, so the Rust and TypeScript binding +//! generators cannot use them verbatim. This module rewrites every user-defined +//! type name — both where the type is declared and everywhere it is referenced +//! — to its final path segment (`State`). When two distinct qualified names +//! reduce to the same short name they are disambiguated with a numeric suffix +//! (`State`, `State1`), and the collision is reported so a caller can warn. + +use std::collections::{BTreeMap, HashSet}; + +use stellar_xdr::{ + ScSpecEntry, ScSpecEventV0, ScSpecFunctionV0, ScSpecTypeDef, ScSpecTypeMap, ScSpecTypeOption, + ScSpecTypeResult, ScSpecTypeTuple, ScSpecTypeUdt, ScSpecTypeVec, ScSpecUdtEnumV0, + ScSpecUdtErrorEnumV0, ScSpecUdtStructV0, ScSpecUdtUnionCaseV0, ScSpecUdtUnionV0, +}; + +/// A single user-defined type name that was rewritten during reduction. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Rename { + /// The original, fully qualified name (e.g. `my_contract::inner::State`). + pub from: String, + /// The reduced name it was rewritten to (e.g. `State` or `State1`). + pub to: String, +} + +/// A group of distinct qualified names that share the same short name and so +/// had to be disambiguated with numeric suffixes. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Collision { + /// The short name they all reduced to before suffixing (e.g. `State`). + pub short: String, + /// The colliding members, each with the suffixed name it received. + pub members: Vec, +} + +/// The record of what `reduce_udt_names` changed. +#[derive(Debug, Clone, Default, PartialEq, Eq)] +pub struct Reduction { + /// Every type whose name changed, in declaration order. + pub renames: Vec, + /// The subset of renames that were forced to a numeric suffix because + /// another qualified type reduced to the same short name. + pub collisions: Vec, +} + +impl Reduction { + /// Whether any name was rewritten. + #[must_use] + pub fn is_empty(&self) -> bool { + self.renames.is_empty() + } +} + +/// The final path segment of a qualified name, i.e. the part after the last +/// `::`. Names without a `::` are returned unchanged. +fn short_name(name: &str) -> &str { + name.rsplit("::").next().unwrap_or(name) +} + +/// Reduce the fully qualified user-defined type names in `spec` to short names, +/// returning the rewritten spec alongside a report of what changed. A spec that +/// already uses short names (no `::`) is returned unchanged with an empty +/// [`Reduction`]. +#[must_use] +pub fn reduce_udt_names(spec: &[ScSpecEntry]) -> (Vec, Reduction) { + let declared = declared_udt_names(spec); + let (map, reduction) = build_mapping(&declared); + + let reduced = spec.iter().map(|e| rewrite_entry(e, &map)).collect(); + (reduced, reduction) +} + +/// The names of every user-defined type declared in the spec, in declaration +/// order and de-duplicated. +fn declared_udt_names(spec: &[ScSpecEntry]) -> Vec { + let mut names = Vec::new(); + let mut seen = HashSet::new(); + let mut push = |name: String| { + if seen.insert(name.clone()) { + names.push(name); + } + }; + for entry in spec { + match entry { + ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { name, .. }) + | ScSpecEntry::UdtUnionV0(ScSpecUdtUnionV0 { name, .. }) + | ScSpecEntry::UdtEnumV0(ScSpecUdtEnumV0 { name, .. }) + | ScSpecEntry::UdtErrorEnumV0(ScSpecUdtErrorEnumV0 { name, .. }) => { + push(name.to_utf8_string_lossy()); + } + ScSpecEntry::FunctionV0(_) | ScSpecEntry::EventV0(_) => {} + } + } + names +} + +/// Build the rename map from qualified name to reduced name, grouping by short +/// name so collisions can be disambiguated deterministically. +fn build_mapping(declared: &[String]) -> (BTreeMap, Reduction) { + // Group the declared names by their short name. `BTreeMap`/sorted members + // keep suffix assignment stable across runs. + let mut groups: BTreeMap<&str, Vec<&String>> = BTreeMap::new(); + for name in declared { + groups.entry(short_name(name)).or_default().push(name); + } + for members in groups.values_mut() { + members.sort(); + } + + let mut map = BTreeMap::new(); + let mut renames = Vec::new(); + let mut collisions = Vec::new(); + // Every reduced name handed out, so a numeric suffix never lands on a name + // already taken by another (possibly unrelated) type. + let mut used: HashSet = HashSet::new(); + + for (short, members) in &groups { + let collision = members.len() > 1; + let mut collision_members = Vec::new(); + for (i, full) in members.iter().enumerate() { + let mut n = i; + let mut candidate = if i == 0 { + (*short).to_string() + } else { + format!("{short}{n}") + }; + while used.contains(&candidate) { + n += 1; + candidate = format!("{short}{n}"); + } + used.insert(candidate.clone()); + map.insert((*full).clone(), candidate.clone()); + if **full != candidate { + let rename = Rename { + from: (*full).clone(), + to: candidate.clone(), + }; + renames.push(rename.clone()); + if collision { + collision_members.push(rename); + } + } else if collision { + collision_members.push(Rename { + from: (*full).clone(), + to: candidate, + }); + } + } + if collision { + collisions.push(Collision { + short: (*short).to_string(), + members: collision_members, + }); + } + } + + // Report renames in the spec's declaration order rather than sorted order. + renames.sort_by_key(|r| { + declared + .iter() + .position(|d| *d == r.from) + .unwrap_or(usize::MAX) + }); + + ( + map, + Reduction { + renames, + collisions, + }, + ) +} + +/// Look up the reduced name for a referenced type. A reference to a declared +/// type resolves through the map; a stray qualified name that was never +/// declared still gets its `::` stripped so no invalid identifier leaks into +/// the output. +fn reduced_ref(name: &str, map: &BTreeMap) -> String { + map.get(name) + .cloned() + .unwrap_or_else(|| short_name(name).to_string()) +} + +fn rewrite_entry(entry: &ScSpecEntry, map: &BTreeMap) -> ScSpecEntry { + match entry { + ScSpecEntry::UdtStructV0(s) => { + let mut s = s.clone(); + s.name = rename_udt(&s.name.to_utf8_string_lossy(), map); + s.fields = s + .fields + .iter() + .map(|f| { + let mut f = f.clone(); + f.type_ = rewrite_type(&f.type_, map); + f + }) + .collect::>() + .try_into() + .unwrap_or(s.fields); + ScSpecEntry::UdtStructV0(s) + } + ScSpecEntry::UdtUnionV0(u) => { + let mut u = u.clone(); + u.name = rename_udt(&u.name.to_utf8_string_lossy(), map); + u.cases = u + .cases + .iter() + .map(|c| rewrite_union_case(c, map)) + .collect::>() + .try_into() + .unwrap_or(u.cases); + ScSpecEntry::UdtUnionV0(u) + } + ScSpecEntry::UdtEnumV0(e) => { + let mut e = e.clone(); + e.name = rename_udt(&e.name.to_utf8_string_lossy(), map); + ScSpecEntry::UdtEnumV0(e) + } + ScSpecEntry::UdtErrorEnumV0(e) => { + let mut e = e.clone(); + e.name = rename_udt(&e.name.to_utf8_string_lossy(), map); + ScSpecEntry::UdtErrorEnumV0(e) + } + ScSpecEntry::FunctionV0(f) => { + let ScSpecFunctionV0 { + doc, + name, + inputs, + outputs, + } = f; + let mut f = ScSpecFunctionV0 { + doc: doc.clone(), + name: name.clone(), + inputs: inputs.clone(), + outputs: outputs.clone(), + }; + f.inputs = f + .inputs + .iter() + .map(|i| { + let mut i = i.clone(); + i.type_ = rewrite_type(&i.type_, map); + i + }) + .collect::>() + .try_into() + .unwrap_or(f.inputs); + f.outputs = f + .outputs + .iter() + .map(|o| rewrite_type(o, map)) + .collect::>() + .try_into() + .unwrap_or(f.outputs); + ScSpecEntry::FunctionV0(f) + } + ScSpecEntry::EventV0(e) => { + let ScSpecEventV0 { .. } = e; + let mut e = e.clone(); + e.params = e + .params + .iter() + .map(|p| { + let mut p = p.clone(); + p.type_ = rewrite_type(&p.type_, map); + p + }) + .collect::>() + .try_into() + .unwrap_or(e.params); + ScSpecEntry::EventV0(e) + } + } +} + +fn rewrite_union_case( + case: &ScSpecUdtUnionCaseV0, + map: &BTreeMap, +) -> ScSpecUdtUnionCaseV0 { + match case { + ScSpecUdtUnionCaseV0::VoidV0(_) => case.clone(), + ScSpecUdtUnionCaseV0::TupleV0(t) => { + let mut t = t.clone(); + t.type_ = t + .type_ + .iter() + .map(|ty| rewrite_type(ty, map)) + .collect::>() + .try_into() + .unwrap_or(t.type_); + ScSpecUdtUnionCaseV0::TupleV0(t) + } + } +} + +/// Rewrite a type, recursing into every place a user-defined type can be +/// referenced. +fn rewrite_type(ty: &ScSpecTypeDef, map: &BTreeMap) -> ScSpecTypeDef { + match ty { + ScSpecTypeDef::Udt(ScSpecTypeUdt { name }) => ScSpecTypeDef::Udt(ScSpecTypeUdt { + name: rename_udt(&name.to_utf8_string_lossy(), map), + }), + ScSpecTypeDef::Option(o) => ScSpecTypeDef::Option(Box::new(ScSpecTypeOption { + value_type: Box::new(rewrite_type(&o.value_type, map)), + })), + ScSpecTypeDef::Result(r) => ScSpecTypeDef::Result(Box::new(ScSpecTypeResult { + ok_type: Box::new(rewrite_type(&r.ok_type, map)), + error_type: Box::new(rewrite_type(&r.error_type, map)), + })), + ScSpecTypeDef::Vec(v) => ScSpecTypeDef::Vec(Box::new(ScSpecTypeVec { + element_type: Box::new(rewrite_type(&v.element_type, map)), + })), + ScSpecTypeDef::Map(m) => ScSpecTypeDef::Map(Box::new(ScSpecTypeMap { + key_type: Box::new(rewrite_type(&m.key_type, map)), + value_type: Box::new(rewrite_type(&m.value_type, map)), + })), + ScSpecTypeDef::Tuple(t) => ScSpecTypeDef::Tuple(Box::new(ScSpecTypeTuple { + value_types: t + .value_types + .iter() + .map(|vt| rewrite_type(vt, map)) + .collect::>() + .try_into() + .unwrap_or_else(|_| t.value_types.clone()), + })), + other => other.clone(), + } +} + +/// Rewrite a declaration or reference name to its reduced form as a +/// `StringM<256>`. The reduced name is never longer than the original, so it +/// always fits. +fn rename_udt( + name: &str, + map: &BTreeMap, +) -> stellar_xdr::StringM<{ crate::UDT_NAME_LIMIT }> { + reduced_ref(name, map) + .try_into() + .unwrap_or_else(|_| name.try_into().unwrap_or_default()) +} + +#[cfg(test)] +mod tests { + use super::*; + use stellar_xdr::{ + ScSpecFunctionInputV0, ScSpecTypeUdt, ScSpecUdtEnumV0, ScSpecUdtStructFieldV0, + ScSpecUdtStructV0, StringM, VecM, + }; + + fn udt(name: &str) -> ScSpecTypeDef { + ScSpecTypeDef::Udt(ScSpecTypeUdt { + name: name.try_into().unwrap(), + }) + } + + fn struct_entry(name: &str, field_type: ScSpecTypeDef) -> ScSpecEntry { + ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { + doc: StringM::default(), + lib: StringM::default(), + name: name.try_into().unwrap(), + fields: vec![ScSpecUdtStructFieldV0 { + doc: StringM::default(), + name: "f".try_into().unwrap(), + type_: field_type, + }] + .try_into() + .unwrap(), + }) + } + + fn enum_entry(name: &str) -> ScSpecEntry { + ScSpecEntry::UdtEnumV0(ScSpecUdtEnumV0 { + doc: StringM::default(), + lib: StringM::default(), + name: name.try_into().unwrap(), + cases: VecM::default(), + }) + } + + fn fn_entry(name: &str, input_type: ScSpecTypeDef) -> ScSpecEntry { + ScSpecEntry::FunctionV0(ScSpecFunctionV0 { + doc: StringM::default(), + name: name.try_into().unwrap(), + inputs: vec![ScSpecFunctionInputV0 { + doc: StringM::default(), + name: "arg".try_into().unwrap(), + type_: input_type, + }] + .try_into() + .unwrap(), + outputs: VecM::default(), + }) + } + + fn entry_name(entry: &ScSpecEntry) -> String { + match entry { + ScSpecEntry::UdtStructV0(s) => s.name.to_utf8_string_lossy(), + ScSpecEntry::UdtUnionV0(u) => u.name.to_utf8_string_lossy(), + ScSpecEntry::UdtEnumV0(e) => e.name.to_utf8_string_lossy(), + ScSpecEntry::UdtErrorEnumV0(e) => e.name.to_utf8_string_lossy(), + _ => String::new(), + } + } + + #[test] + fn no_qualified_names_is_a_noop() { + let spec = vec![enum_entry("State"), struct_entry("Point", udt("State"))]; + let (reduced, report) = reduce_udt_names(&spec); + assert!(report.is_empty()); + assert_eq!(reduced, spec); + } + + #[test] + fn shortens_and_rewrites_references() { + let spec = vec![ + enum_entry("my_contract::inner::State"), + fn_entry("run", udt("my_contract::inner::State")), + ]; + let (reduced, report) = reduce_udt_names(&spec); + + assert_eq!(entry_name(&reduced[0]), "State"); + // The reference inside the function input is rewritten too. + let ScSpecEntry::FunctionV0(f) = &reduced[1] else { + panic!("expected function") + }; + assert_eq!(f.inputs[0].type_, udt("State")); + + assert_eq!(report.renames.len(), 1); + assert_eq!(report.renames[0].from, "my_contract::inner::State"); + assert_eq!(report.renames[0].to, "State"); + assert!(report.collisions.is_empty()); + } + + #[test] + fn disambiguates_collisions_with_suffixes() { + let spec = vec![ + enum_entry("my_contract::a::Status"), + enum_entry("my_contract::b::Status"), + fn_entry("run", udt("my_contract::b::Status")), + ]; + let (reduced, report) = reduce_udt_names(&spec); + + // Deterministic: `a::Status` sorts first and keeps the bare name. + assert_eq!(entry_name(&reduced[0]), "Status"); + assert_eq!(entry_name(&reduced[1]), "Status1"); + // The reference to `b::Status` follows its rename to `Status1`. + let ScSpecEntry::FunctionV0(f) = &reduced[2] else { + panic!("expected function") + }; + assert_eq!(f.inputs[0].type_, udt("Status1")); + + assert_eq!(report.collisions.len(), 1); + let collision = &report.collisions[0]; + assert_eq!(collision.short, "Status"); + assert_eq!(collision.members.len(), 2); + assert_eq!(collision.members[0].to, "Status"); + assert_eq!(collision.members[1].to, "Status1"); + } +} diff --git a/cmd/soroban-cli/src/commands/contract/info/interface.rs b/cmd/soroban-cli/src/commands/contract/info/interface.rs index a2dfa1de38..7a5f16c1b9 100644 --- a/cmd/soroban-cli/src/commands/contract/info/interface.rs +++ b/cmd/soroban-cli/src/commands/contract/info/interface.rs @@ -65,17 +65,45 @@ impl Cmd { } }; + // Contract specs may name user-defined types by their fully qualified + // path (e.g. `my_contract::inner::State`). Those names are noisy and, + // because `::` is not a valid identifier, the Rust and JSON renderers + // below cannot use them as-is. Reduce them to short names for display, + // reporting what changed. The `XdrBase64` output is the canonical + // on-chain spec, so it is left untouched. + let (reduced_spec, reduction) = soroban_spec_tools::reduce::reduce_udt_names(&spec); + if !matches!(self.output, InfoOutput::XdrBase64) { + for rename in &reduction.renames { + print.infoln(format!( + "Reduced type name {} to {}", + rename.from, rename.to + )); + } + if !reduction.collisions.is_empty() { + use std::fmt::Write as _; + let mut msg = String::from( + "Reduced type names collided and were disambiguated with a numeric suffix:", + ); + for collision in &reduction.collisions { + for member in &collision.members { + let _ = write!(msg, "\n {} -> {}", member.from, member.to); + } + } + print.warnln(msg); + } + } + let res = match self.output { InfoOutput::XdrBase64 => base64, - InfoOutput::Json => serde_json::to_string(&spec)?, - InfoOutput::JsonFormatted => serde_json::to_string_pretty(&spec)?, + InfoOutput::Json => serde_json::to_string(&reduced_spec)?, + InfoOutput::JsonFormatted => serde_json::to_string_pretty(&reduced_spec)?, // soroban_spec_rust drops doc strings entirely (rustdocs can execute // code) and routes every spec name through `format_ident!`, which // rejects non-identifier bytes. If a future revision starts // emitting spec strings as `Literal::string` or rustdocs, this // path becomes a terminal-escape-injection vector and must be // sanitized before printing. - InfoOutput::Rust => soroban_spec_rust::generate_without_file(&spec)? + InfoOutput::Rust => soroban_spec_rust::generate_without_file(&reduced_spec)? .to_formatted_string() .expect("Unexpected spec format error"), }; From 14dd574a9b86c684f0142dd9c0194b9527b916eb Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 4 Sep 2026 09:56:01 +0000 Subject: [PATCH 02/41] use soroban-spec reduce instead of cli duplicate --- cmd/crates/soroban-spec-tools/src/lib.rs | 1 - cmd/crates/soroban-spec-tools/src/reduce.rs | 465 ------------------ .../src/commands/contract/info/interface.rs | 22 +- 3 files changed, 14 insertions(+), 474 deletions(-) delete mode 100644 cmd/crates/soroban-spec-tools/src/reduce.rs diff --git a/cmd/crates/soroban-spec-tools/src/lib.rs b/cmd/crates/soroban-spec-tools/src/lib.rs index 426fb46e82..29beda432d 100644 --- a/cmd/crates/soroban-spec-tools/src/lib.rs +++ b/cmd/crates/soroban-spec-tools/src/lib.rs @@ -17,7 +17,6 @@ use stellar_xdr::{ pub mod contract; pub mod event; -pub mod reduce; pub mod test_utils; pub mod utils; mod verify; diff --git a/cmd/crates/soroban-spec-tools/src/reduce.rs b/cmd/crates/soroban-spec-tools/src/reduce.rs deleted file mode 100644 index 0c0de1beb4..0000000000 --- a/cmd/crates/soroban-spec-tools/src/reduce.rs +++ /dev/null @@ -1,465 +0,0 @@ -//! Reduce the fully qualified user-defined type names that appear in a contract -//! spec down to short, human-friendly names for display and code generation. -//! -//! Contract specs built with a soroban-sdk that names user-defined types by -//! their fully qualified Rust path (see -//! ) carry names such as -//! `my_contract::inner::State`. Those names are unambiguous but noisy, and the -//! `::` separator is not a valid identifier, so the Rust and TypeScript binding -//! generators cannot use them verbatim. This module rewrites every user-defined -//! type name — both where the type is declared and everywhere it is referenced -//! — to its final path segment (`State`). When two distinct qualified names -//! reduce to the same short name they are disambiguated with a numeric suffix -//! (`State`, `State1`), and the collision is reported so a caller can warn. - -use std::collections::{BTreeMap, HashSet}; - -use stellar_xdr::{ - ScSpecEntry, ScSpecEventV0, ScSpecFunctionV0, ScSpecTypeDef, ScSpecTypeMap, ScSpecTypeOption, - ScSpecTypeResult, ScSpecTypeTuple, ScSpecTypeUdt, ScSpecTypeVec, ScSpecUdtEnumV0, - ScSpecUdtErrorEnumV0, ScSpecUdtStructV0, ScSpecUdtUnionCaseV0, ScSpecUdtUnionV0, -}; - -/// A single user-defined type name that was rewritten during reduction. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Rename { - /// The original, fully qualified name (e.g. `my_contract::inner::State`). - pub from: String, - /// The reduced name it was rewritten to (e.g. `State` or `State1`). - pub to: String, -} - -/// A group of distinct qualified names that share the same short name and so -/// had to be disambiguated with numeric suffixes. -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Collision { - /// The short name they all reduced to before suffixing (e.g. `State`). - pub short: String, - /// The colliding members, each with the suffixed name it received. - pub members: Vec, -} - -/// The record of what `reduce_udt_names` changed. -#[derive(Debug, Clone, Default, PartialEq, Eq)] -pub struct Reduction { - /// Every type whose name changed, in declaration order. - pub renames: Vec, - /// The subset of renames that were forced to a numeric suffix because - /// another qualified type reduced to the same short name. - pub collisions: Vec, -} - -impl Reduction { - /// Whether any name was rewritten. - #[must_use] - pub fn is_empty(&self) -> bool { - self.renames.is_empty() - } -} - -/// The final path segment of a qualified name, i.e. the part after the last -/// `::`. Names without a `::` are returned unchanged. -fn short_name(name: &str) -> &str { - name.rsplit("::").next().unwrap_or(name) -} - -/// Reduce the fully qualified user-defined type names in `spec` to short names, -/// returning the rewritten spec alongside a report of what changed. A spec that -/// already uses short names (no `::`) is returned unchanged with an empty -/// [`Reduction`]. -#[must_use] -pub fn reduce_udt_names(spec: &[ScSpecEntry]) -> (Vec, Reduction) { - let declared = declared_udt_names(spec); - let (map, reduction) = build_mapping(&declared); - - let reduced = spec.iter().map(|e| rewrite_entry(e, &map)).collect(); - (reduced, reduction) -} - -/// The names of every user-defined type declared in the spec, in declaration -/// order and de-duplicated. -fn declared_udt_names(spec: &[ScSpecEntry]) -> Vec { - let mut names = Vec::new(); - let mut seen = HashSet::new(); - let mut push = |name: String| { - if seen.insert(name.clone()) { - names.push(name); - } - }; - for entry in spec { - match entry { - ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { name, .. }) - | ScSpecEntry::UdtUnionV0(ScSpecUdtUnionV0 { name, .. }) - | ScSpecEntry::UdtEnumV0(ScSpecUdtEnumV0 { name, .. }) - | ScSpecEntry::UdtErrorEnumV0(ScSpecUdtErrorEnumV0 { name, .. }) => { - push(name.to_utf8_string_lossy()); - } - ScSpecEntry::FunctionV0(_) | ScSpecEntry::EventV0(_) => {} - } - } - names -} - -/// Build the rename map from qualified name to reduced name, grouping by short -/// name so collisions can be disambiguated deterministically. -fn build_mapping(declared: &[String]) -> (BTreeMap, Reduction) { - // Group the declared names by their short name. `BTreeMap`/sorted members - // keep suffix assignment stable across runs. - let mut groups: BTreeMap<&str, Vec<&String>> = BTreeMap::new(); - for name in declared { - groups.entry(short_name(name)).or_default().push(name); - } - for members in groups.values_mut() { - members.sort(); - } - - let mut map = BTreeMap::new(); - let mut renames = Vec::new(); - let mut collisions = Vec::new(); - // Every reduced name handed out, so a numeric suffix never lands on a name - // already taken by another (possibly unrelated) type. - let mut used: HashSet = HashSet::new(); - - for (short, members) in &groups { - let collision = members.len() > 1; - let mut collision_members = Vec::new(); - for (i, full) in members.iter().enumerate() { - let mut n = i; - let mut candidate = if i == 0 { - (*short).to_string() - } else { - format!("{short}{n}") - }; - while used.contains(&candidate) { - n += 1; - candidate = format!("{short}{n}"); - } - used.insert(candidate.clone()); - map.insert((*full).clone(), candidate.clone()); - if **full != candidate { - let rename = Rename { - from: (*full).clone(), - to: candidate.clone(), - }; - renames.push(rename.clone()); - if collision { - collision_members.push(rename); - } - } else if collision { - collision_members.push(Rename { - from: (*full).clone(), - to: candidate, - }); - } - } - if collision { - collisions.push(Collision { - short: (*short).to_string(), - members: collision_members, - }); - } - } - - // Report renames in the spec's declaration order rather than sorted order. - renames.sort_by_key(|r| { - declared - .iter() - .position(|d| *d == r.from) - .unwrap_or(usize::MAX) - }); - - ( - map, - Reduction { - renames, - collisions, - }, - ) -} - -/// Look up the reduced name for a referenced type. A reference to a declared -/// type resolves through the map; a stray qualified name that was never -/// declared still gets its `::` stripped so no invalid identifier leaks into -/// the output. -fn reduced_ref(name: &str, map: &BTreeMap) -> String { - map.get(name) - .cloned() - .unwrap_or_else(|| short_name(name).to_string()) -} - -fn rewrite_entry(entry: &ScSpecEntry, map: &BTreeMap) -> ScSpecEntry { - match entry { - ScSpecEntry::UdtStructV0(s) => { - let mut s = s.clone(); - s.name = rename_udt(&s.name.to_utf8_string_lossy(), map); - s.fields = s - .fields - .iter() - .map(|f| { - let mut f = f.clone(); - f.type_ = rewrite_type(&f.type_, map); - f - }) - .collect::>() - .try_into() - .unwrap_or(s.fields); - ScSpecEntry::UdtStructV0(s) - } - ScSpecEntry::UdtUnionV0(u) => { - let mut u = u.clone(); - u.name = rename_udt(&u.name.to_utf8_string_lossy(), map); - u.cases = u - .cases - .iter() - .map(|c| rewrite_union_case(c, map)) - .collect::>() - .try_into() - .unwrap_or(u.cases); - ScSpecEntry::UdtUnionV0(u) - } - ScSpecEntry::UdtEnumV0(e) => { - let mut e = e.clone(); - e.name = rename_udt(&e.name.to_utf8_string_lossy(), map); - ScSpecEntry::UdtEnumV0(e) - } - ScSpecEntry::UdtErrorEnumV0(e) => { - let mut e = e.clone(); - e.name = rename_udt(&e.name.to_utf8_string_lossy(), map); - ScSpecEntry::UdtErrorEnumV0(e) - } - ScSpecEntry::FunctionV0(f) => { - let ScSpecFunctionV0 { - doc, - name, - inputs, - outputs, - } = f; - let mut f = ScSpecFunctionV0 { - doc: doc.clone(), - name: name.clone(), - inputs: inputs.clone(), - outputs: outputs.clone(), - }; - f.inputs = f - .inputs - .iter() - .map(|i| { - let mut i = i.clone(); - i.type_ = rewrite_type(&i.type_, map); - i - }) - .collect::>() - .try_into() - .unwrap_or(f.inputs); - f.outputs = f - .outputs - .iter() - .map(|o| rewrite_type(o, map)) - .collect::>() - .try_into() - .unwrap_or(f.outputs); - ScSpecEntry::FunctionV0(f) - } - ScSpecEntry::EventV0(e) => { - let ScSpecEventV0 { .. } = e; - let mut e = e.clone(); - e.params = e - .params - .iter() - .map(|p| { - let mut p = p.clone(); - p.type_ = rewrite_type(&p.type_, map); - p - }) - .collect::>() - .try_into() - .unwrap_or(e.params); - ScSpecEntry::EventV0(e) - } - } -} - -fn rewrite_union_case( - case: &ScSpecUdtUnionCaseV0, - map: &BTreeMap, -) -> ScSpecUdtUnionCaseV0 { - match case { - ScSpecUdtUnionCaseV0::VoidV0(_) => case.clone(), - ScSpecUdtUnionCaseV0::TupleV0(t) => { - let mut t = t.clone(); - t.type_ = t - .type_ - .iter() - .map(|ty| rewrite_type(ty, map)) - .collect::>() - .try_into() - .unwrap_or(t.type_); - ScSpecUdtUnionCaseV0::TupleV0(t) - } - } -} - -/// Rewrite a type, recursing into every place a user-defined type can be -/// referenced. -fn rewrite_type(ty: &ScSpecTypeDef, map: &BTreeMap) -> ScSpecTypeDef { - match ty { - ScSpecTypeDef::Udt(ScSpecTypeUdt { name }) => ScSpecTypeDef::Udt(ScSpecTypeUdt { - name: rename_udt(&name.to_utf8_string_lossy(), map), - }), - ScSpecTypeDef::Option(o) => ScSpecTypeDef::Option(Box::new(ScSpecTypeOption { - value_type: Box::new(rewrite_type(&o.value_type, map)), - })), - ScSpecTypeDef::Result(r) => ScSpecTypeDef::Result(Box::new(ScSpecTypeResult { - ok_type: Box::new(rewrite_type(&r.ok_type, map)), - error_type: Box::new(rewrite_type(&r.error_type, map)), - })), - ScSpecTypeDef::Vec(v) => ScSpecTypeDef::Vec(Box::new(ScSpecTypeVec { - element_type: Box::new(rewrite_type(&v.element_type, map)), - })), - ScSpecTypeDef::Map(m) => ScSpecTypeDef::Map(Box::new(ScSpecTypeMap { - key_type: Box::new(rewrite_type(&m.key_type, map)), - value_type: Box::new(rewrite_type(&m.value_type, map)), - })), - ScSpecTypeDef::Tuple(t) => ScSpecTypeDef::Tuple(Box::new(ScSpecTypeTuple { - value_types: t - .value_types - .iter() - .map(|vt| rewrite_type(vt, map)) - .collect::>() - .try_into() - .unwrap_or_else(|_| t.value_types.clone()), - })), - other => other.clone(), - } -} - -/// Rewrite a declaration or reference name to its reduced form as a -/// `StringM<256>`. The reduced name is never longer than the original, so it -/// always fits. -fn rename_udt( - name: &str, - map: &BTreeMap, -) -> stellar_xdr::StringM<{ crate::UDT_NAME_LIMIT }> { - reduced_ref(name, map) - .try_into() - .unwrap_or_else(|_| name.try_into().unwrap_or_default()) -} - -#[cfg(test)] -mod tests { - use super::*; - use stellar_xdr::{ - ScSpecFunctionInputV0, ScSpecTypeUdt, ScSpecUdtEnumV0, ScSpecUdtStructFieldV0, - ScSpecUdtStructV0, StringM, VecM, - }; - - fn udt(name: &str) -> ScSpecTypeDef { - ScSpecTypeDef::Udt(ScSpecTypeUdt { - name: name.try_into().unwrap(), - }) - } - - fn struct_entry(name: &str, field_type: ScSpecTypeDef) -> ScSpecEntry { - ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { - doc: StringM::default(), - lib: StringM::default(), - name: name.try_into().unwrap(), - fields: vec![ScSpecUdtStructFieldV0 { - doc: StringM::default(), - name: "f".try_into().unwrap(), - type_: field_type, - }] - .try_into() - .unwrap(), - }) - } - - fn enum_entry(name: &str) -> ScSpecEntry { - ScSpecEntry::UdtEnumV0(ScSpecUdtEnumV0 { - doc: StringM::default(), - lib: StringM::default(), - name: name.try_into().unwrap(), - cases: VecM::default(), - }) - } - - fn fn_entry(name: &str, input_type: ScSpecTypeDef) -> ScSpecEntry { - ScSpecEntry::FunctionV0(ScSpecFunctionV0 { - doc: StringM::default(), - name: name.try_into().unwrap(), - inputs: vec![ScSpecFunctionInputV0 { - doc: StringM::default(), - name: "arg".try_into().unwrap(), - type_: input_type, - }] - .try_into() - .unwrap(), - outputs: VecM::default(), - }) - } - - fn entry_name(entry: &ScSpecEntry) -> String { - match entry { - ScSpecEntry::UdtStructV0(s) => s.name.to_utf8_string_lossy(), - ScSpecEntry::UdtUnionV0(u) => u.name.to_utf8_string_lossy(), - ScSpecEntry::UdtEnumV0(e) => e.name.to_utf8_string_lossy(), - ScSpecEntry::UdtErrorEnumV0(e) => e.name.to_utf8_string_lossy(), - _ => String::new(), - } - } - - #[test] - fn no_qualified_names_is_a_noop() { - let spec = vec![enum_entry("State"), struct_entry("Point", udt("State"))]; - let (reduced, report) = reduce_udt_names(&spec); - assert!(report.is_empty()); - assert_eq!(reduced, spec); - } - - #[test] - fn shortens_and_rewrites_references() { - let spec = vec![ - enum_entry("my_contract::inner::State"), - fn_entry("run", udt("my_contract::inner::State")), - ]; - let (reduced, report) = reduce_udt_names(&spec); - - assert_eq!(entry_name(&reduced[0]), "State"); - // The reference inside the function input is rewritten too. - let ScSpecEntry::FunctionV0(f) = &reduced[1] else { - panic!("expected function") - }; - assert_eq!(f.inputs[0].type_, udt("State")); - - assert_eq!(report.renames.len(), 1); - assert_eq!(report.renames[0].from, "my_contract::inner::State"); - assert_eq!(report.renames[0].to, "State"); - assert!(report.collisions.is_empty()); - } - - #[test] - fn disambiguates_collisions_with_suffixes() { - let spec = vec![ - enum_entry("my_contract::a::Status"), - enum_entry("my_contract::b::Status"), - fn_entry("run", udt("my_contract::b::Status")), - ]; - let (reduced, report) = reduce_udt_names(&spec); - - // Deterministic: `a::Status` sorts first and keeps the bare name. - assert_eq!(entry_name(&reduced[0]), "Status"); - assert_eq!(entry_name(&reduced[1]), "Status1"); - // The reference to `b::Status` follows its rename to `Status1`. - let ScSpecEntry::FunctionV0(f) = &reduced[2] else { - panic!("expected function") - }; - assert_eq!(f.inputs[0].type_, udt("Status1")); - - assert_eq!(report.collisions.len(), 1); - let collision = &report.collisions[0]; - assert_eq!(collision.short, "Status"); - assert_eq!(collision.members.len(), 2); - assert_eq!(collision.members[0].to, "Status"); - assert_eq!(collision.members[1].to, "Status1"); - } -} diff --git a/cmd/soroban-cli/src/commands/contract/info/interface.rs b/cmd/soroban-cli/src/commands/contract/info/interface.rs index 7a5f16c1b9..08c90af42b 100644 --- a/cmd/soroban-cli/src/commands/contract/info/interface.rs +++ b/cmd/soroban-cli/src/commands/contract/info/interface.rs @@ -71,27 +71,33 @@ impl Cmd { // below cannot use them as-is. Reduce them to short names for display, // reporting what changed. The `XdrBase64` output is the canonical // on-chain spec, so it is left untouched. - let (reduced_spec, reduction) = soroban_spec_tools::reduce::reduce_udt_names(&spec); + let reduced = soroban_spec::reduce::reduce(&spec); if !matches!(self.output, InfoOutput::XdrBase64) { - for rename in &reduction.renames { + for rename in reduced.renames().filter(|r| r.renamed()) { print.infoln(format!( "Reduced type name {} to {}", - rename.from, rename.to + String::from_utf8_lossy(&rename.from), + String::from_utf8_lossy(&rename.to), )); } - if !reduction.collisions.is_empty() { + let collisions: Vec<_> = reduced.renames().filter(|r| r.collision()).collect(); + if !collisions.is_empty() { use std::fmt::Write as _; let mut msg = String::from( "Reduced type names collided and were disambiguated with a numeric suffix:", ); - for collision in &reduction.collisions { - for member in &collision.members { - let _ = write!(msg, "\n {} -> {}", member.from, member.to); - } + for rename in collisions { + let _ = write!( + msg, + "\n {} -> {}", + String::from_utf8_lossy(&rename.from), + String::from_utf8_lossy(&rename.to), + ); } print.warnln(msg); } } + let reduced_spec: Vec<_> = reduced.into_entries().collect(); let res = match self.output { InfoOutput::XdrBase64 => base64, From be26582872323a23ed111c29ee3d2568063d7592 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 4 Sep 2026 15:29:44 +0000 Subject: [PATCH 03/41] reduce spec type names on contract build --- .../src/commands/contract/build.rs | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index e45e6def1d..3b0535e7bc 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -400,6 +400,7 @@ impl Cmd { self.inject_meta(&target_file_path)?; Self::filter_spec(&target_file_path)?; + Self::reduce_spec(&print, &p.name, &target_file_path)?; let final_path = if let Some(out_dir) = &self.out_dir { fs::create_dir_all(out_dir).map_err(Error::CreatingOutDir)?; @@ -569,6 +570,65 @@ impl Cmd { fs::write(target_file_path, new_wasm).map_err(Error::WritingWasmFile) } + /// Reduces user-defined type names in the contract spec to their simple + /// form, rewriting the `contractspecv0` section in place. + /// + /// Contract specs may name user-defined types by their fully qualified path + /// (e.g. `my_contract::inner::State`). This follows each to its simple name + /// (e.g. `State`), rewriting every reference, so the on-chain spec and every + /// downstream tool see the short names. Names that would collide are + /// disambiguated with a numeric suffix, which is warned about. + /// + /// Runs after `filter_spec` so only the entries that survive shaking are + /// reduced, but is otherwise independent of spec shaking. + fn reduce_spec(print: &Print, name: &str, target_file_path: &PathBuf) -> Result<(), Error> { + use soroban_spec_tools::contract::Spec; + use soroban_spec_tools::wasm::replace_custom_section; + + let wasm_bytes = fs::read(target_file_path).map_err(Error::ReadingWasmFile)?; + let spec = Spec::new(&wasm_bytes)?; + + let reduced = soroban_spec::reduce::reduce(&spec.spec); + + // If every name was already simple, leave the wasm untouched. + if reduced.renames().all(|r| !r.renamed()) { + return Ok(()); + } + + let collisions: Vec<_> = reduced.renames().filter(|r| r.collision()).collect(); + if !collisions.is_empty() { + use std::fmt::Write as _; + let mut msg = format!( + "{name}: reduced type names collided and were disambiguated with a numeric suffix:" + ); + for rename in collisions { + let _ = write!( + msg, + "\n {} -> {}", + String::from_utf8_lossy(&rename.from), + String::from_utf8_lossy(&rename.to), + ); + } + print.warnln(msg); + } + + // Encode the reduced entries and replace the contractspecv0 section. + let mut reduced_xdr = Vec::new(); + let mut writer = Limited::new( + Cursor::new(&mut reduced_xdr), + Limits::depth(XDR_DEPTH_LIMIT), + ); + for entry in reduced.into_entries() { + entry.write_xdr(&mut writer)?; + } + + let new_wasm = replace_custom_section(&wasm_bytes, "contractspecv0", &reduced_xdr) + .map_err(|e| Error::WasmParsing(e.to_string()))?; + + fs::remove_file(target_file_path).map_err(Error::DeletingArtifact)?; + fs::write(target_file_path, new_wasm).map_err(Error::WritingWasmFile) + } + fn encoded_new_meta(&self) -> Result, Error> { let mut new_meta: Vec = Vec::new(); @@ -970,6 +1030,46 @@ mod tests { assert!(Cmd::try_parse_from(["build", "--pull"]).is_err()); } + #[test] + fn reduce_spec_shortens_qualified_names_in_wasm() { + use soroban_spec_tools::contract::Spec; + use soroban_spec_tools::wasm::replace_custom_section; + use stellar_xdr::{ScSpecEntry, ScSpecUdtStructV0, VecM}; + + // A spec with a single struct whose name is fully qualified. + let entry = ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { + doc: StringM::default(), + lib: StringM::default(), + name: "mycrate::mymod::MyType".to_string().try_into().unwrap(), + fields: VecM::default(), + }); + let mut spec_xdr = Vec::new(); + entry + .write_xdr(&mut Limited::new( + Cursor::new(&mut spec_xdr), + Limits::depth(XDR_DEPTH_LIMIT), + )) + .unwrap(); + + // Embed the spec in a minimal (empty) wasm module and write it out. + let wasm = replace_custom_section(b"\0asm\x01\0\0\0", "contractspecv0", &spec_xdr).unwrap(); + let path = + env::temp_dir().join(format!("reduce_spec_test_{}.wasm", std::process::id())); + fs::write(&path, &wasm).unwrap(); + + Cmd::reduce_spec(&Print::new(true), "pkg", &path).unwrap(); + + let out = fs::read(&path).unwrap(); + fs::remove_file(&path).ok(); + let spec = Spec::new(&out).unwrap(); + + assert_eq!(spec.spec.len(), 1); + let ScSpecEntry::UdtStructV0(s) = &spec.spec[0] else { + panic!("expected a struct entry, got {:?}", spec.spec[0]); + }; + assert_eq!(s.name.to_vec(), b"MyType".to_vec()); + } + #[test] fn serialize_command_shell_escapes_args_with_metacharacters() { let raw_arg = "--manifest-path=/path/to/contract;touch PWNED;#/Cargo.toml"; From 3c430e3d88f524994b979e0ca8075e77aa316ad3 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Tue, 8 Sep 2026 21:43:53 +0000 Subject: [PATCH 04/41] show raw spec type names in contract info --- .../src/commands/contract/info/interface.rs | 42 +++---------------- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/cmd/soroban-cli/src/commands/contract/info/interface.rs b/cmd/soroban-cli/src/commands/contract/info/interface.rs index 08c90af42b..2ab2aaf1c7 100644 --- a/cmd/soroban-cli/src/commands/contract/info/interface.rs +++ b/cmd/soroban-cli/src/commands/contract/info/interface.rs @@ -65,51 +65,19 @@ impl Cmd { } }; - // Contract specs may name user-defined types by their fully qualified - // path (e.g. `my_contract::inner::State`). Those names are noisy and, - // because `::` is not a valid identifier, the Rust and JSON renderers - // below cannot use them as-is. Reduce them to short names for display, - // reporting what changed. The `XdrBase64` output is the canonical - // on-chain spec, so it is left untouched. - let reduced = soroban_spec::reduce::reduce(&spec); - if !matches!(self.output, InfoOutput::XdrBase64) { - for rename in reduced.renames().filter(|r| r.renamed()) { - print.infoln(format!( - "Reduced type name {} to {}", - String::from_utf8_lossy(&rename.from), - String::from_utf8_lossy(&rename.to), - )); - } - let collisions: Vec<_> = reduced.renames().filter(|r| r.collision()).collect(); - if !collisions.is_empty() { - use std::fmt::Write as _; - let mut msg = String::from( - "Reduced type names collided and were disambiguated with a numeric suffix:", - ); - for rename in collisions { - let _ = write!( - msg, - "\n {} -> {}", - String::from_utf8_lossy(&rename.from), - String::from_utf8_lossy(&rename.to), - ); - } - print.warnln(msg); - } - } - let reduced_spec: Vec<_> = reduced.into_entries().collect(); - + // Type names in the spec are already reduced to simple names during + // `contract build`, so show the spec as it is stored in the contract. let res = match self.output { InfoOutput::XdrBase64 => base64, - InfoOutput::Json => serde_json::to_string(&reduced_spec)?, - InfoOutput::JsonFormatted => serde_json::to_string_pretty(&reduced_spec)?, + InfoOutput::Json => serde_json::to_string(&spec)?, + InfoOutput::JsonFormatted => serde_json::to_string_pretty(&spec)?, // soroban_spec_rust drops doc strings entirely (rustdocs can execute // code) and routes every spec name through `format_ident!`, which // rejects non-identifier bytes. If a future revision starts // emitting spec strings as `Literal::string` or rustdocs, this // path becomes a terminal-escape-injection vector and must be // sanitized before printing. - InfoOutput::Rust => soroban_spec_rust::generate_without_file(&reduced_spec)? + InfoOutput::Rust => soroban_spec_rust::generate_without_file(&spec)? .to_formatted_string() .expect("Unexpected spec format error"), }; From 301e40efcbd8fbb46d42ad45b1f6dfd132632d65 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 22:38:58 +1000 Subject: [PATCH 05/41] remove comment --- cmd/soroban-cli/src/commands/contract/info/interface.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmd/soroban-cli/src/commands/contract/info/interface.rs b/cmd/soroban-cli/src/commands/contract/info/interface.rs index 2ab2aaf1c7..a2dfa1de38 100644 --- a/cmd/soroban-cli/src/commands/contract/info/interface.rs +++ b/cmd/soroban-cli/src/commands/contract/info/interface.rs @@ -65,8 +65,6 @@ impl Cmd { } }; - // Type names in the spec are already reduced to simple names during - // `contract build`, so show the spec as it is stored in the contract. let res = match self.output { InfoOutput::XdrBase64 => base64, InfoOutput::Json => serde_json::to_string(&spec)?, From 85ed88eb408eb78956e6188e479bb846ebcb944e Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 13:17:17 +0000 Subject: [PATCH 06/41] format the reduce spec test path --- cmd/soroban-cli/src/commands/contract/build.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index 3b0535e7bc..0ab745649a 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -1053,8 +1053,7 @@ mod tests { // Embed the spec in a minimal (empty) wasm module and write it out. let wasm = replace_custom_section(b"\0asm\x01\0\0\0", "contractspecv0", &spec_xdr).unwrap(); - let path = - env::temp_dir().join(format!("reduce_spec_test_{}.wasm", std::process::id())); + let path = env::temp_dir().join(format!("reduce_spec_test_{}.wasm", std::process::id())); fs::write(&path, &wasm).unwrap(); Cmd::reduce_spec(&Print::new(true), "pkg", &path).unwrap(); From 05917c721f0cca9764ac379473cc8f5c9f621fd2 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Sat, 5 Sep 2026 14:06:59 +0000 Subject: [PATCH 07/41] shake by the version in wasm meta, not an env var --- cmd/crates/soroban-test/tests/it/build.rs | 12 ++++-- .../src/commands/contract/build.rs | 41 +++++++++++-------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/cmd/crates/soroban-test/tests/it/build.rs b/cmd/crates/soroban-test/tests/it/build.rs index ffabfbe038..836d69398c 100644 --- a/cmd/crates/soroban-test/tests/it/build.rs +++ b/cmd/crates/soroban-test/tests/it/build.rs @@ -512,7 +512,7 @@ fn filter_and_dedup_spec_removes_duplicates() { .unwrap(), }); - // Build markers for the struct so it passes the filter + // Build markers for the struct so it passes the version 2 filter let mut markers = std::collections::HashSet::new(); markers.insert(soroban_spec::shaking::generate_marker_for_entry( &used_struct, @@ -527,7 +527,8 @@ fn filter_and_dedup_spec_removes_duplicates() { used_struct.clone(), ]; - let result_xdr = filter_and_dedup_spec(entries, &markers).unwrap(); + let result_xdr = + filter_and_dedup_spec(entries, &markers, soroban_spec::shaking::Version::V2).unwrap(); // Parse back the entries from the XDR let result_entries: Vec = @@ -556,8 +557,13 @@ fn build_with_spec_shaking_has_feature_meta() { let version = soroban_spec::shaking::spec_shaking_version_for_meta(&meta); + // The fixture builds against a published soroban-sdk, which records + // version 2. The workspace's `[patch.crates-io]` does not reach a contract + // built in a temp dir, so this covers the version 2 rules end to end, and + // the SDK's own test contract covers version 3. assert_eq!( - version, 2, + version, + soroban_spec::shaking::Version::V2, "contractmeta should indicate spec shaking version 2" ); } diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index 0ab745649a..06d442dbb4 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -370,7 +370,9 @@ impl Cmd { } // Set env var to inform the SDK that this CLI supports spec - // optimization using markers. Current and new SDK versions no + // optimization. The var says only that this CLI shakes; which + // rules it shakes a given contract by comes from the version that + // contract records in its meta. Current and new SDK versions no // longer read this var, relying on the CLI version below // instead, but it must keep being set for past SDK versions that // require it. @@ -532,14 +534,17 @@ impl Cmd { /// Filters unused types and events from the contract spec. /// - /// This removes: - /// - Type definitions that are not referenced by any function - /// - Events that don't have corresponding markers in the WASM data section - /// (events that are defined but never published) + /// The contract records which spec shaking version it was built with, and + /// that version says which entries carry a marker and so what a missing + /// marker means. Read it and shake by its rules rather than the newest + /// known: a version 2 contract marks every used type, so markers alone say + /// what is used, while a version 3 contract marks only the events it + /// publishes and the errors it panics with, and every other type is + /// settled by following the references to it. /// - /// The SDK embeds markers in the data section for types/events that are - /// actually used. These markers survive dead code elimination, so we can - /// detect which spec entries are truly needed. + /// A version this CLI does not recognise reads as version 1, and a + /// version 1 contract carries no markers at all, so in both cases there is + /// nothing to shake by and the spec is left alone. fn filter_spec(target_file_path: &PathBuf) -> Result<(), Error> { use soroban_spec_tools::contract::Spec; use soroban_spec_tools::wasm::replace_custom_section; @@ -549,17 +554,19 @@ impl Cmd { // Parse the spec from the wasm let spec = Spec::new(&wasm_bytes)?; - // Check if the contract meta indicates spec shaking v2 is enabled. - if soroban_spec::shaking::spec_shaking_version_for_meta(&spec.meta) != 2 { + // Read the version the contract was built with, which selects the + // rules below. Nothing to shake by at version 1, so leave it alone. + let version = soroban_spec::shaking::spec_shaking_version_for_meta(&spec.meta); + if version == soroban_spec::shaking::Version::V1 { return Ok(()); } // Extract markers from the WASM data section let markers = soroban_spec::shaking::find_all(&wasm_bytes); - // Filter spec entries (types, events) based on markers, and + // Filter spec entries (types, events) by that version's rules, and // deduplicate any exact duplicate entries. - let filtered_xdr = filter_and_dedup_spec(spec.spec.clone(), &markers)?; + let filtered_xdr = filter_and_dedup_spec(spec.spec.clone(), &markers, version)?; // Replace the contractspecv0 section with the filtered version let new_wasm = replace_custom_section(&wasm_bytes, "contractspecv0", &filtered_xdr) @@ -955,15 +962,17 @@ fn check_overflow_checks(doc: &toml_edit::DocumentMut, profile: &str) -> Result< } } -/// Filters spec entries based on markers and deduplicates exact duplicates. +/// Filters spec entries down to those the contract needs, by the rules of the +/// spec shaking version it was built with, and deduplicates exact duplicates. /// -/// Functions are always kept. Other entries (types, events) are kept only if a -/// matching marker exists. Exact duplicate entries (identical XDR) are collapsed +/// Which entries survive is decided by `soroban_spec::shaking::filter` for the +/// given version. Exact duplicate entries (identical XDR) are then collapsed /// to a single occurrence. #[allow(clippy::implicit_hasher)] pub fn filter_and_dedup_spec( entries: Vec, markers: &HashSet, + version: soroban_spec::shaking::Version, ) -> Result, Error> { let mut seen = HashSet::new(); let mut filtered_xdr = Vec::new(); @@ -971,7 +980,7 @@ pub fn filter_and_dedup_spec( Cursor::new(&mut filtered_xdr), Limits::depth(XDR_DEPTH_LIMIT), ); - for entry in soroban_spec::shaking::filter(entries, markers) { + for entry in soroban_spec::shaking::filter(entries, markers, version) { let entry_xdr = entry.to_xdr(Limits::depth(XDR_DEPTH_LIMIT))?; if seen.insert(entry_xdr) { entry.write_xdr(&mut writer)?; From b3fe01659d91ea4558c35d8d2c515975d3373581 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 10:16:30 +0000 Subject: [PATCH 08/41] bump sdk pins to the restacked 2043 head --- Cargo.lock | 17 ++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a8db6c58d7..3ec768f762 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "arbitrary", "bytes-lit", @@ -5555,7 +5555,6 @@ dependencies = [ "ed25519-dalek", "rand 0.8.7", "rustc_version", - "semver", "serde", "serde_json", "soroban-env-guest", @@ -5571,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5589,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5600,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "prettyplease", "proc-macro2", @@ -5698,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "soroban-sdk", ] @@ -5706,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5755,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=99850c43eb6f1316fb9f8b2489398ef8c51970c9#99850c43eb6f1316fb9f8b2489398ef8c51970c9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index 79d6bfb336..7076054281 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "99850c43eb6f1316fb9f8b2489398ef8c51970c9" +rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "99850c43eb6f1316fb9f8b2489398ef8c51970c9" +rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "99850c43eb6f1316fb9f8b2489398ef8c51970c9" +rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "99850c43eb6f1316fb9f8b2489398ef8c51970c9" +rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "99850c43eb6f1316fb9f8b2489398ef8c51970c9" +rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "99850c43eb6f1316fb9f8b2489398ef8c51970c9" +rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From b1009bf34bdf1cbaf07b17d7b62ce91a51b3d038 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 12:12:11 +0000 Subject: [PATCH 09/41] bump sdk pins to the 2043 v2 vector head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3ec768f762..6f7c6dbd57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "arbitrary", "bytes-lit", @@ -5570,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=819c7754f218c65b298c620b07b3e43b1c2292fc#819c7754f218c65b298c620b07b3e43b1c2292fc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index 7076054281..b44700ecad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" +rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" +rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" +rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" +rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" +rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "819c7754f218c65b298c620b07b3e43b1c2292fc" +rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 9e8a3be865286e5b88ee3b91973b32a5f7aca6db Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 12:40:52 +0000 Subject: [PATCH 10/41] bump sdk pins to the v3 rename head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f7c6dbd57..993b8e6847 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "arbitrary", "bytes-lit", @@ -5570,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2cd9556d4c9a11976a0dba674c9ede2b161b69de#2cd9556d4c9a11976a0dba674c9ede2b161b69de" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index b44700ecad..e9e619b840 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" +rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" +rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" +rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" +rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" +rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2cd9556d4c9a11976a0dba674c9ede2b161b69de" +rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From c64c5083f133e60e703b1c44900ccda3e360d9a7 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 12:55:32 +0000 Subject: [PATCH 11/41] bump sdk pins to the shared vector head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 993b8e6847..b27d7aa60f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "arbitrary", "bytes-lit", @@ -5570,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2ff4403d9c2fa98c200c2aaf1c86a680c8c56297#2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index e9e619b840..bac6b4f762 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2ff4403d9c2fa98c200c2aaf1c86a680c8c56297" +rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 0b49511eea514f190dba622f7004b166be8c2b85 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 22:32:43 +0000 Subject: [PATCH 12/41] bump sdk pins to the restacked 2043 tip --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b27d7aa60f..a413ad97d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "arbitrary", "bytes-lit", @@ -5570,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c7411eb2236947051e3ee351fd960cf6fbadbb4a#c7411eb2236947051e3ee351fd960cf6fbadbb4a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index bac6b4f762..aa73bec17e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" +rev = "dd7f6a414604127d38f0825684b8399657300fcc" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" +rev = "dd7f6a414604127d38f0825684b8399657300fcc" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" +rev = "dd7f6a414604127d38f0825684b8399657300fcc" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" +rev = "dd7f6a414604127d38f0825684b8399657300fcc" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" +rev = "dd7f6a414604127d38f0825684b8399657300fcc" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c7411eb2236947051e3ee351fd960cf6fbadbb4a" +rev = "dd7f6a414604127d38f0825684b8399657300fcc" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From e4bce5cd0d2d06eadfa2de58a744e3029d8dbc7e Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 23 Sep 2026 22:35:53 +0000 Subject: [PATCH 13/41] bump sdk pins to the 2043 tip after the make fix --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a413ad97d3..a69670e559 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "arbitrary", "bytes-lit", @@ -5570,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=dd7f6a414604127d38f0825684b8399657300fcc#dd7f6a414604127d38f0825684b8399657300fcc" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index aa73bec17e..b9b460b24b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "dd7f6a414604127d38f0825684b8399657300fcc" +rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "dd7f6a414604127d38f0825684b8399657300fcc" +rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "dd7f6a414604127d38f0825684b8399657300fcc" +rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "dd7f6a414604127d38f0825684b8399657300fcc" +rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "dd7f6a414604127d38f0825684b8399657300fcc" +rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "dd7f6a414604127d38f0825684b8399657300fcc" +rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From d9cc591d50b248f9179471f72887c5232ae3eaf2 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 01:53:17 +0000 Subject: [PATCH 14/41] bump sdk pins to the 2043 head on main --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a69670e559..a0b88eff22 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "arbitrary", "bytes-lit", @@ -5570,7 +5570,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5588,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5599,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5697,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5705,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5754,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3d37377d90f9ebf82ff5be2925e56d50f05b05e1#3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index b9b460b24b..6f834a9dc8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +rev = "6ce49656d74c4da36068339d30f7ce002424128a" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +rev = "6ce49656d74c4da36068339d30f7ce002424128a" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +rev = "6ce49656d74c4da36068339d30f7ce002424128a" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +rev = "6ce49656d74c4da36068339d30f7ce002424128a" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +rev = "6ce49656d74c4da36068339d30f7ce002424128a" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3d37377d90f9ebf82ff5be2925e56d50f05b05e1" +rev = "6ce49656d74c4da36068339d30f7ce002424128a" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 0b8d685c76240197435837a707b9fa2caf02dd93 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 02:20:36 +0000 Subject: [PATCH 15/41] bump sdk pins to the 2043 head with semver --- Cargo.lock | 17 +++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a0b88eff22..17577ed32d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "arbitrary", "bytes-lit", @@ -5555,6 +5555,7 @@ dependencies = [ "ed25519-dalek", "rand 0.8.7", "rustc_version", + "semver", "serde", "serde_json", "soroban-env-guest", @@ -5570,7 +5571,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5588,7 +5589,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5599,7 +5600,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "prettyplease", "proc-macro2", @@ -5697,7 +5698,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "soroban-sdk", ] @@ -5705,7 +5706,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5754,7 +5755,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=6ce49656d74c4da36068339d30f7ce002424128a#6ce49656d74c4da36068339d30f7ce002424128a" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index 6f834a9dc8..6abd6737a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "6ce49656d74c4da36068339d30f7ce002424128a" +rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "6ce49656d74c4da36068339d30f7ce002424128a" +rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "6ce49656d74c4da36068339d30f7ce002424128a" +rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "6ce49656d74c4da36068339d30f7ce002424128a" +rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "6ce49656d74c4da36068339d30f7ce002424128a" +rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "6ce49656d74c4da36068339d30f7ce002424128a" +rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 257f7e87e7921d715e60d2415628ec4b7550e3bd Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 02:25:46 +0000 Subject: [PATCH 16/41] bump sdk pins to the 2043 head with the fuzz fix --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 17577ed32d..b24cb476d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "arbitrary", "bytes-lit", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5589,7 +5589,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5600,7 +5600,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "prettyplease", "proc-macro2", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "soroban-sdk", ] @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5755,7 +5755,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1#3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index 6abd6737a6..d471e10b6b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +rev = "b295f8564131c09c99e583e33a580577f9f4d47f" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +rev = "b295f8564131c09c99e583e33a580577f9f4d47f" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +rev = "b295f8564131c09c99e583e33a580577f9f4d47f" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +rev = "b295f8564131c09c99e583e33a580577f9f4d47f" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +rev = "b295f8564131c09c99e583e33a580577f9f4d47f" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "3f5d670876d09ac167fd3d8bc6b4bdf5678b50f1" +rev = "b295f8564131c09c99e583e33a580577f9f4d47f" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From a71859b8a22388a47edea3b2905620dd6d35b690 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 04:15:55 +0000 Subject: [PATCH 17/41] bump sdk pins to the 2043 head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b24cb476d1..9251af7df5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "arbitrary", "bytes-lit", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5589,7 +5589,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5600,7 +5600,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "prettyplease", "proc-macro2", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "soroban-sdk", ] @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5755,7 +5755,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=b295f8564131c09c99e583e33a580577f9f4d47f#b295f8564131c09c99e583e33a580577f9f4d47f" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index d471e10b6b..dda60ba3e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "b295f8564131c09c99e583e33a580577f9f4d47f" +rev = "2c721e34b50c8463f94584b0e9444a063ca30429" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "b295f8564131c09c99e583e33a580577f9f4d47f" +rev = "2c721e34b50c8463f94584b0e9444a063ca30429" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "b295f8564131c09c99e583e33a580577f9f4d47f" +rev = "2c721e34b50c8463f94584b0e9444a063ca30429" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "b295f8564131c09c99e583e33a580577f9f4d47f" +rev = "2c721e34b50c8463f94584b0e9444a063ca30429" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "b295f8564131c09c99e583e33a580577f9f4d47f" +rev = "2c721e34b50c8463f94584b0e9444a063ca30429" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "b295f8564131c09c99e583e33a580577f9f4d47f" +rev = "2c721e34b50c8463f94584b0e9444a063ca30429" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From aeb5af8aafa9b270134fc67c39bda2e711259fc1 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 04:19:53 +0000 Subject: [PATCH 18/41] bump sdk pins to the latest 2043 head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9251af7df5..a7c857443b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "arbitrary", "bytes-lit", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5589,7 +5589,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5600,7 +5600,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "prettyplease", "proc-macro2", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "soroban-sdk", ] @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5755,7 +5755,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2c721e34b50c8463f94584b0e9444a063ca30429#2c721e34b50c8463f94584b0e9444a063ca30429" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index dda60ba3e2..98bd54efdc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2c721e34b50c8463f94584b0e9444a063ca30429" +rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2c721e34b50c8463f94584b0e9444a063ca30429" +rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2c721e34b50c8463f94584b0e9444a063ca30429" +rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2c721e34b50c8463f94584b0e9444a063ca30429" +rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2c721e34b50c8463f94584b0e9444a063ca30429" +rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2c721e34b50c8463f94584b0e9444a063ca30429" +rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 573f09d96fafd07641fae3c85c832f472647adb6 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 04:35:14 +0000 Subject: [PATCH 19/41] bump sdk pins to the 2043 v3 rename head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a7c857443b..3bdbbf28d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "arbitrary", "bytes-lit", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5589,7 +5589,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5600,7 +5600,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "prettyplease", "proc-macro2", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "soroban-sdk", ] @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5755,7 +5755,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2db91f6bdacf16bff48223883b72fc8c6a89f7e8#2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index 98bd54efdc..cf7fad386e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2db91f6bdacf16bff48223883b72fc8c6a89f7e8" +rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 823914fb7ddc43a6e836c5de88c103ff4fd8f2d9 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 24 Sep 2026 05:59:14 +0000 Subject: [PATCH 20/41] bump sdk pins to the 2043 test match head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3bdbbf28d0..27c87e5f7e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5532,7 +5532,7 @@ version = "28.0.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "serde", "serde_json", @@ -5545,7 +5545,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "arbitrary", "bytes-lit", @@ -5571,7 +5571,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5589,7 +5589,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5600,7 +5600,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "prettyplease", "proc-macro2", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "soroban-sdk", ] @@ -5706,7 +5706,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5755,7 +5755,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=2f961328d6cf0881c2ce236e6ab61da36ecc1ae4#2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4f7123b4d4a4394f884d86011941f57e8a426741#4f7123b4d4a4394f884d86011941f57e8a426741" dependencies = [ "soroban-sdk", "soroban-token-sdk", diff --git a/Cargo.toml b/Cargo.toml index cf7fad386e..3aefdfc623 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.0-rc.1" [workspace.dependencies.soroban-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +rev = "4f7123b4d4a4394f884d86011941f57e8a426741" [workspace.dependencies.soroban-spec-rust] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +rev = "4f7123b4d4a4394f884d86011941f57e8a426741" [workspace.dependencies.soroban-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +rev = "4f7123b4d4a4394f884d86011941f57e8a426741" [workspace.dependencies.soroban-token-sdk] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +rev = "4f7123b4d4a4394f884d86011941f57e8a426741" [workspace.dependencies.stellar-asset-spec] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +rev = "4f7123b4d4a4394f884d86011941f57e8a426741" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0-rc.1" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "2f961328d6cf0881c2ce236e6ab61da36ecc1ae4" +rev = "4f7123b4d4a4394f884d86011941f57e8a426741" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 55aba4791d2c3a08a4fc1132149e11fbd6848cc2 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Tue, 29 Sep 2026 23:12:41 +0000 Subject: [PATCH 21/41] propagate duplicate name error from spec reduce --- cmd/soroban-cli/src/commands/contract/build.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index 0ab745649a..d0c659772c 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -242,6 +242,9 @@ pub enum Error { #[error(transparent)] Xdr(#[from] stellar_xdr::Error), + #[error(transparent)] + ReduceSpec(#[from] soroban_spec::reduce::DuplicateName), + #[cfg(feature = "additional-libs")] #[error(transparent)] Optimize(#[from] optimize::Error), @@ -588,7 +591,7 @@ impl Cmd { let wasm_bytes = fs::read(target_file_path).map_err(Error::ReadingWasmFile)?; let spec = Spec::new(&wasm_bytes)?; - let reduced = soroban_spec::reduce::reduce(&spec.spec); + let reduced = soroban_spec::reduce::reduce(&spec.spec)?; // If every name was already simple, leave the wasm untouched. if reduced.renames().all(|r| !r.renamed()) { From 7b896e2cd3479df526b986dd5f02e75814cd2759 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Tue, 29 Sep 2026 23:31:04 +0000 Subject: [PATCH 22/41] bump sdk pins to the 2043 head --- Cargo.lock | 17 ++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a2d7bf6d54..a13124f3d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "28.1.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "arbitrary", "bytes-lit", @@ -5452,7 +5452,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5470,7 +5470,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "prettyplease", "proc-macro2", @@ -5572,7 +5572,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "soroban-sdk", ] @@ -5580,7 +5580,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5629,10 +5629,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=69a2976ef96b683c8190ba607fae06e3310a341e#69a2976ef96b683c8190ba607fae06e3310a341e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" dependencies = [ "soroban-sdk", - "soroban-token-sdk", "soroban-token-spec", ] diff --git a/Cargo.toml b/Cargo.toml index 93f3623676..91f06af55b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "69a2976ef96b683c8190ba607fae06e3310a341e" +rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" [workspace.dependencies.soroban-spec-rust] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "69a2976ef96b683c8190ba607fae06e3310a341e" +rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" [workspace.dependencies.soroban-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "69a2976ef96b683c8190ba607fae06e3310a341e" +rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" [workspace.dependencies.soroban-token-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "69a2976ef96b683c8190ba607fae06e3310a341e" +rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" [workspace.dependencies.stellar-asset-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "69a2976ef96b683c8190ba607fae06e3310a341e" +rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "69a2976ef96b683c8190ba607fae06e3310a341e" +rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 7a947fc3f5bba256e04aa2053f338fb3b11c8bf2 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 30 Sep 2026 00:39:16 +0000 Subject: [PATCH 23/41] bump sdk pins to the 2043 head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a13124f3d6..b76397900d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "28.1.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "arbitrary", "bytes-lit", @@ -5452,7 +5452,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5470,7 +5470,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "prettyplease", "proc-macro2", @@ -5572,7 +5572,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "soroban-sdk", ] @@ -5580,7 +5580,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5629,7 +5629,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=50c3906e6ce1cba3f2955349d5b73283e02c7ff0#50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 91f06af55b..aa6c47785f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" [workspace.dependencies.soroban-spec-rust] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" [workspace.dependencies.soroban-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" [workspace.dependencies.soroban-token-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" [workspace.dependencies.stellar-asset-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "50c3906e6ce1cba3f2955349d5b73283e02c7ff0" +rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 6a4386b0ce7eb06189d17e79eebe999c06ad8393 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 30 Sep 2026 01:52:22 +0000 Subject: [PATCH 24/41] bump sdk pins to the 2043 head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b76397900d..4d40b4857a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "28.1.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "arbitrary", "bytes-lit", @@ -5452,7 +5452,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5470,7 +5470,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "prettyplease", "proc-macro2", @@ -5572,7 +5572,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "soroban-sdk", ] @@ -5580,7 +5580,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5629,7 +5629,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4d49aa3ffe5ad271ade1adcdf5709d049d1cd794#4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=23a6d625c6d568f44d027a093fc3c00ccf22f7c5#23a6d625c6d568f44d027a093fc3c00ccf22f7c5" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index aa6c47785f..0a12b6eac1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +rev = "23a6d625c6d568f44d027a093fc3c00ccf22f7c5" [workspace.dependencies.soroban-spec-rust] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +rev = "23a6d625c6d568f44d027a093fc3c00ccf22f7c5" [workspace.dependencies.soroban-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +rev = "23a6d625c6d568f44d027a093fc3c00ccf22f7c5" [workspace.dependencies.soroban-token-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +rev = "23a6d625c6d568f44d027a093fc3c00ccf22f7c5" [workspace.dependencies.stellar-asset-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +rev = "23a6d625c6d568f44d027a093fc3c00ccf22f7c5" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4d49aa3ffe5ad271ade1adcdf5709d049d1cd794" +rev = "23a6d625c6d568f44d027a093fc3c00ccf22f7c5" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 92deea74c2d0fa5cbd5aa30d50ca1750b96c6b0b Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 30 Sep 2026 13:54:48 +0000 Subject: [PATCH 25/41] use reduce error type in build --- cmd/soroban-cli/src/commands/contract/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index d0c659772c..af9cd9964d 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -243,7 +243,7 @@ pub enum Error { Xdr(#[from] stellar_xdr::Error), #[error(transparent)] - ReduceSpec(#[from] soroban_spec::reduce::DuplicateName), + ReduceSpec(#[from] soroban_spec::reduce::Error), #[cfg(feature = "additional-libs")] #[error(transparent)] From 6bac87eb3452614550f55ef15d9d7c11072b02f2 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Wed, 30 Sep 2026 22:34:03 +0000 Subject: [PATCH 26/41] bump sdk pins to the 2043 head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 078fe63b65..05125a7c2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "28.1.0" [[package]] name = "soroban-ledger-snapshot" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "arbitrary", "bytes-lit", @@ -5452,7 +5452,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5471,7 +5471,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5482,7 +5482,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "prettyplease", "proc-macro2", @@ -5573,7 +5573,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "soroban-sdk", ] @@ -5581,7 +5581,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5630,7 +5630,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=90f5570a01e24e705281d282a627a2e658defa66#90f5570a01e24e705281d282a627a2e658defa66" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=851207d91726056bf68c56e38d525b0145180294#851207d91726056bf68c56e38d525b0145180294" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 9a97526457..930114a758 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "90f5570a01e24e705281d282a627a2e658defa66" +rev = "851207d91726056bf68c56e38d525b0145180294" [workspace.dependencies.soroban-spec-rust] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "90f5570a01e24e705281d282a627a2e658defa66" +rev = "851207d91726056bf68c56e38d525b0145180294" [workspace.dependencies.soroban-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "90f5570a01e24e705281d282a627a2e658defa66" +rev = "851207d91726056bf68c56e38d525b0145180294" [workspace.dependencies.soroban-token-sdk] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "90f5570a01e24e705281d282a627a2e658defa66" +rev = "851207d91726056bf68c56e38d525b0145180294" [workspace.dependencies.stellar-asset-spec] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "90f5570a01e24e705281d282a627a2e658defa66" +rev = "851207d91726056bf68c56e38d525b0145180294" [workspace.dependencies.soroban-ledger-snapshot] version = "28.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "90f5570a01e24e705281d282a627a2e658defa66" +rev = "851207d91726056bf68c56e38d525b0145180294" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 3b7360cc7047fb601700738a061354a9ca98f40c Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 1 Oct 2026 12:20:12 +0000 Subject: [PATCH 27/41] bump version to 30.0.0 and sdk pins --- Cargo.lock | 70 +++++++++---------- Cargo.toml | 34 ++++----- .../tests/fixtures/bye/Cargo.toml | 2 +- .../tests/fixtures/hello/Cargo.toml | 2 +- .../tests/fixtures/test-wasms/auth/Cargo.toml | 2 +- .../test-wasms/constructor/Cargo.toml | 2 +- .../test-wasms/custom_account/Cargo.toml | 2 +- .../test-wasms/custom_type/Cargo.toml | 2 +- .../test-wasms/empty_constructor/Cargo.toml | 2 +- .../test-wasms/hello_world/Cargo.toml | 2 +- .../tests/fixtures/test-wasms/swap/Cargo.toml | 2 +- .../fixtures/test-wasms/token/Cargo.toml | 2 +- .../test-wasms/token_renamed/Cargo.toml | 2 +- 13 files changed, 63 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bbd37db607..1a7a802d5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1748,7 +1748,7 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "doc-gen" -version = "28.1.0" +version = "30.0.0" dependencies = [ "clap-markdown", "soroban-cli", @@ -5251,7 +5251,7 @@ dependencies = [ [[package]] name = "soroban-cli" -version = "28.1.0" +version = "30.0.0" dependencies = [ "assert_fs", "async-compression", @@ -5408,12 +5408,12 @@ dependencies = [ [[package]] name = "soroban-hello" -version = "28.1.0" +version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "serde", "serde_json", @@ -5425,8 +5425,8 @@ dependencies = [ [[package]] name = "soroban-sdk" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "arbitrary", "bytes-lit", @@ -5451,8 +5451,8 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5470,8 +5470,8 @@ dependencies = [ [[package]] name = "soroban-spec" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5481,8 +5481,8 @@ dependencies = [ [[package]] name = "soroban-spec-rust" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "prettyplease", "proc-macro2", @@ -5496,7 +5496,7 @@ dependencies = [ [[package]] name = "soroban-spec-tools" -version = "28.1.0" +version = "30.0.0" dependencies = [ "base64 0.21.7", "escape-bytes", @@ -5516,7 +5516,7 @@ dependencies = [ [[package]] name = "soroban-spec-typescript" -version = "28.1.0" +version = "30.0.0" dependencies = [ "heck 0.4.1", "include_dir", @@ -5534,7 +5534,7 @@ dependencies = [ [[package]] name = "soroban-test" -version = "28.1.0" +version = "30.0.0" dependencies = [ "assert_cmd", "assert_fs", @@ -5572,16 +5572,16 @@ dependencies = [ [[package]] name = "soroban-token-sdk" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "soroban-sdk", ] [[package]] name = "soroban-token-spec" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5629,8 +5629,8 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" -version = "28.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=043e83b3d8d0e3b137c08cc3ee0672e9603404de#043e83b3d8d0e3b137c08cc3ee0672e9603404de" +version = "30.0.0" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" dependencies = [ "soroban-sdk", "soroban-token-spec", @@ -5638,18 +5638,18 @@ dependencies = [ [[package]] name = "stellar-bye" -version = "28.1.0" +version = "30.0.0" [[package]] name = "stellar-cli" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-cli", ] [[package]] name = "stellar-ledger" -version = "28.1.0" +version = "30.0.0" dependencies = [ "async-trait", "hex", @@ -5986,56 +5986,56 @@ dependencies = [ [[package]] name = "test_auth" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_constructor" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_custom_account" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_custom_types" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_empty_constructor" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_hello_world" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_swap" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_token" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -6043,14 +6043,14 @@ dependencies = [ [[package]] name = "test_token_renamed" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] [[package]] name = "test_udt" -version = "28.1.0" +version = "30.0.0" dependencies = [ "soroban-sdk", ] diff --git a/Cargo.toml b/Cargo.toml index 35e36f0154..52d4fd6725 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,25 +21,25 @@ exclude = [ ] [workspace.package] -version = "28.1.0" +version = "30.0.0" rust-version = "1.93.0" # Dependencies located in this repo: [workspace.dependencies.soroban-cli] -version = "=28.1.0" +version = "=30.0.0" path = "cmd/soroban-cli" default-features = false [workspace.dependencies.soroban-spec-typescript] -version = "28.1.0" +version = "30.0.0" path = "./cmd/crates/soroban-spec-typescript" [workspace.dependencies.soroban-spec-tools] -version = "28.1.0" +version = "30.0.0" path = "./cmd/crates/soroban-spec-tools" [workspace.dependencies.stellar-ledger] -version = "=28.1.0" +version = "=30.0.0" path = "cmd/crates/stellar-ledger" # Dependencies from the rs-stellar-xdr repo: @@ -54,34 +54,34 @@ version = "28.0.2" # https://github.com/stellar/rs-soroban-sdk/pull/1970, which names user-defined # types in contract specs by their fully qualified path: [workspace.dependencies.soroban-spec] -version = "28.0.0" +version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "043e83b3d8d0e3b137c08cc3ee0672e9603404de" +rev = "04d952b44508757f02ecc58f648750df6e339bee" [workspace.dependencies.soroban-spec-rust] -version = "28.0.0" +version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "043e83b3d8d0e3b137c08cc3ee0672e9603404de" +rev = "04d952b44508757f02ecc58f648750df6e339bee" [workspace.dependencies.soroban-sdk] -version = "28.0.0" +version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "043e83b3d8d0e3b137c08cc3ee0672e9603404de" +rev = "04d952b44508757f02ecc58f648750df6e339bee" [workspace.dependencies.soroban-token-sdk] -version = "28.0.0" +version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "043e83b3d8d0e3b137c08cc3ee0672e9603404de" +rev = "04d952b44508757f02ecc58f648750df6e339bee" [workspace.dependencies.stellar-asset-spec] -version = "28.0.0" +version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "043e83b3d8d0e3b137c08cc3ee0672e9603404de" +rev = "04d952b44508757f02ecc58f648750df6e339bee" [workspace.dependencies.soroban-ledger-snapshot] -version = "28.0.0" +version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "043e83b3d8d0e3b137c08cc3ee0672e9603404de" +rev = "04d952b44508757f02ecc58f648750df6e339bee" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] diff --git a/cmd/crates/soroban-test/tests/fixtures/bye/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/bye/Cargo.toml index 2fb527a0e7..1d6a5da00a 100644 --- a/cmd/crates/soroban-test/tests/fixtures/bye/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/bye/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "stellar-bye" -version = "28.1.0" +version = "30.0.0" edition = "2021" publish = false diff --git a/cmd/crates/soroban-test/tests/fixtures/hello/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/hello/Cargo.toml index 47c736ce1d..a13a870f9b 100644 --- a/cmd/crates/soroban-test/tests/fixtures/hello/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/hello/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "soroban-hello" -version = "28.1.0" +version = "30.0.0" edition = "2021" publish = false diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/auth/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/auth/Cargo.toml index c1525d84d2..294918b421 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/auth/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/auth/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_auth" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/constructor/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/constructor/Cargo.toml index 1a62fe4797..2e5b111529 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/constructor/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/constructor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_constructor" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_account/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_account/Cargo.toml index 7ca0cffdae..6421fbb081 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_account/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_account/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_custom_account" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_type/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_type/Cargo.toml index 79c6917aa5..edb89274de 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_type/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_type/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_custom_types" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/empty_constructor/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/empty_constructor/Cargo.toml index 480bcf5ac9..1d0c196671 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/empty_constructor/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/empty_constructor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_empty_constructor" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world/Cargo.toml index 5f7a42d901..7b86d45d1e 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_hello_world" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/swap/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/swap/Cargo.toml index 4d790bf80c..9d479af342 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/swap/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/swap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_swap" -version = "28.1.0" +version = "30.0.0" authors = ["Stellar Development Foundation "] license = "Apache-2.0" edition = "2021" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/token/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/token/Cargo.toml index 23cc948922..87af7bc976 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/token/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/token/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_token" -version = "28.1.0" +version = "30.0.0" description = "Soroban standard token contract" authors = ["Stellar Development Foundation "] license = "Apache-2.0" diff --git a/cmd/crates/soroban-test/tests/fixtures/test-wasms/token_renamed/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/test-wasms/token_renamed/Cargo.toml index 87d6d7f806..26e7b83cf2 100644 --- a/cmd/crates/soroban-test/tests/fixtures/test-wasms/token_renamed/Cargo.toml +++ b/cmd/crates/soroban-test/tests/fixtures/test-wasms/token_renamed/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "test_token_renamed" -version = "28.1.0" +version = "30.0.0" description = "A SEP-41-shaped token whose parameters use non-canonical names" authors = ["Stellar Development Foundation "] license = "Apache-2.0" From 100ccf2a498cd3aabd482349d2df49e813684b0a Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 1 Oct 2026 12:20:12 +0000 Subject: [PATCH 28/41] shake and reduce by the spec shaking model --- cmd/crates/soroban-test/tests/it/build.rs | 20 +++--- .../src/commands/contract/build.rs | 66 ++++++++++--------- 2 files changed, 45 insertions(+), 41 deletions(-) diff --git a/cmd/crates/soroban-test/tests/it/build.rs b/cmd/crates/soroban-test/tests/it/build.rs index 836d69398c..4d2f98e678 100644 --- a/cmd/crates/soroban-test/tests/it/build.rs +++ b/cmd/crates/soroban-test/tests/it/build.rs @@ -512,7 +512,7 @@ fn filter_and_dedup_spec_removes_duplicates() { .unwrap(), }); - // Build markers for the struct so it passes the version 2 filter + // Build markers for the struct so it passes the markers filter let mut markers = std::collections::HashSet::new(); markers.insert(soroban_spec::shaking::generate_marker_for_entry( &used_struct, @@ -528,7 +528,7 @@ fn filter_and_dedup_spec_removes_duplicates() { ]; let result_xdr = - filter_and_dedup_spec(entries, &markers, soroban_spec::shaking::Version::V2).unwrap(); + filter_and_dedup_spec(entries, &markers, soroban_spec::shaking::Model::Markers).unwrap(); // Parse back the entries from the XDR let result_entries: Vec = @@ -555,16 +555,16 @@ fn filter_and_dedup_spec_removes_duplicates() { fn build_with_spec_shaking_has_feature_meta() { let (_spec, meta) = build_spec_shaking_fixture(); - let version = soroban_spec::shaking::spec_shaking_version_for_meta(&meta); + let model = soroban_spec::shaking::model_for_meta(&meta); - // The fixture builds against a published soroban-sdk, which records - // version 2. The workspace's `[patch.crates-io]` does not reach a contract - // built in a temp dir, so this covers the version 2 rules end to end, and - // the SDK's own test contract covers version 3. + // The fixture builds against a published soroban-sdk, which records spec + // shaking version 2. The workspace's `[patch.crates-io]` does not reach a + // contract built in a temp dir, so this covers the markers rules end to + // end, and the SDK's own test contract covers the references rules. assert_eq!( - version, - soroban_spec::shaking::Version::V2, - "contractmeta should indicate spec shaking version 2" + model, + soroban_spec::shaking::Model::Markers, + "contractmeta should select the markers model" ); } diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index f198326561..b12ac6be13 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -374,8 +374,8 @@ impl Cmd { // Set env var to inform the SDK that this CLI supports spec // optimization. The var says only that this CLI shakes; which - // rules it shakes a given contract by comes from the version that - // contract records in its meta. Current and new SDK versions no + // rules it shakes a given contract by comes from the model that + // contract's meta selects. Current and new SDK versions no // longer read this var, relying on the CLI version below // instead, but it must keep being set for past SDK versions that // require it. @@ -404,8 +404,10 @@ impl Cmd { .join(&file); self.inject_meta(&target_file_path)?; - Self::filter_spec(&target_file_path)?; - Self::reduce_spec(&print, &p.name, &target_file_path)?; + let model = Self::filter_spec(&target_file_path)?; + if model == soroban_spec::shaking::Model::References { + Self::reduce_spec(&print, &p.name, &target_file_path)?; + } let final_path = if let Some(out_dir) = &self.out_dir { fs::create_dir_all(out_dir).map_err(Error::CreatingOutDir)?; @@ -535,20 +537,19 @@ impl Cmd { fs::write(target_file_path, wasm_bytes).map_err(Error::WritingWasmFile) } - /// Filters unused types and events from the contract spec. - /// - /// The contract records which spec shaking version it was built with, and - /// that version says which entries carry a marker and so what a missing - /// marker means. Read it and shake by its rules rather than the newest - /// known: a version 2 contract marks every used type, so markers alone say - /// what is used, while a version 3 contract marks only the events it - /// publishes and the errors it panics with, and every other type is - /// settled by following the references to it. + /// Filters unused types and events from the contract spec, and returns the + /// model the contract's spec is shaken by. /// - /// A version this CLI does not recognise reads as version 1, and a - /// version 1 contract carries no markers at all, so in both cases there is - /// nothing to shake by and the spec is left alone. - fn filter_spec(target_file_path: &PathBuf) -> Result<(), Error> { + /// The SDK that built the contract selects the model, which says which + /// entries carry a marker and so what a missing marker means. Read it from + /// the contract's meta and shake by its rules rather than the newest known: + /// a soroban-sdk v30 or later contract marks only the events it publishes + /// and the errors it panics with, and every other type is settled by + /// following the references to it, while a contract recording spec + /// shaking version 2 marks every used type, so markers alone say what is + /// used. Any other contract records nothing to shake by, and its spec is + /// left alone. + fn filter_spec(target_file_path: &PathBuf) -> Result { use soroban_spec_tools::contract::Spec; use soroban_spec_tools::wasm::replace_custom_section; @@ -557,19 +558,19 @@ impl Cmd { // Parse the spec from the wasm let spec = Spec::new(&wasm_bytes)?; - // Read the version the contract was built with, which selects the - // rules below. Nothing to shake by at version 1, so leave it alone. - let version = soroban_spec::shaking::spec_shaking_version_for_meta(&spec.meta); - if version == soroban_spec::shaking::Version::V1 { - return Ok(()); + // Read the model the contract is shaken by, which selects the rules + // below. Nothing to shake by under the none model, so leave it alone. + let model = soroban_spec::shaking::model_for_meta(&spec.meta); + if model == soroban_spec::shaking::Model::None { + return Ok(model); } // Extract markers from the WASM data section let markers = soroban_spec::shaking::find_all(&wasm_bytes); - // Filter spec entries (types, events) by that version's rules, and + // Filter spec entries (types, events) by that model's rules, and // deduplicate any exact duplicate entries. - let filtered_xdr = filter_and_dedup_spec(spec.spec.clone(), &markers, version)?; + let filtered_xdr = filter_and_dedup_spec(spec.spec.clone(), &markers, model)?; // Replace the contractspecv0 section with the filtered version let new_wasm = replace_custom_section(&wasm_bytes, "contractspecv0", &filtered_xdr) @@ -577,7 +578,8 @@ impl Cmd { // Write the modified wasm back fs::remove_file(target_file_path).map_err(Error::DeletingArtifact)?; - fs::write(target_file_path, new_wasm).map_err(Error::WritingWasmFile) + fs::write(target_file_path, new_wasm).map_err(Error::WritingWasmFile)?; + Ok(model) } /// Reduces user-defined type names in the contract spec to their simple @@ -589,8 +591,10 @@ impl Cmd { /// downstream tool see the short names. Names that would collide are /// disambiguated with a numeric suffix, which is warned about. /// - /// Runs after `filter_spec` so only the entries that survive shaking are - /// reduced, but is otherwise independent of spec shaking. + /// Runs only for contracts shaken by the references model, the soroban-sdk + /// v30 or later contracts whose specs name types by their fully qualified + /// path, and after `filter_spec` so only the entries that survive shaking + /// are reduced. fn reduce_spec(print: &Print, name: &str, target_file_path: &PathBuf) -> Result<(), Error> { use soroban_spec_tools::contract::Spec; use soroban_spec_tools::wasm::replace_custom_section; @@ -966,16 +970,16 @@ fn check_overflow_checks(doc: &toml_edit::DocumentMut, profile: &str) -> Result< } /// Filters spec entries down to those the contract needs, by the rules of the -/// spec shaking version it was built with, and deduplicates exact duplicates. +/// model its spec is shaken by, and deduplicates exact duplicates. /// /// Which entries survive is decided by `soroban_spec::shaking::filter` for the -/// given version. Exact duplicate entries (identical XDR) are then collapsed +/// given model. Exact duplicate entries (identical XDR) are then collapsed /// to a single occurrence. #[allow(clippy::implicit_hasher)] pub fn filter_and_dedup_spec( entries: Vec, markers: &HashSet, - version: soroban_spec::shaking::Version, + model: soroban_spec::shaking::Model, ) -> Result, Error> { let mut seen = HashSet::new(); let mut filtered_xdr = Vec::new(); @@ -983,7 +987,7 @@ pub fn filter_and_dedup_spec( Cursor::new(&mut filtered_xdr), Limits::depth(XDR_DEPTH_LIMIT), ); - for entry in soroban_spec::shaking::filter(entries, markers, version) { + for entry in soroban_spec::shaking::filter(entries, markers, model) { let entry_xdr = entry.to_xdr(Limits::depth(XDR_DEPTH_LIMIT))?; if seen.insert(entry_xdr) { entry.write_xdr(&mut writer)?; From 3adc9bff8aeff7e273158db6ff98a9d3a6a75dc9 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 1 Oct 2026 12:24:35 +0000 Subject: [PATCH 29/41] bump sdk pins to the 2043 head --- Cargo.lock | 16 ++++++++-------- Cargo.toml | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a7a802d5d..73a18c09a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "arbitrary", "bytes-lit", @@ -5452,7 +5452,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5471,7 +5471,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5482,7 +5482,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "prettyplease", "proc-macro2", @@ -5573,7 +5573,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "soroban-sdk", ] @@ -5581,7 +5581,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5630,7 +5630,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=04d952b44508757f02ecc58f648750df6e339bee#04d952b44508757f02ecc58f648750df6e339bee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6#5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 52d4fd6725..b6da4a1a19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "04d952b44508757f02ecc58f648750df6e339bee" +rev = "5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "04d952b44508757f02ecc58f648750df6e339bee" +rev = "5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "04d952b44508757f02ecc58f648750df6e339bee" +rev = "5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "04d952b44508757f02ecc58f648750df6e339bee" +rev = "5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "04d952b44508757f02ecc58f648750df6e339bee" +rev = "5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "04d952b44508757f02ecc58f648750df6e339bee" +rev = "5d6f30a6f2c68437e8b80f5a3ae4d70c69e8abd6" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From c2dbcd12e9a309593dfbbfefa45e35299bb7b0ee Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 1 Oct 2026 13:37:34 +0000 Subject: [PATCH 30/41] bump init template sdk to 30 --- .../contract-workspace-template/Cargo.toml.removeextension | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/soroban-cli/src/utils/contract-workspace-template/Cargo.toml.removeextension b/cmd/soroban-cli/src/utils/contract-workspace-template/Cargo.toml.removeextension index 27fc38e124..1b2b2b1ea3 100644 --- a/cmd/soroban-cli/src/utils/contract-workspace-template/Cargo.toml.removeextension +++ b/cmd/soroban-cli/src/utils/contract-workspace-template/Cargo.toml.removeextension @@ -5,7 +5,7 @@ members = [ ] [workspace.dependencies] -soroban-sdk = "28" +soroban-sdk = "30" [profile.release] opt-level = "z" From ea5c402fa71ff6648fedf64595e2ed8315348384 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 13:42:02 +0000 Subject: [PATCH 31/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0f83a1e8c1..8c53c7143c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=c80894f39c3796ce8383753126ca6174285e2cd8#c80894f39c3796ce8383753126ca6174285e2cd8" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index a8faa02537..fe20f406b7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c80894f39c3796ce8383753126ca6174285e2cd8" +rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c80894f39c3796ce8383753126ca6174285e2cd8" +rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c80894f39c3796ce8383753126ca6174285e2cd8" +rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c80894f39c3796ce8383753126ca6174285e2cd8" +rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c80894f39c3796ce8383753126ca6174285e2cd8" +rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "c80894f39c3796ce8383753126ca6174285e2cd8" +rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From c6c2e5d00b6415b7450a482028d0c0989b207a2b Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 13:48:36 +0000 Subject: [PATCH 32/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c53c7143c..ea1bc78e7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=be2a6bd58f2a206b3163e6d62fa747ce676de47e#be2a6bd58f2a206b3163e6d62fa747ce676de47e" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index fe20f406b7..f1a0431eef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" +rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" +rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" +rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" +rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" +rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "be2a6bd58f2a206b3163e6d62fa747ce676de47e" +rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From c9fd7206bd2cc00aa615690eb8e34e06706350a1 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 13:54:41 +0000 Subject: [PATCH 33/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea1bc78e7a..abb9d7074a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=450ec2703ba0f8b8da047919984dbad9696ce7a9#450ec2703ba0f8b8da047919984dbad9696ce7a9" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index f1a0431eef..862fe2edd0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" +rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" +rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" +rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" +rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" +rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "450ec2703ba0f8b8da047919984dbad9696ce7a9" +rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 173478b48d8a5b97e6484b14bf46ae40c0b64d93 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 13:56:07 +0000 Subject: [PATCH 34/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index abb9d7074a..09d5794534 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=717e9277f510e167aa77ecb4dbab75364b07cb73#717e9277f510e167aa77ecb4dbab75364b07cb73" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 862fe2edd0..4e954efae8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" +rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" +rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" +rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" +rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" +rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "717e9277f510e167aa77ecb4dbab75364b07cb73" +rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From c00ce30def1aa08ba83477418591b562198e2cbd Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 14:26:02 +0000 Subject: [PATCH 35/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 09d5794534..b895e8e712 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee#7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 4e954efae8..216aac45be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "7e30ac1d8f2013f3c296016b38f23be7c8c0e8ee" +rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 01a73547b889e759e93c0ea6e6f0d72df6416894 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 14:26:58 +0000 Subject: [PATCH 36/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b895e8e712..770496faa4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=05ade5c027b0ff1d34d866d990b7e67d551af589#05ade5c027b0ff1d34d866d990b7e67d551af589" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 216aac45be..743ad8390b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" +rev = "4db461307891ba89102b2789d030883f2f767a99" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" +rev = "4db461307891ba89102b2789d030883f2f767a99" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" +rev = "4db461307891ba89102b2789d030883f2f767a99" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" +rev = "4db461307891ba89102b2789d030883f2f767a99" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" +rev = "4db461307891ba89102b2789d030883f2f767a99" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "05ade5c027b0ff1d34d866d990b7e67d551af589" +rev = "4db461307891ba89102b2789d030883f2f767a99" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 6b68ed3465540f2716aebace434c74b5e4f138a1 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 14:38:01 +0000 Subject: [PATCH 37/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 770496faa4..ccf8246c14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=4db461307891ba89102b2789d030883f2f767a99#4db461307891ba89102b2789d030883f2f767a99" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 743ad8390b..2ac104a253 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4db461307891ba89102b2789d030883f2f767a99" +rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4db461307891ba89102b2789d030883f2f767a99" +rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4db461307891ba89102b2789d030883f2f767a99" +rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4db461307891ba89102b2789d030883f2f767a99" +rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4db461307891ba89102b2789d030883f2f767a99" +rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "4db461307891ba89102b2789d030883f2f767a99" +rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 095f7a1334b2090d9b1024fa14eedf4b766a681c Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 14:52:14 +0000 Subject: [PATCH 38/41] bump sdk pins to the 2043 head --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 12 ++++++------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ccf8246c14..7311f32aad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5413,7 +5413,7 @@ version = "30.0.0" [[package]] name = "soroban-ledger-snapshot" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "serde", "serde_json", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "soroban-meta" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "stellar-xdr", "thiserror 1.0.69", @@ -5436,7 +5436,7 @@ dependencies = [ [[package]] name = "soroban-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "arbitrary", "bytes-lit", @@ -5462,7 +5462,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "darling 0.20.11", "heck 0.5.0", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "soroban-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "base64 0.22.1", "stellar-xdr", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "prettyplease", "proc-macro2", @@ -5584,7 +5584,7 @@ dependencies = [ [[package]] name = "soroban-token-sdk" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "soroban-sdk", ] @@ -5592,7 +5592,7 @@ dependencies = [ [[package]] name = "soroban-token-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -5641,7 +5641,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" version = "30.0.0" -source = "git+https://github.com/stellar/rs-soroban-sdk?rev=27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca#27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +source = "git+https://github.com/stellar/rs-soroban-sdk?rev=a7081319bfa59a7da7352510dfa9e05734510be4#a7081319bfa59a7da7352510dfa9e05734510be4" dependencies = [ "soroban-sdk", "soroban-token-spec", diff --git a/Cargo.toml b/Cargo.toml index 2ac104a253..2532c75b00 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,32 +56,32 @@ version = "28.0.2" [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +rev = "a7081319bfa59a7da7352510dfa9e05734510be4" [workspace.dependencies.soroban-spec-rust] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +rev = "a7081319bfa59a7da7352510dfa9e05734510be4" [workspace.dependencies.soroban-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +rev = "a7081319bfa59a7da7352510dfa9e05734510be4" [workspace.dependencies.soroban-token-sdk] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +rev = "a7081319bfa59a7da7352510dfa9e05734510be4" [workspace.dependencies.stellar-asset-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +rev = "a7081319bfa59a7da7352510dfa9e05734510be4" [workspace.dependencies.soroban-ledger-snapshot] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk" -rev = "27e2ebebe0ece857c5f45b2f899c2c60fa4a53ca" +rev = "a7081319bfa59a7da7352510dfa9e05734510be4" # Dependencies from the rs-stellar-rpc-client repo: [workspace.dependencies.soroban-rpc] From 8e19dce8f446acfe23e337b8fee881548209c529 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 15:59:13 +0000 Subject: [PATCH 39/41] sanitize names in reduce warnings and errors --- cmd/soroban-cli/src/commands/contract/build.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cmd/soroban-cli/src/commands/contract/build.rs b/cmd/soroban-cli/src/commands/contract/build.rs index af9cd9964d..8de55d3ae3 100644 --- a/cmd/soroban-cli/src/commands/contract/build.rs +++ b/cmd/soroban-cli/src/commands/contract/build.rs @@ -242,8 +242,8 @@ pub enum Error { #[error(transparent)] Xdr(#[from] stellar_xdr::Error), - #[error(transparent)] - ReduceSpec(#[from] soroban_spec::reduce::Error), + #[error("{0}")] + ReduceSpec(String), #[cfg(feature = "additional-libs")] #[error(transparent)] @@ -591,7 +591,10 @@ impl Cmd { let wasm_bytes = fs::read(target_file_path).map_err(Error::ReadingWasmFile)?; let spec = Spec::new(&wasm_bytes)?; - let reduced = soroban_spec::reduce::reduce(&spec.spec)?; + // The error names entries of the spec, so sanitize it before it is + // printed, as the spec is untrusted input. + let reduced = soroban_spec::reduce::reduce(&spec.spec) + .map_err(|e| Error::ReduceSpec(sanitize(&e.to_string())))?; // If every name was already simple, leave the wasm untouched. if reduced.renames().all(|r| !r.renamed()) { @@ -602,14 +605,14 @@ impl Cmd { if !collisions.is_empty() { use std::fmt::Write as _; let mut msg = format!( - "{name}: reduced type names collided and were disambiguated with a numeric suffix:" + "{name}: reduced type and event names collided and were disambiguated with a numeric suffix:" ); for rename in collisions { let _ = write!( msg, "\n {} -> {}", - String::from_utf8_lossy(&rename.from), - String::from_utf8_lossy(&rename.to), + sanitize(&String::from_utf8_lossy(&rename.from)), + sanitize(&String::from_utf8_lossy(&rename.to)), ); } print.warnln(msg); From 56f6948b46ba705a8c5040cddc2ebcc72f3cb440 Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 16:10:42 +0000 Subject: [PATCH 40/41] test build reduces qualified names --- .../workspace-with-qualified-names/Cargo.toml | 18 ++++ .../contracts/names/Cargo.toml | 12 +++ .../contracts/names/src/lib.rs | 48 ++++++++++ cmd/crates/soroban-test/tests/it/build.rs | 93 +++++++++++++++++++ 4 files changed, 171 insertions(+) create mode 100644 cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/Cargo.toml create mode 100644 cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/Cargo.toml create mode 100644 cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/src/lib.rs diff --git a/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/Cargo.toml new file mode 100644 index 0000000000..97842e7b54 --- /dev/null +++ b/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/Cargo.toml @@ -0,0 +1,18 @@ +[workspace] +resolver = "2" +members = [ + "contracts/*", +] + +[workspace.dependencies] +soroban-sdk = { git = "https://github.com/stellar/rs-soroban-sdk", rev = "a7081319bfa59a7da7352510dfa9e05734510be4" } + +[profile.release] +opt-level = "z" +overflow-checks = true +debug = 0 +strip = "symbols" +debug-assertions = false +panic = "abort" +codegen-units = 1 +lto = true diff --git a/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/Cargo.toml b/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/Cargo.toml new file mode 100644 index 0000000000..f5e1bbe92b --- /dev/null +++ b/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "names" +version = "0.0.0" +edition = "2021" +publish = false + +[lib] +crate-type = ["cdylib"] +doctest = false + +[dependencies] +soroban-sdk = { workspace = true } diff --git a/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/src/lib.rs b/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/src/lib.rs new file mode 100644 index 0000000000..bd6def2f84 --- /dev/null +++ b/cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/src/lib.rs @@ -0,0 +1,48 @@ +#![no_std] +use soroban_sdk::{contract, contractevent, contractimpl, Env}; + +pub mod a { + use soroban_sdk::contracttype; + + #[contracttype] + pub struct State { + pub count: u32, + } +} + +pub mod b { + use soroban_sdk::contracttype; + + #[contracttype] + pub struct State { + pub enabled: bool, + } + + #[contracttype] + pub struct Wrapper { + pub state: State, + } +} + +#[contractevent] +pub struct Updated { + pub count: u32, +} + +#[contract] +pub struct Contract; + +#[contractimpl] +impl Contract { + pub fn get_a(_env: Env, state: a::State) -> a::State { + state + } + + pub fn get_b(_env: Env, wrapper: b::Wrapper) -> b::State { + wrapper.state + } + + pub fn update(env: Env, count: u32) { + Updated { count }.publish(&env); + } +} diff --git a/cmd/crates/soroban-test/tests/it/build.rs b/cmd/crates/soroban-test/tests/it/build.rs index 4d2f98e678..18c27dc6c8 100644 --- a/cmd/crates/soroban-test/tests/it/build.rs +++ b/cmd/crates/soroban-test/tests/it/build.rs @@ -1354,3 +1354,96 @@ fn contract_archive_dirty_tree_errors() { "no archive should be written for a dirty tree" ); } + +#[test] +fn build_reduces_qualified_names_and_rewrites_references() { + let sandbox = TestEnv::default(); + let outdir = sandbox.dir().join("out"); + let cargo_dir = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let fixture_path = cargo_dir.join("tests/fixtures/workspace-with-qualified-names"); + let temp = TempDir::new().unwrap(); + let dir_path = temp.path(); + fs_extra::dir::copy(fixture_path, dir_path, &CopyOptions::new()).unwrap(); + let dir_path = dir_path.join("workspace-with-qualified-names"); + + // The two `State` types collide once reduced to their last segment, and the + // build warns about the one it numbers. + sandbox + .new_assert_cmd("contract") + .current_dir(&dir_path) + .arg("build") + .arg("--out-dir") + .arg(&outdir) + .assert() + .success() + .stderr(predicate::str::contains( + "names: reduced type and event names collided and were disambiguated with a numeric suffix:", + )) + .stderr(predicate::str::contains("::names::b::State -> State2")); + + let wasm = std::fs::read(dir_path.join(&outdir).join("names.wasm")).unwrap(); + let spec = Spec::new(&wasm).unwrap(); + + let udt = |name: &str| { + soroban_cli::xdr::ScSpecTypeDef::Udt(soroban_cli::xdr::ScSpecTypeUdt { + name: name.try_into().unwrap(), + }) + }; + + let mut structs = Vec::new(); + let mut events = Vec::new(); + let mut functions = Vec::new(); + for entry in &spec.spec { + match entry { + ScSpecEntry::UdtStructV0(s) => structs.push(( + s.name.to_utf8_string_lossy(), + s.fields.iter().map(|f| f.type_.clone()).collect::>(), + )), + ScSpecEntry::EventV0(e) => events.push(e.name.to_utf8_string_lossy()), + ScSpecEntry::FunctionV0(f) => functions.push(( + f.name.to_utf8_string_lossy(), + f.inputs.iter().map(|i| i.type_.clone()).collect::>(), + f.outputs.to_vec(), + )), + _ => {} + } + } + structs.sort_by(|a, b| a.0.cmp(&b.0)); + functions.sort_by(|a, b| a.0.cmp(&b.0)); + + // `a::State` sorts before `b::State` by its full name, so keeps the name, and + // `b::State` is numbered. Every name is reduced to its last segment. + assert_eq!( + structs, + [ + ( + "State".to_string(), + vec![soroban_cli::xdr::ScSpecTypeDef::U32] + ), + ( + "State2".to_string(), + vec![soroban_cli::xdr::ScSpecTypeDef::Bool] + ), + ("Wrapper".to_string(), vec![udt("State2")]), + ] + ); + assert_eq!(events, ["Updated"]); + + // The references in the functions are rewritten to the reduced names. + assert_eq!( + functions, + [ + ("get_a".to_string(), vec![udt("State")], vec![udt("State")]), + ( + "get_b".to_string(), + vec![udt("Wrapper")], + vec![udt("State2")] + ), + ( + "update".to_string(), + vec![soroban_cli::xdr::ScSpecTypeDef::U32], + vec![] + ), + ] + ); +} From 1d7297cd06b140227d8b87793f62b3513d8d118b Mon Sep 17 00:00:00 2001 From: Leigh <351529+leighmcculloch@users.noreply.github.com> Date: Fri, 2 Oct 2026 16:47:50 +0000 Subject: [PATCH 41/41] point sdk pin comment at rs-soroban-sdk#2043 --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2532c75b00..5845c2a1f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,8 +51,8 @@ version = "28.0.0" version = "28.0.2" # Dependencies from the rs-soroban-sdk repo, pinned to -# https://github.com/stellar/rs-soroban-sdk/pull/1970, which names user-defined -# types in contract specs by their fully qualified path: +# https://github.com/stellar/rs-soroban-sdk/pull/2043, which shakes specs by +# following the references to each type by name: [workspace.dependencies.soroban-spec] version = "30.0.0" git = "https://github.com/stellar/rs-soroban-sdk"