Skip to content

chore(deps): update soroban-sdk requirement from 21.0.0 to 28.0.0 - #132

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/soroban-sdk-28.0.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/soroban-sdk-28.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 21, 2026

Copy link
Copy Markdown

Updates the requirements on soroban-sdk to permit the latest version.

Release notes

Sourced from soroban-sdk's releases.

28.0.0

This is a release supporting Protocol 28. Upgrading requires changes to some contracts. See the migration guide for the full detail on each breaking change below.

Breaking changes

  • Build contracts with stellar-cli v25.2.0 or newer. Spec shaking v2 is now always on, so the SDK emits a spec entry for every type and relies on the build system to strip the unreachable ones. Remove the experimental_spec_shaking_v2 feature from the soroban-sdk dependency, and remove any export = ... argument from contracttype, contracterror, and contractevent, which is now a compile error. Native builds and unit tests are unaffected. #1968
  • Remove any lib = ... argument from contracttype, contracterror, and contractevent. It is now a compile error, and contractimport! always generates the full type definition instead of aliasing into another crate. #1951 #2000
  • A contracttype struct can be read from stored data with extra or missing fields (CAP-86). A field missing from the map reads as None if it is an Option, and errors otherwise, and a map key that is not a field of the struct is ignored and dropped, where both used to panic. An Option field can now be added or removed without migrating everything already stored. Writing is unchanged and still writes every field. #2006
  • Events no longer publish fields that are unset (CAP-86). In a contractevent with data_format = "map", a field whose value is void, or Option::None, is left out of the published map rather than written as a key with a void value. Any off-chain system consuming the events must tolerate the absent key. Keep publishing every field with #[contractevent(sparse = false)]. #2008
  • Deploying and upgrading take a ContractExecutable (CAP-85). deploy_contract replaces deploy_v2, and update_current_contract replaces update_current_contract_wasm; the old ones still work but are deprecated. Wrap the Wasm hash in ContractExecutable::Wasm(...) to migrate. #2020
  • Test snapshots change for tests that register contracts natively. Every natively registered contract now gets its own contract code entry rather than sharing one empty entry, so snapshot JSON files are regenerated on upgrade. For a test that depended on contracts sharing a code entry, upload the contract once with Env::upload and deploy it repeatedly instead. #2014
  • The Approve event field expiration_ledger is renamed live_until_ledger, matching the name SEP-41 uses. Rename it wherever the event is constructed or matched on. #1985
  • #[contractimpl(contracttrait)] on an impl block that does not implement a trait is now a compile error. It was accepted and silently did nothing. #1992
  • Some test utilities now panic when called inside a contract function. Call them from the test, outside the contract. #2010

New features

  • Protocol 28 support, with soroban-env-* at 28.0.2 and stellar-xdr at 28.0.0. #1986
  • Manage contract executable references from a contract (CAP-85) with Env::executable_refs(), and deploy from one by passing ContractExecutable::ExternalRef. #2020
  • Upload a natively defined contract in tests with Env::upload and Env::upload_at, making it possible to test a factory, or any other contract that deploys from an existing code entry, without needing to build the contract to Wasm. #2007
  • Fuzz and property test with account addresses using the new ArbitraryAddressAccount prototype, which generates G... addresses so the account path of a contract gets exercised. ArbitraryAddress still generates contract addresses and is also named ArbitraryAddressContract. #2024
  • Use SorobanArbitrary prototypes with proptest, now documented in testutils::proptest. #2011

Fixes

  • MuxedAddress values from different Envs can be compared in tests. #2047
  • BytesN<N> rejects an N larger than u32::MAX when converting from Bytes. #2050
  • Generated and internal spec XDR statics are now private and hidden from docs. #2054 #2032

Full Changelog: stellar/rs-soroban-sdk@v27.0.6...v28.0.0

Commits
  • 48d5067 Bump version to 28.0.0 (#2067)
  • 3bb283c Fix contractimport! doc example and generated-client name in docs (#2056)
  • 9bafcef Add migration docs for check auth contract executable changes (#2057)
  • 5e875b5 Bump version to 28.0.0-rc.2 (#2055)
  • f4f46a2 Reject oversized BytesN lengths in try_from Bytes (#2050)
  • aa700d0 Make generated spec XDR statics private (#2054)
  • b230e55 Add custom account example to auth docs (#2053)
  • c632f79 Fix MuxedAddress comparison across environments in tests (#2047)
  • 73a2a8c Fix duplicate banner on published docs index (#2039)
  • a9b3c62 Improve the default example in the SDK docs (#2041)
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [soroban-sdk](https://github.com/stellar/rs-soroban-sdk) to permit the latest version.
- [Release notes](https://github.com/stellar/rs-soroban-sdk/releases)
- [Commits](stellar/rs-soroban-sdk@v21.0.1-preview.1...v28.0.0)

---
updated-dependencies:
- dependency-name: soroban-sdk
  dependency-version: 28.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Sep 21, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants