Skip to main content

Software Versions

caution

Release candidates are software releases that are also released to the Testnet test network. Software releases may occur between Testnet releases. If you're interacting with Testnet, the recommended software versions to use in development are provided below. Releases to Testnet may include network resets and network passphrase changes.

Protocol 22 (Mainnet, December 5, 2024)

Software

SoftwareVersion
XDRv22.0
Rust XDRv22.0.0
Soroban Environmentv22.1.2
Stellar Corev22.0.0
Soroban Rust SDKv22.0.3
Stellar CLIv22.0.1
Stellar RPCv22.1.0
Stellar Horizonv22.0.1
Stellar Quickstartdocker.io/stellar/quickstart:v455-latest@sha256:bbd4cea64c5428381ac5ace7c380ed7c3b72f12488aeb1f1bf19c48e74244af8
Stellar JS Stellar Basev13.0.1
Stellar JS Stellar SDKv13.1.0
Freighter
Laboratory
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Release notes

Core

New features in Protocol 22:

Soroban Rust SDK

Key protocol-related changes:

  • Support for constructors
  • Support for BLS12-381 host functions

Stellar CLI (Previously Soroban CLI)

Protocol 21 (Mainnet, June 18, 2024)

Software

SoftwareVersion
XDRv21.1
Rust XDRv21.0.1
Soroban Environmentv21.0.2
Stellar Corev21.0.0
Soroban Rust SDK21.0.1-preview.3
Stellar CLIv21.0.0
Soroban RPCv21.3.0
Stellar Horizonv2.30.0
Stellar Quickstarthttps://hub.docker.com/layers/stellar/quickstart/v426-latest-amd64/images/sha256-274395daab6fa8033b9213f152d56699358917fb01d7c7e95392a37fc00c9d01
Stellar JS Stellar Basev12.0.0-rc1
Stellar JS Stellar SDKv12.1.0
Freighter
Laboratory
Soroban React Payment dappTBD
Soroban Mint Token dappTBD
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Release notes

Core

New features in Protocol 21:

Soroban Rust SDK

Key protocol-related changes:

  • Support for secp256r1 signature verification
  • Support for extending TTL of contract instance and code separate from each other

Stellar CLI (Previously Soroban CLI)

Note: Soroban CLI has been renamed to Stellar CLI.

  • Add stellar-cli crate alongside soroban-cli
  • Rename to stellar-cli
  • Install stellar and soroban CLIs when installing either
  • Update completions to use stellar instead of soroban
  • Update other references to stellar-cli
  • Add support for contract id alias name when deploying and invoking contracts
  • Extract alias logic into its own implementation
  • Embed examples contract list into source and remove from build script
  • Add cache sub commands and allow for proper transaction data logging
  • Update TS Bindings stellar-sdk dep to 12rc2
  • Add no-build option for fee::Args
  • Do not auto add test account to keys
  • Output TransactionEnvelope instead of Transaction for --build-only
  • Ledger signing
  • Use safe unwrapping in option unwrap
  • Exclude host only functions from client
  • Add container log tailing cmd
  • Update network container start command to use updated enable flags
  • Add libudev-dev as dep
  • Bump versions of dependencies
  • Update to newest soroban-rpc and copy over old signing logic
  • Remove deprecated lab token command
  • Remove deprecated config command
  • Remove lab xdr command
  • Add xdr command to root

Protocol 21 (Testnet only, May 20, 2024)

Software

SoftwareVersion
XDRv21.1
Rust XDRv21.0.1
Soroban Environmentv21.0.2
Stellar Corev21.0.0
Soroban Rust SDK21.0.1-preview.3
Soroban CLIv21.0.0-rc.1
Soroban RPCv21.2.0
Stellar Horizonv2.30.0
Stellar Quickstarthttps://hub.docker.com/layers/stellar/quickstart/v426-latest-amd64/images/sha256-274395daab6fa8033b9213f152d56699358917fb01d7c7e95392a37fc00c9d01
Stellar JS Stellar Basev12.0.0-rc1
Stellar JS Stellar SDKv12.0.0-rc.3
Freighter
Laboratory
Soroban React Payment dappTBD
Soroban Mint Token dappTBD
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Release notes

Core

This is the first stable Core release supporting protocol 21. New features in protocol 21:

Soroban Rust SDK

This is the first version of the Soroban SDK that supports protocol 21. It is marked as 'preview' because contracts built with SDK v21 will only be compatible with the networks upgraded to protocol 21. Key protocol-related changes:

  • Support for secp256r1 signature verification
  • Support for extending TTL of contract instance and code separate from each other

Protocol 21: Preview 1 (Testnet only, April 12, 2024)

Software

SoftwareVersion
XDRv21.1
Rust XDRv21.0.1
Soroban Environmentv21.0.1
Stellar Corev21.0.0rc1
Soroban Rust SDK21.0.1-preview.1
Soroban CLIv21.0.0-preview.1
Soroban RPCv21.0.1
Stellar Horizonv2.30.0
Stellar Quickstart``
Stellar JS Stellar Basev11.1.0
Stellar JS Stellar SDKv12.0.0-rc.1
Freighter``
Laboratory``
Soroban React Payment dappTBD
Soroban Mint Token dappTBD
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Release notes

Core

This is the first Core release supporting protocol 21. New features in protocol 21:

Soroban Rust SDK

This is the first version of the Soroban SDK that supports protocol 21. It is marked as 'preview' because contracts built with SDK v21 will only be compatible with the networks upgraded to protocol 21. The API itself may be considered stable. Key changes:

  • Support for secp256r1 signature verification
  • Support for extending TTL of contract instance and code separate from each other

Protocol 20: Soroban Phase 2 (March 19, 2024)

Software

SoftwareVersion
XDR3da6ebcbd8afa01d5c94dbc7f0475f4c00089420
Soroban Environmentv20.2.2
Soroban Interface Version0
Soroban Resource LimitsPhase 2 Limits
Soroban Resource FeesPhase 2 Fees
Stellar Corev20.3.0
Soroban Rust SDKv20.4.0
Soroban CLIv20.3.1
Soroban RPCv20.3.3
Stellar Horizonv2.28.3
Stellar FriendbotTBD
Stellar Quickstartdocker.io/stellar/quickstart:latest@sha256:1a82b17a4fae853d24189dd25d4e6b774fa7a1b6356a993e618c6e9bd2f3e04c
Stellar JS Stellar Basev11.0.0
Stellar JS Stellar SDKv11.2.2
Freighterv5.17.0
Laboratoryv4.1.0
Soroban React Payment dappTBD
Soroban Mint Token dappTBD
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Changelog

Core

  • Remove use of C99 that looks like Cxx20 designated initializers
  • Reduce scan size in phase1
  • Add simulate subcommand to network survey script
  • Continue to capture SCP messages for previous ledger in database
  • Rewrite state loading path on startup
  • Add support for debug-tx-set in dump-xdr
  • Bucket cleanup
  • Update phase1 settings
  • Fix compile error (Visual C++)
  • Update soroban settings files and utils
  • Add new throttling metrics
  • Adds CLI tool to print BucketList archival stats
  • Update denominators
  • Set key size to initial value
  • Update max_entries_to_archive to be 1000.
  • Restrict "prev" test to just the voting path, to allow catchup.
  • Strkey update
  • Add scripts/extract-wasms.sh
  • Bump overlay min version to 32
  • Fix noisy eviction scan warnings
  • Early initialization of soroban metrics

Soroban Rust SDK

  • Display String contents in Debug implementation
  • Add Bytes to_buffer and to_alloc_vec
  • Move the Env testutil internal types into a single type
  • Add option to disable test snapshots on Env
  • Bump version to 20.4.0

Protocol 20: Soroban Phase 1 (February 27, 2024)

Software

SoftwareVersion
XDR8b9d623ef40423a8462442b86997155f2c04d3a1
Soroban Environmentv20.2.2
Soroban Interface Version0
Soroban Resource LimitsPhase 1 Limits
Soroban Resource FeesPhase 1 Fees
Stellar Corev20.2.0
Soroban Rust SDKv20.3.2
Soroban CLIv20.3.1
Soroban RPCv20.3.3
Stellar Horizonv2.28.3
Stellar FriendbotTBD
Stellar Quickstartdocker.io/stellar/quickstart:latest@sha256:1a82b17a4fae853d24189dd25d4e6b774fa7a1b6356a993e618c6e9bd2f3e04c
Stellar JS Stellar Basev11.0.0
Stellar JS Stellar SDKv11.2.2
Freighterv5.17.0
Laboratoryv4.1.0
Soroban React Payment dappTBD
Soroban Mint Token dappTBD
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Changelog

Soroban RPC

  • (tag: v20.3.3) Bump version to 20.3.3
  • Update Dockerfile and Makefile to refer rpc instead of tools
  • Fix publish-dry-run failures
  • Revert "soroban-rpc: Remove publish-dry-run Workflow"
  • Perform fee padding in a larger bit width of integers
  • (tag: v20.3.2) Bump version to 20.3.2
  • Merge pull request #68 from stellar/add-spec-tools-crate
  • Merge branch 'main' into add-spec-tools-crate
  • Change module from soroban-tool to rpc in go.mod
  • Add hardcoded WASM file and reference it in tests
  • Uncomment install_rust
  • Add prometheus hook to count different log levels
  • Remove build-test-wasms from makefile

Soroban CLI

  • (tag: v20.3.1) Bump version to 20.3.1
  • Update references in end-to-end tests to point to the latest releases
  • Bump version of soroban rpc and spec tools
  • Repoint soroban-spec-tools to the moved one in stellar/soroban-rpc
  • Rename Cargo.toml in the init template files
  • soroban-cli: Remove ALL RPC Related Code and Workflows
  • Use soroban-rpc crate from the RPC repo
  • fix: embed the init template files in the build
  • [Epic] Separating soroban-rpc to prepare for repo change
  • Soroban contract init followup
  • Merge pull request #1190 from stellar/release/v20.3.0
  • Merge branch 'main' into release/v20.3.0
  • Revert "[Epic] Separating soroban-rpc to prepare for repo change"
  • [Epic] Separating soroban-rpc to prepare for repo change

Protocol 20: Soroban Phase 1 (Mainnet Edition) (February 5, 2024)

Software

SoftwareVersion
XDR8b9d623ef40423a8462442b86997155f2c04d3a1
Soroban Environmentv20.2.2
Soroban Interface Version0
Soroban Resource LimitsPhase 0 Limits
Soroban Resource FeesPhase 0 Fees
Stellar Corev20.2.0
Soroban Rust SDKv20.3.2
Soroban CLIv20.3.0
Soroban RPCv20.3.1
Stellar Horizonv2.28.3
Stellar FriendbotTBD
Stellar Quickstartdocker.io/stellar/quickstart:latest@sha256:8d6f6520ad3842042bfe4e271f8b2324ec2f128564487abedd3876cea83af4f1
Stellar JS Stellar Basev11.0.0
Stellar JS Stellar SDKv11.2.2
Freighter5.16.0
Laboratoryv4.1.0
Soroban React Payment dappv3.0.0
Soroban Mint Token dappv3.0.0
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
Mainnet Network PassphrasePublic Global Stellar Network ; September 2015

Changelog

XDR

  • Run CI for the msrv and latest rust version
  • Backfill changes to next for json rendering
  • Bump XDR
  • Bump version to 20.1.0

Soroban Environment

  • Allow small version-range wiggle room on curve25519-dalek to enable docs.rs nightly build
  • Bump version to 20.2.2
  • Enable publish of soroban-simulation crate
  • Add a function to invoke host function 'end-to-end' in recording mode.
  • Bug 1283 asset code rendering
  • Use strkeys for contract IDs and addresses in diagnostic events.
  • Turn off wasm_reference_types in Wasmi
  • Prng tests
  • Remove ConversionError from ScVal/Val conversions
  • Tightening up metering in auth
  • Bump XDR to 20.1
  • Allow negative fee1 kb low
  • Bump version to 20.2.0
  • Cover various Symbol conversion code paths with various valid/invalid cases
  • Run CI for the msrv and latest rust version
  • Add protocol version method to invoke_contract
  • Enable VM execution in a WASM environment by guarding time track behind time feature
  • Add test for checking VM stack depth.
  • Migrate preflight computations from soroban-rpc
  • soroban-simulate: Misc fixes
  • Add CI job to run cargo-semver-checks
  • Tracing
  • Add some basic test coverage for e2e_invoke.
  • Add test vectors for ed25519 edge cases
  • Trace should not emit diagnostic errors
  • Bump wasmi to 0.31.1-soroban.20.0.1
  • Bump version to 20.1.1

Soroban Rust SDK

  • Update soroban-env-*
  • Bump version to 20.3.2
  • Update extend_ttl docs
  • Bug 1076 conversion error flattening

Soroban RPC

  • Migrate Soroban Tools to Soroban RPC
  • Use soroban-tools Crates
  • Pull in Recent Soroban RPC changes from soroban-tools
  • Mirror Last Remaining PRs from soroban-tools Repo
  • Add Workflow to Publish soroban-rpc Crate
  • added user agent config on ha archive pool
  • Update getTxn rpc with events data
  • Remove publish-dry-run Workflow
  • Use external soroban-simulation library for preflight computations
  • Store and serve the event transaction ID
  • Reduce event memory footprint
  • Add diagnostic events to sendTransaction response
  • Remove panics from internal codebase

Soroban CLI

  • feat: soroban init command
  • Bump dependencies for pubnet release
  • Upgrade Ubuntu to 22.04 from 20.04
  • Bump Go, Rust and Core dependencies
  • feat/cli: Move config commands to top level
  • bindings-ts: update to latest SDK & TypeScript, add CI test
  • TypeScript bindings have been updated to use the latest stellar-sdk
  • Support multi-auth workflows in typescript bindings
  • Replace cli xdr command with stellar-xdr cli
  • Update typescript bindings for latest versions
  • Warn about RC versions only when using pubnet

Stable v20.1.0 (January 11, 2024)

Software

SoftwareVersion
XDRbb54e505f814386a3f45172e0b7e95b7badbe969
Soroban Environmentv20.1.0
Soroban Interface Version0
Stellar Corev20.1.0
Soroban Rust SDKv20.2.0
Soroban CLIv20.2.0
Soroban RPCv20.2.0
Stellar Horizonv2.27.0
Stellar FriendbotTBD
Stellar Quickstartdocker.io/stellar/quickstart:soroban-dev@sha256:64b2d14b8a531c534560e287768846f538b2f063fc776aa9ca016c788e86c782
Stellar JS Stellar Basev10.0.1
Stellar JS Stellar SDKv11.2.0
Freighter5.9.0
LaboratoryTBD
Soroban React Payment dappTBD
Soroban Mint Token dappTBD
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015

Changelog

Soroban Rust SDK

  • Fix bug with Timepoint/Duration as parameters/returns
  • Add storage update fns
  • Export functions for creating Timepoint/Duration
  • Allow &Env in contract fns

Stable v20.0.0 (December 18, 2023)

Software

SoftwareVersion
XDRbb54e505f814386a3f45172e0b7e95b7badbe969
Soroban Environmentv20.0.0
Soroban Interface Version0
Stellar Corev20.0.1
Soroban Rust SDKv20.0.0
Soroban CLIv20.0.2
Soroban RPCv20.0.2
Stellar Horizonv2.27.0
Stellar FriendbotTBD
Stellar Quickstartdocker.io/stellar/quickstart:testing@sha256:3c7947f65db493f2ab8ca639753130ba4916c57d000d4a1f01ec530e3423853b
Stellar JS Stellar Basev10.0.0
Stellar JS Stellar SDKv11.0.1
Stellar JS Soroban Clientv1.0.0 (deprecated, prefer the Stellar SDK)
Freighter5.12.0
Laboratory4.11.0
Soroban React Payment dapp3.0.0
Soroban Mint Token dapp3.0.0
Soroban Swap Token dappTBD
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015

Changelog

XDR

  • Update the docs for extendTTL/restore ops to match the threshold change

