Skip to content

v26.0.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@mootz12 mootz12 released this 09 Apr 15:07
c80fb1b

What's Changed

Breaking Changes

  • Spec shaking v2 enabled by default — The experimental_spec_shaking_v2 feature is now included in the default feature set, improving the specification optimization process. Users can still disable it via feature flags if needed. (#1812)

  • Renamed assert_in_contract to debug_assert_in_contract — The assert_in_contract macro has been renamed to debug_assert_in_contract and hidden from public documentation, as it is intended for internal use only. The old name has been deprecated. (#1806)

  • Removed deprecated token event format from soroban-token-sdk — The deprecated TokenUtils::events() helper, the legacy event module, and the Events wrapper have been removed. These were originally deprecated in v23. (#1822)

  • Removed #[macro_export] from internal impl_bytesn_repr macro — This macro was only intended as an internal helper. Its public export has been removed. (#1829)

New Features

  • CAP-73 — Stellar Asset Contract trust() function: Enables the Stellar Asset Contract to create trustlines for classic G-accounts. The new trust() function creates an unlimited trustline for a specified address, requiring the recipient's authorization via require_auth. (#1801)

  • CAP-78 — Limited TTL extensions on contract data: Introduces new TTL extension methods that allow developers to set explicit maximum limits on TTL extensions for persistent and instance storage entries. (#1807)

  • CAP-79 — Muxed address strkey conversion: Adds host functions for converting between Stellar strkey format strings and muxed address objects (strkey_to_muxed_address and muxed_address_to_strkey). MuxesAddress now uses these for from_string and to_strkey. (#1745)

  • CAP-80 — Additional BN254 and BLS12-381 host functions: Add new functions for BN254 MSM, BN254 modular arithmetic, and curve membership checks for BLS12-381 and BN254. (#1745)

  • CAP-82 — Checked arithmetic for 256-bit integers: Adds checked_{add, sub, mul, pow, div, rem_euclid, shl, shr} functions for 256-bit integer types. These return Option instead of trapping on overflow, allowing contracts to handle arithmetic errors gracefully. Also adds min_value and max_value helpers and == operator support for 256-bit number types. (#1801) (#1823)

Improvements

  • Spec shaking v2 gracefully falls back to v1 — When the SOROBAN_SDK_BUILD_SYSTEM_SUPPORTS_SPEC_SHAKING_V2 environment variable is not set (e.g. when building with cargo build directly instead of stellar-cli), spec shaking v2 now falls back to v1 instead of panicking. A compiler warning is emitted on Wasm targets. (#1831)

  • Updated soroban-env-* crates to v26.1.2 — Updates soroban-env-common, soroban-env-guest, and soroban-env-host to v26.1.2, including adjustments to testutils for the renamed invocation hook/event API. (#1830)

All Changes

  • Update to v26 and add support for CAP-73, 78, 79, 80 and 82 by @mootz12 in #1814
  • Enable spec shaking v2 by default by @leighmcculloch in #1812
  • clean up macro impl_bytesn_repr and remove export by @jayz22 in #1829
  • Update soroban-env-* crates to version =v26.1.2 by @mootz12 in #1830
  • Rename assert_in_contract to debug_assert_in_contract by @mootz12 in #1806
  • Remove deprecated token event format from soroban-token-sdk by @mootz12 in #1822
  • Fallback to spec shaking v1 if env var is not set by @mootz12 in #1831

Full Changelog: v25.3.1...v26.0.0-rc.1