v26.0.0-rc.1
Pre-releaseWhat's Changed
Breaking Changes
-
Spec shaking v2 enabled by default — The
experimental_spec_shaking_v2feature 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_contracttodebug_assert_in_contract— Theassert_in_contractmacro has been renamed todebug_assert_in_contractand 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 deprecatedTokenUtils::events()helper, the legacyeventmodule, and theEventswrapper have been removed. These were originally deprecated in v23. (#1822) -
Removed
#[macro_export]from internalimpl_bytesn_reprmacro — 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 newtrust()function creates an unlimited trustline for a specified address, requiring the recipient's authorization viarequire_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_addressandmuxed_address_to_strkey).MuxesAddressnow uses these forfrom_stringandto_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 returnOptioninstead of trapping on overflow, allowing contracts to handle arithmetic errors gracefully. Also addsmin_valueandmax_valuehelpers 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_V2environment variable is not set (e.g. when building withcargo builddirectly instead ofstellar-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 — Updatessoroban-env-common,soroban-env-guest, andsoroban-env-hostto 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_reprand remove export by @jayz22 in #1829 - Update
soroban-env-*crates to version=v26.1.2by @mootz12 in #1830 - Rename
assert_in_contracttodebug_assert_in_contractby @mootz12 in #1806 - Remove deprecated token event format from
soroban-token-sdkby @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