Soroban Environment

  • Make RecordedAuthPayload consistently return None for invoker.
  • Expiration-related fixes
  • Turn dynamic borrow panics into HostErrors
  • Use Ed25519 verify_strict function rather than just verify, fix #857
  • Misc int32 issues
  • Enforce object handle integrity when inserting into containers, fix #569
  • Add testcase for out-of-order scmaps, fix #223.
  • Add a function to compute the rent fee.
  • Use host.err for auth error
  • Add a smoke test for recording auth for create contract host fn.
  • Stop treating storage errors as missing entries
  • Refactor authorization manager to only maintain mutable borrow on minimal amount of fields
  • Bump xdr
  • Add rent bumps to the SAC
  • Add is_admin function
  • Bump xdr
  • Add function to compute the write fee based on the ledger size.
  • Prohibit using disjoint signatures to cover the auth tree.
  • Enforce DepthLimiter in the Host to avoid stack overflow
  • Relative objects in wasm
  • Adapt to ResourceLimiter, replacing mem_fuel metering
  • Make del_contract_data no-op for removing non-existent instance storage key.
  • Add "tracy" feature to enable Tracy profiler, with some basic annotations
  • Update host to account for the XDR changes.
  • Update rust-version
  • Adapt to SCError change to be an enum, with ContractError(u32)
  • Make some host errors non-recoverable in try_call.
  • Fix panic-string-logging code path broken by recent dynamic-borrow fix.
  • Add soroban-bench-utils, add benchmark tests to measure metering accuracy
  • Bump env xdr and do the fee library changes corresponding to config changes
  • Bump env xdr
  • Remove event topic limits
  • Bump env xdr
  • Unify/fix expiration bump logic in host.
  • Add new tests for error escalation from contract calls.
  • Add a helper that invokes a host function 'end-to-end'
  • Add helpers for container bulk init; applies to auth metering
  • Switch some auth errors from Internal to InvalidInput.
  • Enable post-MVP WASM ops (sign-ext and mutable-globals), fix #968.
  • More token tests
  • Alloc example
  • Mop up some residual uses of format strings in errors (no longer supported)
  • Add wasm for upgrade write-bytes contract
  • Scale the linear cost model coefficient; improve model fitting
  • Error if bumping past max_entry_expiration and host function to retrieve max_entry_expiration
  • Make has checks to properly populate the storage map in recording mode
  • Clean up budget cost types
  • Add debug events to storage error reporting.
  • Switch to stable rust-analyzer in CI
  • Add some comments and tests to env-common/symbol.rs
  • Upgrade dalek crates to new stable versions.
  • Add an option to return an error when encountering non-root auth in recording mode.
  • Reject env.json if there are duplicate export names, fix #189
  • Tighten signature of unchecked_visit_val_obj, fix #595
  • Tighten dependencies further
  • Fix incorrect argument name
  • Bump env xdr
  • Tighten up Map and Vector and metering coverage
  • Store dummy instance for test contracts.
  • Update XDR to take change that removes SCSpecTypeSet
  • Fix comparison in Tag::is_object
  • Fix calibration due to delak change
  • Charge write fees for expiration entry bumps.
  • Reduce the expiration entry write size.
  • Refactor host to support the new expiration ledger approach.
  • Add lifetime threshold
  • Enable build workflow for merge groups
  • Remove key size from rent change computation.
  • Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID
  • Add ExpirationEntry support
  • Add git rev dep check to ci
  • Fix encode contract events metering
  • Trim deps
  • Reject vals with invalid tags, fix #1029
  • Fix EXPIRATION_ENTRY_SIZE constant
  • Avoid iloop externalizing diagnostics for invalid references
  • Add "coverage" Makefile target for lcov.info, add a test that extends coverage
  • Fix asset-code rendering in native contract.
  • Fix rent changes extraction bug
  • Graydon code review
  • Jay code review
  • Bump xdr and use curr instead of next
  • Trivial xdr bump
  • Tighten wasm interface version checks, and do on upload.
  • Update wasmi to 0.31.0-soroban
  • Bump version to 20.0.0-rc1
  • Add "next" feature to crates using xdr directly or indirectly
  • Move out-slice len adjustment from symbol_copy_to_slice to its caller.
  • Bump interface and regenerate wasms to handle symbol semantics change.
  • No-op rename: remove metered from metered_scan_slice_of_slices
  • Get rid of an unnecessary vector allocation in map_new_from_slices
  • Remove metered map iterator functions.
  • Small vec cleanup
  • Code cleanup around PRNG
  • Factor Tag::is_object to let Val::is_object delegate to it
  • Set LedgerEntry extensions on existing entries
  • Attach the auth in recording mode to any valid tracker.
  • Improve storage error reporting for token contract.
  • Env-common cleanups and dead code removal
  • More cleanups, comments and fixes from code review.
  • Make the 'unknown' wasmi error to be InvalidAction instead of InternalError
  • Error improvements
  • Small update for the default budget limits.
  • Calibration for PRNG and charge budget
  • Code review, cleanup, removal of dead/dangerous host functions
  • Add redundant "next" dependencies
  • Host code review, minor cleanups and code reorganization
  • Fix the instance storage update logic.
  • Feature: Expose rem_euclid functions on 256 bit numbers
  • Replace address bytes conversions with strkey conversions.
  • Use Address for call_account_contract_check_auth test helper.
  • More code review and cleanup of host.rs module
  • Budget fiddling
  • Bump env XDR
  • State expiration renames
  • Cost type cleanup, bug fix, improve calibration
  • Code review on fees, crypto, prng, dispatch
  • Storage code review
  • Setup bench framework to run experiments
  • Decorate error for nonce missing from the footprint.
  • Remove bad LEs
  • Add missing fixed-size metering in comparison.rs, clean up a bit
  • Properly dispatch test contracts based on the executable.
  • Tighten up metering for linear memory routines
  • conversion.rs code review fixes
  • Review fixes for declared_size and metered_clone
  • Gate recording auth behind the feature.
  • Fix test wasms for latest sdk
  • Cackle gate
  • Remove spendable_balance from SAC.
  • Extend upgrade contract from 30 to 60 days
  • Bug 1042 internal renames
  • Remove panic
  • Stop caching authorization tracker verification status.
  • Overhaul "free budget" and migrate non-metered code
  • Clarify (and add redundant defensive code) in check_val_integrity
  • Remove a panic and be more conservative about depth limit
  • Add conceptual overview comment to auth module
  • Fix fuzz-found panic in Prng::u64_in_inclusive_range
  • Fix fuzzer-found frame stack corruption in rollback if instance storage fails
  • Arbitrary-compatible expr generation and host fuzzing
  • Improve auth test coverage a bit
  • Rollback tests
  • Add a test that ensures that SAC reentry is not possible.
  • Remove vnext test wasms
  • Add fn to find out if Host can be finished
  • Add tests for more wasmi trap conditions
  • Storage tests
  • Add tests that try to build a deep host stack.
  • More events and diagnostics testing
  • Fix #1174 fuzzer-found deserialization of non-representable ScVal bug.
  • tighten up handling of debug mode
  • Update rust-version
  • Adapt to rs-stellar-xdr Limits change
  • Add tests that cover fees for each individual resource.
  • Cover non-existent Wasm in test for updating Wasm.
  • Adds loadgen test WASM
  • Add wasm test for excessive initial memory and table size
  • Initial cut at bug 872, observe side effects of tests
  • Remove unnecessary copy of value
  • Test update_contract_wasm with rollbacks.
  • Bug 1146 test invalid val bit patterns
  • Add @dmkozh as code owner of soroban-env-host
  • Hook envbase and vec slices
  • Update stellar-xdr
  • Don't block merges on rust-analyzer compat check
  • Observe most of the remainder of the testsuite
  • Update deps, fix #1200
  • Test nested extend_ttl
  • Fix #1175 error code spoofing
  • Do not error if no authorizations
  • Add a contract that allows materializing arbitrarily large values.
  • Updated loadgen Wasm
  • Cap persistent extension to max
  • Error on issuer for mint, burn, clawback, and burn_from
  • Add a very simple hook for tracking top-level contract invocations.
  • Macro for testing host function dispatch with bad inputs
  • Check val integrity more
  • Adapt to Rust 1.74
  • Improve test coverage for crypto functions.
  • Pub ContractInvocationEvent
  • Pass ref to host to contract invocation hook
  • Fix top contract invocation hook and auth interaction
  • XDR limits updates
  • Run user seeds to PRNGs through HMAC-SHA256 to unbias
  • Add size_hint methods to Arbitrary impls
  • Add tests for de-serializing deep XDR in deep call stack.
  • Generate combinational tests for linear memory functions
  • Add tests that grow containers until running out of memory budget.
  • Observe more things
  • Setting pre_release_version to zero in meta.rs in preparation of Soroban launch
  • Add Host::has_frame
  • Validated TTLentries
  • Budget subsystem code review
  • Rename extend host functions
  • Fuzz fixes
  • Cap number of args to wasm functions
  • Cargo version pinning
  • Pass --locked to publish as well
  • Tighten up saturating_ math checks
  • Auth code review
  • Remove unused publish scripts/make targets
  • Write tests for unrecoverable errors with try_call
  • Fix the invoker contract auth rollback logic and cover it in the tests.
  • Re-calibration on x86 and update cost parameters
  • Add tests for invalid maps, oversized maps/vecs/bytes from various paths
  • Frame code review
  • Improve XDR conversion coverage
  • Add more error tests
  • Improve budget tracker
  • Validate assets when trying to create SAC instance.
  • Conversion tests
  • Update stellar-xdr
  • Change string_new_from_slice to use &[u8] instead of &str.
  • Update stellar-xdr
  • Initial SAC review
  • Derive debug, eq, ord on CostTracker for SDK
  • Noop auth fix
  • Test bad WASMs
  • Add time tracker
  • Bump wasmi and xdr to release versions
  • SAC final code review
  • Add fuzz target that runs wasmi on wasm-smith output
  • Remaining host code review
  • Bump version to 20.0.0

Soroban Rust SDK

  • Token events
  • Update rust-version
  • Update SDK to recent env
  • Add admin function
  • fix: use uppercase const name
  • Fix allocator
  • Add Arbitrary impl for Duration and Timepoint
  • Fix Budget::memory_bytes_cost
  • Bump env to c5607a2e9e296b2636b46dc910387aa3446b3e29
  • Bump env
  • Update dalek, remove non-syn2 exemptions, tighten deps
  • Update map iterator to be index based
  • Remove ScSpecTypeSet support, which was already mostly dead.
  • Provide a way to allow non-root auth in recording mode.
  • Update env version in SDK.
  • Update SDK to support expiration entry rework.
  • Bump env for bump interface changes
  • Correct comment on String::copy_into_slice
  • Add doc comments about why symbol_short!
  • Add test vector for workspace setups where contract types live in a lib
  • Update rust-version
  • Enable build workflow for merge groups
  • re-enable linux arm64 builds
  • Fix/criadoperez
  • Text corrections
  • Update rust-version
  • bump env
  • Fix name of the Stellar Asset admin client
  • Add git rev dep check to ci
  • Remove authorized from standard token interface
  • Bump env
  • Adapt to removal of ConversionError from number type conversions.
  • Bump version to 20.0.0-rc1
  • Implement deployer functions that return the deployed contract id.
  • Add Vec::to_vals
  • Expose PRNG functions
  • Expose secp256k1 and keccak256 in the SDK
  • Upgrade env to v20.0.0-rc2
  • Elaborate more in comment on PRNG strengths and weaknesses
  • Bump version to 20.0.0-rc2
  • More explicit PRNG-explaining comments
  • Adapt to minor env changes from code review
  • Adapt to recent changes in env
  • docs: Fixing a broken link in the SDK's lib.rs file
  • Fix typos in arbitrary docs
  • Change Storage::get to pub(crate)
  • Add fn to expose max expiration available
  • Update rust-version
  • fix(snapshot): set entry expiration info in set_ledger_info
  • Add SDK support for Address/StrKey conversions.
  • bump env and xdr for state exp rename
  • bump env
  • Feature: expose rem_euclid functions and add 128/256 bit conversions
  • Fix type of signature in auth
  • Add testutils for accessing all storage of a contract
  • Remove spendable balance
  • Fix nightly lints on unused internal exports
  • Generate all types of addresses when fuzzing.
  • Use deterministic randomness in arbitrary tests
  • Generate arbitrary containers with heterogeneous elements
  • Add SorobanArbitrary implementations for tuples.
  • Update env version
  • Fix docs about prng seed
  • Refactor Prng functions
  • Add prng generation for slices and arrays
  • Make easier to add shuffle to other types
  • Make Env::default and Env::from_snapshot configure the environment the same
  • Arbitrary testutils
  • Remove use of rand from generated addresses, nonces, salts, and issuer pks
  • Replace String::from_slice with from_str
  • Update soroban-env-* deps
  • Encode network id as hex in ledger snapshots
  • Autosave a test snapshot file on every test exit
  • Allow bumping other instances
  • Update env
  • Make Option work with contract type
  • Rename token::Interface/Client to TokenInterface/Client
  • Don't write test snapshot if no thread name
  • Minor tidy and organization of test snapshots
  • Don't block merges on rust-analyzer compat check
  • Expand Env test to check that separate tests are written for multiple Envs
  • Do not record test snapshots for doc tests
  • Check that no diffs exist after test run due to uncommitted test snapshots
  • Add auth to Env snapshot
  • Update env and xdr
  • Snapshot all auths during a test not just last invokes
  • Update rust-version
  • Improvements to Arbitrary Options
  • Hide EnvBase and other internal types
  • Restore previous auth state in client
  • Make try_ fns return smaller SDK error type
  • Remove nextest from Makefile
  • bump env
  • Renamed extend host function
  • Update env
  • Bump version to 20.0.0

Soroban RPC

  • increased preflight instruction fee padding to 3 million
  • Enforce enabling diagnostics events
  • Add getPreflight benchmark and test
  • Add write-through cache for config ledger entries
  • Cache all ledger entries queried from DB in read transaction
  • simulateTransaction automatically detects ledger entries which require restoring
  • Add heap profiling endpoints
  • Try to return diagnostic events on failure from simulateTransaction
  • Add generic panic handling
  • Limit request size to 10MB
  • getLedgerEntries can query multiple ledger entries at once
  • Stream ledgers on initialization
  • Set maximum number of keys to query for getLedgerEntries
  • Add support for new state expiration ledger entries
  • Ingest temp ledger entry evictions
  • Lower max http request size
  • Set base prng to zero in preflight and invoke
  • Exclude temporary expired entries from SnapshotSource in preflight
  • Include system events in fee calculation in preflight
  • Get expiration ledger sequence at source
  • Add a "Building from Source" README.md
  • Flatten the getEvents response structure
  • Enable debug by default for preflight
  • Optimize in-memory transaction store
  • Force On-Disk Mode
  • Fix datarace in bufferedResponseWriter.WriteOut
  • Fix upsert bug in DB cache
  • Fix ledger entry visibility bug
  • Fix unwrap() errors in libpreflight due to bugs in the Go/Rust interface
  • Fix simulation sequence number for bump/restore operations
  • Improve missing command line arguments message
  • Fix caching of GetLatestLedgerSequence
  • Ensure that the sim events are logged; improve format of main logs
  • Validate xdr payloads in soroban-rpc requests
  • Fix double-counting bug in preflight
  • Fix potential overflow
  • Fix multi-entry responses for getLedgerEntries method
  • Update jrpc2 version to enable application/json; charset=utf-8
  • Unify all ledger sequence types to uint32 and stop stringyfying integers < 53-bits wide
  • Restore CORS support

Soroban CLI

  • Allow fetching contract from network
  • Each generated contract method adds -file-path
  • Add two new output types for contract inspect
  • Add config identity fund to fund accounts on networks
  • Add Auth-next signing support
  • Add dotenv so directories can now set CLI args
  • Add key::Args and FullLedgerEntry/FullLedgerEntries
  • Remove sandbox
  • Add Assembled Transaction that handle preparing transaction post simulation
  • Make aliases visible in help doc
  • Fix --cost flag
  • Set the exit code to 1 in case of an error
  • Return an error once contract read is unable to read any entry
  • Wrap token no longer fails with valid inputs in sandbox mode
  • fund command now can accept a public strkey
  • Warn or Error When Deploying Contracts Compiled with RC Version of Soroban SDK
  • Print help if custom CLI is empty & replace unwrap where possible
  • Fix various typescript bindings
  • Make output consistent for all ways to get version

Preview 11 (September 11, 2023): Testnet and Futurenet Edition

Software

SoftwareVersion
XDR9ac02641139e6717924fdad716f6e958d0168491
Soroban Environmentv20.0.0-rc2
Soroban Interface Version57
Stellar Core20.0.0-1504.rc2.22088c1f2.focal
Soroban Rust SDKv20.0.0-rc2
Soroban CLIv20.0.0-rc4
Soroban RPCv20.0.0-rc4
Stellar Horizon2.27.0~rc2-384
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstartdocker.io/stellar/quickstart:testing@sha256:0c756150e7b3c53603fe36bb932c4e7d7ceaef691906b2d3d952771ccc195559
Stellar JS Stellar Basev10.0.0-beta.3
Stellar JS Stellar SDKv11.0.0-beta.5
Stellar JS Soroban Clientv1.0.0-beta.3 (deprecated, prefer the Stellar SDK)
Freighter5.6.1
Laboratory2.12.0
Soroban React Payment dapp2.0.0
Soroban Mint Token dapp2.0.0
Soroban Swap Token dapp2.0.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022
Testnet Network PassphraseTest SDF Network ; September 2015
note

The Soroban RPC version for Preview 11 is presently in Stellar's unstable and testing apt repositories. Additionally, its Docker image release can be accessed at docker.io/stellar/soroban-rpc:20.0.0-rc3-39.

Changelog

XDR

  • Generate for entry expired error
  • Bump XDR
  • Generate XDR DepthLimiter and depth-limited Read/WriteXdr
  • Bump XDR
  • Make SCError into a union to allow user errors to be u32
  • Update rust-version
  • Bump XDR
  • Bump XDR
  • Bump XDR
  • Regen to pick up ContractCostType changes
  • Bump XDR
  • Update to reflect removal of SCSpecTypeSet
  • Bump XDR
  • Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID
  • Run CI via in merge queue
  • Update rust-version
  • Bump curr and next
  • Bump XDR
  • Bump version to 20.0.0-rc1

Soroban Environment

  • Attach the auth in recording mode to any valid tracker when possible
  • Make RecordedAuthPayload consistently return None for invoker
  • Expiration-related fixes
  • Turn dynamic borrow panics into HostErrors
  • Use Ed25519 verify_strict function rather than just verify, fix #857
  • Misc int32 issues
  • Enforce object handle integrity when inserting into containers, fix #569
  • Add testcase for out-of-order scmaps, fix #223
  • Add a function to compute the rent fee
  • Use host.err for auth error
  • Add a smoke test for recording auth for create contract host fn
  • Stop treating storage errors as missing entries
  • Refactor authorization manager to only maintain mutable borrow on minimal amount of fields
  • Bump xdr
  • Add rent bumps to the SAC
  • Add is_admin function
  • Bump xdr
  • Add function to compute the write fee based on the ledger size
  • Prohibit using disjoint signatures to cover the auth tree
  • Enforce DepthLimiter in the Host to avoid stack overflow
  • Relative objects in wasm
  • Adapt to ResourceLimiter, replacing mem_fuel metering
  • Make del_contract_data no-op for removing non-existent instance storage key
  • Add "tracy" feature to enable Tracy profiler, with some basic annotat…
  • Update host to account for the XDR changes
  • Update rust-version
  • Adapt to SCError change to be an enum, with ContractError(u32)
  • Make some host errors non-recoverable in try_call
  • Fix panic-string-logging code path broken by recent dynamic-borrow fix
  • Add soroban-bench-utils, add benchmark tests to measure metering accuracy
  • Bump env xdr and do the fee library changes corresponding to config changes
  • Bump env xdr
  • Remove event topic limits
  • Bump env xdr
  • Unify/fix expiration bump logic in host
  • Add new tests for error escalation from contract calls
  • Add a helper that invokes a host function 'end-to-end'
  • Add helpers for container bulk init; applies to auth metering
  • Switch some auth errors from Internal to InvalidInput
  • Enable post-MVP WASM ops (sign-ext and mutable-globals), fix #968
  • More token tests
  • Alloc example
  • Mop up some residual uses of format strings in errors (no longer supported)
  • Add wasm for upgrade write-bytes contract
  • Scale the linear cost model coefficient; improve model fitting
  • Error if bumping past max_entry_expiration and and host function to retrieve max_entry_expiration
  • Make has checks to properly populate the storage map in recording mode
  • Clean up budget cost types
  • Add debug events to storage error reporting
  • Switch to stable rust-analyzer in CI
  • Add some comments and tests to env-common/symbol.rs
  • Upgrade dalek crates to new stable versions
  • Add an option to return an error when encountering non-root auth in recording mode
  • Reject env.json if there are duplicate export names, fix #189
  • Tighten signature of unchecked_visit_val_obj, fix #595
  • Tighten dependencies further
  • Fix incorrect argument name
  • Bump env xdr
  • Tighten up Map and Vector and metering coverage
  • Store dummy instance for test contracts
  • Update XDR to take change that removes SCSpecTypeSet
  • Fix comparison in Tag::is_object
  • Fix calibration due to delak change
  • Charge write fees for expiration entry bumps
  • Reduce the expiration entry write size
  • Refactor host to support the new expiration ledger approach
  • Add lifetime threshold
  • Enable build workflow for merge groups
  • Remove key size from rent change computation
  • Take change from txSOROBAN_RESOURCE_LIMIT_EXCEEDED to txSOROBAN_INVALID
  • Add ExpirationEntry support
  • Add git rev dep check to ci
  • Fix encode contract events metering
  • Trim deps
  • Reject vals with invalid tags, fix #1029
  • Host: fix EXPIRATION_ENTRY_SIZE constant
  • Avoid iloop externalizing diagnostics for invalid references
  • Add "coverage" Makefile target for lcov.info, add a test that extends coverage
  • Fix asset-code rendering in native contract
  • Fix rent changes extraction bug
  • Graydon code review
  • Jay code review
  • Bump xdr and use curr instead of next
  • Trivial xdr bump
  • Tighten wasm interface version checks, and do on upload, Fix #1052
  • Update wasmi to 0.31.0-soroban
  • Bump version to 20.0.0-rc1

Soroban Rust SDK

  • Implement deployer functions that return the deployed contract id
  • Add Vec::to_vals
  • Expose PRNG functions
  • Expose secp256k1 and keccak256 in the SDK
  • Upgrade env to v20.0.0-rc2
  • Elaborate more in comment on PRNG strengths and weaknesses
  • Bump version to 20.0.0-rc2
  • Token events
  • Update rust-version
  • Update SDK to recent env
  • Add admin function
  • fix: use uppercase const name
  • Fix allocator
  • Add Arbitrary impl for Duration and Timepoint
  • Fix Budget::memory_bytes_cost
  • Bump env to c5607a2e9e296b2636b46dc910387aa3446b3e29
  • Bump env
  • Update dalek, remove non-syn2 exemptions, tighten deps
  • Update map iterator to be index based
  • Remove ScSpecTypeSet support, which was already mostly dead
  • Provide a way to allow non-root auth in recording mode
  • Update env version in SDK
  • Update SDK to support expiration entry rework
  • Bump env for bump interface changes
  • Correct comment on String::copy_into_slice
  • Add doc comments about why symbol_short!
  • Add test vector for workspace setups where contract types live in a lib
  • Update rust-version
  • Enable build workflow for merge groups
  • re-enable linux arm64 builds
  • Fix/criadoperez
  • Text corrections
  • Update rust-version
  • bump env
  • Fix name of the Stellar Asset admin client
  • Add git rev dep check to ci
  • Remove authorized from standard token interface
  • Bump env
  • Adapt to removal of ConversionError from number type conversions
  • Bump version to 20.0.0-rc1

Soroban RPC

  • List --network under RPC options
  • Enforce enabling diagnostics events
  • simulateTransaction will automatically detect ledger entries which require restoring
  • simulateTransaction will try to return diagnostic events on failure
  • getLedgerEntries can query multiple ledger entries at once
  • getLedgerEntries can set the maximum number of keys to query for
  • Temporary ledger entry evictions are ingested
  • Support StrKey format for contractIds field in getEvents request
  • Limit the execution duration of the jrpc requests
  • Performance fixes and improvements: add writethrough cache for config ledger entries and cache DB results better
  • Fix ledgerentry visibility bug
  • Fix simulation sequence number for bump/restore operations
  • Improve missing command line arguments message
  • Add missing config settings in ledger entry cache on reads
  • Fix caching of GetLatestLedgerSequence
  • Limit request size to 10MB
  • Limit number of concurrent requests
  • Improve HTTPRequestDurationLimiter by adding a recover handling
  • Stream ledgers on initialization
  • Increase instruction leeway to 20% in transaction simulation
  • Validate xdr payloads in soroban-rpc requests
  • Fix double-counting bug
  • Fix datarace in bufferedResponseWriter.WriteOut
  • Fix set_authorization_entries bug in transaction simulation
  • Restore CORS support

Soroban CLI

  • Add multi-party authorization + signing support
  • Add two new output types for contract inspect
  • Add config identity fund to fund accounts on networks
  • Add restore/bump support with --wash_hash
  • Allow passing true and false to boolean types
  • Each generated contract method adds <contract-arg>-file-path
  • Add dotenv so directories can now set CLI args
  • Generated TypeScript bindings have significantly improved
  • Make Wallet injectable
  • Correct generated README
  • Allow fetching contract from network
  • Removed --contract-name, added --overwrite
  • Require configuring network settings
  • Leveraging the latest soroban-client (v1.0.0-beta)
  • Make aliases visible in help doc
  • Ensure that the sim events are logged; improve format of main logs
  • Fix --cost flag
  • Set the exit code to 1 in case of an error
  • Return an error once contract read is unable to read any entry
  • wrap token no longer fails with valid inputs in sandbox mode

Preview 10 (July 13, 2023)

Software

SoftwareVersion
XDRe372df9f677961aac04c5a4cc80a3667f310b29f
Soroban Environmentv0.0.17
Soroban Interface Version51
Stellar Core19.12.1-1406.b7d3a8f8d.focal~soroban
Soroban Rust SDKv0.9.2
Soroban CLIv0.9.1
Soroban RPCv0.9.2
Stellar Horizonstellar-horizon:2.26.1~soroban-373
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:8a99332f834ca82e3ac1418143736af59b5288e792d1c4278d6c547c6ed8da3b
Stellar JS Stellar Base10.0.0-soroban.3
Stellar JS Soroban Client0.9.2
Freighter5.2.3
Laboratory2.11.0
Soroban React Payment dapp1.1.0
Soroban Mint Token dapp1.1.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Changelog

XDR

  • Remove TransactionResultV2
  • Regenerate for overhaul of error codes
  • Bump xdr
  • Bump XDR
  • Update for state-expiration XDR changes
  • Update rust-version
  • Bump XDR
  • Regenerate for new crypto cost types
  • Bump XDR
  • Bump op
  • Generate for storage type removal
  • Drop ContractCostType::VerifyEcdsaSecp256k1Sig
  • Update next to pickup int256 cost types
  • Regenerate rename
  • Regenerate for typo
  • Bump xdr with contract instance storage changes
  • Regenerate for removal of ScVal::StorageType
  • Regenerate for RestoreFootprintOp
  • Generate rename
  • Update crate-git-revision

Soroban Environment

  • Move a bunch of code out of host, reorg modules slightly.
  • Remove temp storage, fixes #758
  • Bump xdr
  • Anti features
  • Err reform
  • Some further cleanups to diagnostic events
  • Bump xdr
  • Enforce AUTH_REVOCABLE on contract balances
  • Implement PRNG subsystem (round 2)
  • Remove incorrect debug_assert from ed25519_pub_key_from_bytes
  • Support Auth Next for host fns
  • Bump xdr
  • Update rust-version
  • Switch to wasmi native fuel metering
  • Fix get_authenticated_authorizations test utility.
  • Change authentication contract errors to be auth errors.
  • Improve VmInstantiation calibration
  • Update storage interface for state expiration
  • Update README.md
  • Implement contract expiration bumps
  • Calibrate wasmi fuel and tiered wasm instructions
  • Bump env XDR
  • Implement TryFrom<&Error> for ScVal
  • Provide host function for authorizing deep contract calls from current contract
  • Switch auth from autoincrement nonces to temporary random values.
  • Fix metering for internal events
  • Return strings for name/symbol and use strkey for issuer.
  • Remove Mergeable and rename Exclusive to Persistent
  • Add secp256k1 and keccak256 host functions
  • Add host functions for returning contract ids
  • Fix comparisons
  • Rename rawval to val
  • Enforce readonly footprint on bump
  • Add host functions for {u,i}256 arithmetics
  • More raw to val
  • Support Timepoint, Duration
  • Bump xdr
  • Check map order when rebuilding from exact iter
  • Updates for contract instance related XDR changes.
  • Change StorageType to Just Be An Enum
  • Bump xdr for RestoreFootprintOp
  • Bump xdr for rename
  • Add host function for bumping contract instance
  • Implement contract instance storage in Soroban host.
  • Change [IU]256 arithmetic host functions to take *Val not *Object.
  • Replace increase and decrease functions with approve
  • Expose bumps
  • Fix calibration tests
  • Change [IU]256 [from,to]_bytes functions to work with Val
  • Bump wasmi version

Soroban Rust SDK

  • Fix storage comment
  • Noop in instance bump for tests

Soroban RPC

  • Update js-soroban-client dependency from 0.9.0 to 0.9.1

Soroban CLI

  • Update js-soroban-client dependency from 0.9.0 to 0.9.1

Preview 9 (May 24th, 2023)

Software

SoftwareVersion
XDR2f16687fdf6f4bcfb56805e2035f69997f4b34c4
Soroban Environmentv0.0.16
Soroban Interface Version37
Stellar Core19.10.1-1310.6649f5173.focal~soroban
Soroban Rust SDKv0.8.4
Soroban CLIv0.8.0
Soroban RPCv0.8.0
Stellar Horizonstellar-horizon:2.25.1~soroban-346
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:57e8ab498bfa14c65595fbb01cb94b1cdee9637ef2e6634e59d54f6958c05bdb
Stellar JS Stellar Base9.0.0-soroban.1
Stellar JS Soroban Client0.7.0
Freighter5.0.1
Laboratory2.10.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Changelog

XDR

See https://github.com/stellar/rs-stellar-xdr/releases v0.0.16 for more details.

Soroban Environment

See https://github.com/stellar/rs-soroban-env/releases v0.0.16 for more details.

Soroban Rust SDK

See https://github.com/stellar/rs-soroban-sdk/releases v0.8.4 for more details.

Soroban RPC

See https://github.com/stellar/soroban-tools/releases v0.8.0 for more details.

Soroban CLI

See https://github.com/stellar/soroban-tools/releases v0.8.0 for more details.

Preview 8 (April 4th, 2023)

Software

SoftwareVersion
XDR7356dc237ee0db5626561c129fb3fa4beaabbac6
Soroban Environmentv0.0.15
Soroban Interface Version32
Stellar Core19.8.1-1246.064a2787a.focal~soroban
Soroban Rust SDKv0.7.0
Soroban CLIv0.7.0
Soroban RPCv0.7.0
Stellar Horizonstellar-horizon:2.24.62~soroban-338
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:a057ec6f06c6702c005693f8265ed1261e901b153a754e97cf18b0962257e872
Stellar JS Stellar Base8.2.2-soroban.12
Stellar JS Soroban Clientv0.5.0
Freighterv2.12.2
Laboratoryv2.8.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Breaking changes note

This release includes a major overhaul of the value representation at the XDR level, which potentially breaks contracts that rely on the old type definitions, here is a summary of the changes:

  • Removed the object/value split at the XDR level
  • Expanded size of value tag from 8 to 128 cases
  • Removed types: U63, Static, Bitset
  • Added U256, I256 and special case u64 subtypes Timepoint and Duration
  • Added String which is a Bytes-like object but displays as text
  • Enhanced Symbol to have a maximum size of 32 bytes (no more 10-char limit)

SDK support has also been added/updated for these types. See xdr, env and sdk changes for more details.

Changelog

XDR

  • Make types wrapping Strings no longer aliases
  • Value representation overhaul
  • Diagnostic events

See https://github.com/stellar/rs-stellar-xdr/releases v0.0.15 for more details.

Soroban Environment

  • Remove the unnecessary error events that appeared in non-error scenarios.
  • Reform metering for value cloning and memory allocation.
  • Provide more test coverage for Auth Next.
  • Check issuer clawback flag when new contract balance is created.
  • Add a test that covers out-of-order require_auth calls.
  • Token name in events.
  • Adapt Storage and SnapshotSource to use Rc only.
  • Add host functions to convert addresses to/from account/contract ids.
  • Value and object representation overhaul.
  • Move InvokerType from common env to internal host implementation.
  • fix thinko in vec_new_from_linear_memory.
  • Improve safety of custom account contracts.
  • Split out DeclaredSizeForMetering from MeteredClone and use it for Compare.
  • Structured debug events.
  • Fix an i128 conversion bug.
  • Use new bulk memory ops for tuples.
  • Host budget metering, cost model, calibration changes.
  • Increase memory budget to 50MB.

See https://github.com/stellar/rs-soroban-env/releases v0.0.15 for more details.

Soroban Rust SDK

  • Add docs in specs for types.
  • Rename Serialize/Deserialize to To/FromXdr.
  • Use the updated source_account() interface.
  • Update storage docs.
  • Expose reset budget functions to testutils.
  • Adapt storage and snapshot interface to env changes.
  • Add utils for converting from/to contract/account ids.
  • Value and object representation overhaul.
  • Add a getter for address of a generated contract client.
  • Use String for log_fmt_values.
  • Add a utility to call __check_auth in tests.
  • Add more support for the new types in soroban-spec.
  • Use vector bulk-init in Vec.
  • Bump env and update for event changes.
  • fix(macro): add new XDR types to parser.
  • Update budget test.
  • bump env and update budget print.

See https://github.com/stellar/rs-soroban-sdk/releases v0.7.0 for more details.

Soroban RPC

  • Set a maximum ledger latency in /health method.
  • Add resultMetaXdr and envelopeXdr back to getTransaction() response.
  • Support for new diagnostic contract events.
    • soroban-rpc: Add filtering support for diagnostic events.
    • soroban-rpc: Ingest diagnostic events.
  • Remove 'soroban serve' subcommand.
  • Limit preflight-computation concurrency through a worker pool.
  • Miscellaneous fixes.
  • General improvements to compilation and testing.
  • Add contract events to simulateTransaction's response.

See https://github.com/stellar/soroban-tools/releases v0.7.0 for more details.

Soroban CLI

  • Improved documentation, and --help text
    • feat: auto-generate comprehensive CLI docs.
  • When using invoke, contract function names now come after the --, like soroban invoke --id <contract_id> -- hello --to "world"
  • Improvements to identity management
    • fix: allow using ENV to add identity and pass secret.
    • Replaced --identity, --secret-key, and --account flags. Replace with single --source, which understands identities, and secret keys.
    • feat: add better docs for UDT and add examples for each arg.
  • Added soroban --version
  • Better errors, replacing Unknown
  • Refactor, so that the cli can be imported via the new soroban-test crate. This makes testing and using soroban-cli as a library easier.
    • feat: reorg into a proper library.
    • feat: add new soroban-test crate.
  • Update to Clap v4.
  • fix(CLI): string/u/i256 XDR parsing.
  • Support for new diagnostic type events

See https://github.com/stellar/soroban-tools/releases v0.7.0 for more details.

Preview 7 (February 16th, 2023)

Software

SoftwareVersion
XDRdf18148747e807618acf4639db41c4fd6f0be9fc
Soroban Environmentv0.0.14
Soroban Interface Version29
Stellar Core19.7.1-1204.871accefc.focal~soroban
Soroban Rust SDKv0.6.0
Soroban CLIv0.6.0
Soroban RPC0.6.1-13
Stellar Horizonstellar-horizon:2.24.61~soroban-335
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:81c23da078c90d0ba220f8fc93414d0ea44608adc616988930529c58df278739
Stellar JS Stellar Base8.2.2-soroban.11
Stellar JS Soroban Clientv0.4.0
Freighterv2.10.0
Laboratoryv2.7.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Breaking changes note

This release comes with a revamp of authorization approach that is breaking for most of the contracts that did any sort of auth logic or used tokens. example and authorization overview for more details.

Changelog

XDR

  • Update Rust XDR for Auth Next.

See https://github.com/stellar/rs-stellar-xdr/releases v0.0.13 and v0.0.14 for more details.

Soroban Environment

  • Allow for a custom budget outside tests
  • Restructure Event to be cheap to clone and allow it to be rolled back
  • Add auth_required support for non-account balances
  • Reform TryFromVal to reduce number of impls
  • Fix override of panic hook during cross-contract testing
  • Add EnvBase::Error, remove CheckedEnv, make Env methods return Error
  • Initial Auth Next implementation in Soroban Host
  • Add 13-tuple conversions
  • Do not include Status as the first arg of a DebugEvent
  • Add a simpler version of require_auth
  • Use auth specific errors
  • Emulate classic account authentication in recording auth mode.
  • Change the interface for the auth testing utility.

See https://github.com/stellar/rs-soroban-env/releases v0.0.13 and v0.0.14 for more details.

Soroban Rust SDK

  • Support variants with multiple fields in UDTs
  • Error on UDT enums with 0-element tuple variants
  • Allow xlm balance updates
  • Fix vec insert
  • Adapt SDK to changes to {Try,From,Into}Val in env crates
  • Fix vec pop_front
  • Use better storage error in tests
  • Adapt to introduction of Env::Error
  • Improve compiler errors for UDTs
  • Allow same named types and functions
  • Make soroban_token_spec::spec_xdr easier to keep updated
  • Remove build-optimized makefile target
  • Auth Next changes in SDK
  • Add docs to contract spec entries
  • SDK support for simplified require_auth

See https://github.com/stellar/rs-soroban-sdk/releases v0.5.0 and v0.6.0 for more details.

Soroban RPC

  • Configure default limit, update cursor / startLedger validation, and include latest ledger for getEvents
  • Add support for AuthNext
  • Fix rollback error in logs
  • Add getNetwork command
  • Implement event storage
  • Implement ledger entry storage
  • Refactor db and ingestion packages, add ingestion of LedgerCloseMeta
  • Implement simulateTransaction using rust instead of preflight
  • Simplify topic matching for events search

See https://github.com/stellar/soroban-tools/releases v0.5.0 v0.6.0 for more details.

Soroban CLI

  • Add option for running contract with unlimited budget
  • Add support for AuthNext
  • Add config command
  • Add getNetwork support
  • Reorganize CLI commands

See https://github.com/stellar/soroban-tools/releases v0.5.0 v0.6.0 for more details.

Preview 6 (January 9th, 2023)

Software

SoftwareVersion
XDR026c9cd074bdb28ddde8ee52f2a4502d9e518a09
Soroban Environmentv0.0.12
Soroban Interface Version27
Stellar Core19.6.1-1158.c0ad35aa1.focal~soroban
Soroban Rust SDKv0.4.2
Soroban CLIv0.5.0
Soroban RPC0.4.0-10
Stellar Horizonstellar-horizon:2.22.0~soroban-323
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstart (amd64)stellar/quickstart:soroban-dev@sha256:c4429def497ed78ca99ae40c8e2522ec932081b4428df992900b5bc8d53bd642
Stellar Quickstart (arm64)stellar/quickstart:soroban-dev@sha256:37205510329845f5fe533bb7c4c182d8f35b3a3515f0a6729889067663e1ec97
Stellar JS Stellar Base8.0.1-soroban.6
Stellar JS Soroban Clientv0.3.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Changelog

Soroban Environment

  • Wasm instruction level calibration
  • Replace im containers with Vec
  • Remove EnvVal
  • Fix first/last_index_of functions to use deep object comparison
  • Export type aliases for Storage and Footprint
  • Add env.json
  • Remove built-in soroban token
  • Update rust-version
  • Use single balances in the Stellar Asset Contract
  • Remove unnecessary i128 clone

See https://github.com/stellar/rs-soroban-env/releases v0.0.12 for more details.

Soroban Rust SDK

  • Fix contractimpl for empty impl blocks
  • bump env and fix token interface
  • Remove init from the token interface
  • Update rust-version
  • Require only a borrow of Host when updating ledger snapshot
  • Fix doc comments and clippy warnings on ledger snapshot
  • Add LedgerSnapshot::update(Host)
  • undo token deploy revert
  • Revert deploy and update env
  • Remove token deploy in anticipation of removal of the soroban only built-in token
  • Make ledger snapshot write file create dir path
  • Make errors explicit in ledger snapshot functions
  • Update env to include delete-im, remove-EnvVal changes

See https://github.com/stellar/rs-soroban-sdk/releases v0.4.0, v0.4.1, v0.4.2 for more details.

Soroban RPC

  • Add GitHub linting for GO code

See https://github.com/stellar/soroban-tools/releases v0.4.0 for more details.

Soroban CLI

  • Update rust version
  • StrValError --> Error and implemented using thiserror
  • Use soroban-ledger-snapshot for managing ledger.json
  • Use LedgerSnapshot::update to update snapshot instead of unpacking the host and updating ledger info and entries separately.
  • Add events subcommand for local and remote event viewing
  • Deprecate token create command

See https://github.com/stellar/soroban-tools/releases v0.4.0 for more details.

Preview 5 (December 8th, 2022)

Software

SoftwareVersion
XDR026c9cd074bdb28ddde8ee52f2a4502d9e518a09
Soroban Environmentv0.0.11
Soroban Interface Version26
Stellar Corestellar-core_19.5.1-1137.b3a6bc281.focal~soroban
Soroban Rust SDKv0.3.2
Soroban CLIv0.3.3
Soroban RPC0.3.1-32
Stellar Horizonstellar-horizon:2.22.0~soroban-318
Stellar Friendbotsoroban-v0.0.2-alpha
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:8046391718f8e58b2b88b9c379abda3587bb874689fa09b2ed4871a764ebda27
Stellar JS Stellar Base8.0.1-soroban.5
Stellar JS Soroban Clientv0.2.0
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Changelog

XDR

  • Remove BigInt from ScVal
  • Add u128 and i128 to ScVal
  • Change the structure of events in meta
  • Change transaction operation structure for Soroban contract deployments and invocations

See https://github.com/stellar/stellar-xdr/compare/48d5e17ae63bba0aa9725cd9d18d7438f44c07b1...026c9cd074bdb28ddde8ee52f2a4502d9e518a09 for more details.

Soroban Environment

  • Upgrade crate-git-revision to 0.0.4 (contribution by @brson)
  • Add Host::with_artificial_test_contract_frame
  • Restructure benchmark framework, add calibration code for all CostTypes
  • Disable budget costs for object cmp
  • Env changes to decouple contract instance from source
  • Remove BigInt, switch everything to u128 and i128

See https://github.com/stellar/rs-soroban-env/releases v0.0.10, v0.0.11 for more details.

Soroban Rust SDK

  • Rename data to storage by @leighmcculloch in #786
  • Add ability to get current Budget from env in tests by @leighmcculloch in #789
  • Add Env::as_contract for testutils by @leighmcculloch in #761
  • Update contract deployment to match the Env changes by @dmkozh in #766
  • Make contract_id public in contract clients. by @dmkozh in #768
  • Remove BigInt by @sisuresh in #770
  • Add soroban-ledger-snapshot
  • Change gen JSON output from stream to array (contribution by @vinamogit)
  • Contributions from @vinamogit

See https://github.com/stellar/rs-soroban-sdk/releases v0.3.0, v0.3.1, v0.3.2 for more details.

Soroban RPC

  • Add soroban-rpc version subcommand
  • Add a new getLedgerEntry jsonrpc method, deprecating and replacing getContractData allowing an application to fetch any ledger entry
  • Added new getEvents method currently backed by horizon

See https://github.com/stellar/soroban-tools/releases v0.3.0, v0.3.1 for more details.

Soroban CLI

  • Fix apt-get install in publish workflow
  • Added type description to errors when using --arg (contribution by @waldmatias)
  • Additional CLI support for the contract deployment changes
  • Adds support for soroban contract deploy --wasm-hash, as well as soroban contract install --wasm
  • Add xdr and env version to version subcommand output
  • Fix that the footpoint was not set correctly when deploying the wrapped token contract (contribution by @overcat)
  • Contributions from @waldmatias, @willemneal, @overcat, @brson

See https://github.com/stellar/soroban-tools/releases v0.3.0, v0.3.1, 0.3.3 for more details.

Preview 4 (November 15th, 2022)

Software

SoftwareVersion
XDRhttps://github.com/stellar/stellar-xdr-next/tree/48d5e17ae63bba0aa9725cd9d18d7438f44c07b1
Soroban Environmentv0.0.9
Soroban Interface Version23
Stellar Core19.5.1-1111.eba1d3de9.focal~soroban
Soroban Rust SDKv0.2.1
Soroban CLIv0.2.1
Soroban RPC0.3.1-32
Stellar Horizon2.22.0~soroban-304
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:0993d3350148af6ffeab5dc8f0b835236b28dade6dcae77ff8a09317162f768d
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Changelog

XDR

  • Trivial whitespace changes

Soroban Environment

  • Vm tuning
  • Add token events
  • Catch panics from native contracts in try_call
  • Improved built-in token error reporting
  • Add missing conversion from Status->ScStatus for the ContractError variant
  • Capture user panic-strings in native builds, avoid spurious NoContractRunning error
  • Few small fixes to error debug events

See https://github.com/stellar/rs-soroban-env/releases v0.0.7, v0.0.8, v0.0.9 for more details.

Soroban Rust SDK

  • Add Logger::print in testutils
  • Add conversion from Address to Identifier
  • Remove deprecated functions
  • Remove panic-catching and fix tests that use newly-working native try_call
  • Reintroduce an optimized aborting unwrap
  • Add assert_with_error! macro
  • Rename panic_error! to panic_with_error!

See https://github.com/stellar/rs-soroban-sdk/releases v0.2.0, v0.2.1 for more details.

Soroban RPC

  • Initial Release

Soroban CLI

  • Strings and symbols are rendered as text in JSON output
  • Bytes are rendered as hex in JSON output
  • Accounts in invocations are created in sandbox
  • Add optimize sub-command that optimizes contracts
  • Fix the bin name in the completion command
  • Fix jsonrpc compliance issue

See https://github.com/stellar/soroban-cli/releases v0.2.0, v0.2.1 for more details.

Preview 3 (October 11th, 2022)

Software

SoftwareVersion
XDRhttps://github.com/stellar/stellar-xdr-next/tree/161e2e5b64425a49f9ccfef7f732ae742ed5eec4
Soroban Environmentv0.0.6
Soroban Interface Version23
Stellar Core19.4.1-1097.4e813f20e.focal~soroban
Soroban Rust SDKv0.1.1
Soroban CLIv0.1.2
Soroban RPC???
Stellar Horizon2.22.0~soroban-304
Stellar Quickstartstellar/quickstart:soroban-dev@sha256:e58d83f92a61f43406087f488dd1cba110a92646dca85f14b3a416163609e853
Futurenet Network PassphraseTest SDF Future Network ; October 2022

Changelog

See https://www.stellar.org/blog/soroban-a-new-smart-contract-standard.

Preview 2 (September 13th, 2022)

See https://www.stellar.org/developers-blog/soroban-preview-release-2.

Preview 1 (August 1st, 2022)

See https://www.stellar.org/blog/project-jump-cannon-soroban-preview-release.