Skip to content

Commit c8412b9

Browse files
Prepare release 1.5.1
1 parent 7577385 commit c8412b9

39 files changed

Lines changed: 217 additions & 61 deletions

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"name": "kmp-stellar-sdk",
1212
"source": "./skills",
1313
"description": "Teaches AI coding agents how to build Stellar blockchain applications using kmp-stellar-sdk. Covers transactions, operations, Horizon API, Soroban smart contracts, smart accounts (OpenZeppelin) with passkey authentication, XDR encoding, and SEP protocols.",
14-
"version": "1.1.0",
14+
"version": "1.1.1",
1515
"author": {
1616
"name": "Soneso"
1717
},

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.5.1] - 2026-04-28
9+
10+
### Changed
11+
- **Smart-account connect: cascade order improved** (#24): The connection cascade now runs storage → derivation → indexer (was storage → indexer → derivation). When a passkey is registered as a signer on multiple smart accounts, multi-result indexer responses surface as the new `ConnectWalletResult.Ambiguous(candidates)` arm so the caller can let the user pick. Previously the indexer's first result (lex-first by contract address) was picked, with no signal that the choice was ambiguous.
12+
- **Breaking change** (#24): `ConnectWalletResult` is now a sealed type with `Connected` and `Ambiguous` arms. Direct field access (`result.contractId`) becomes a `when` switch.
13+
- **Breaking change** (#23): XDR constructor signatures changed for the five types affected by the discriminant fix — `TransactionResultResultXdr.Results`, `InnerResultPair`, `BucketEntryXdr.LiveEntry`, `ManageOfferSuccessResultOfferXdr.Offer`, `SCErrorXdr.Code` now take `discriminant` as the first constructor argument. High-level helper users (Horizon, RPC, `AssembledTransaction`, `ContractClient`) are unaffected.
14+
15+
### Fixed
16+
- **XDR generator multi-case discriminant collapse** (#23): XDR unions where multiple discriminant cases shared one non-void payload were generated with the discriminant hardcoded to the first case. As a result `txFAILED` round-tripped as `txSUCCESS`, and all `SCError` types collapsed to `SCE_WASM_VM` (though the error code was correct). High-level helpers (Horizon `successful`, RPC `status`, `AssembledTransaction`, `ContractClient`) flow through JSON and were not affected. The bug surfaced for code that decoded `TransactionResultResultXdr.discriminant` directly or read Soroban contract errors via `Scv.fromError()` / `ContractSpec.scValToNative()`.
17+
- **Smart-account connect: FAILED-status credentials** (#24): A credential whose deployment previously failed silently connected to a non-existent contract. It now throws with a message pointing the user at `deployPendingCredential()` for retry.
18+
- **Smart-account connect: transport-error masking** (#24): RPC and indexer transport errors propagate as their original types instead of being laundered as "contract not found." Callers can now distinguish "contract is not on-chain" from "the lookup itself failed."
19+
- **Smart-account indexer JSON parsing** (#24): `OZIndexerClient` data classes (`CredentialLookupResponse`, `AddressLookupResponse`, `ContractDetailsResponse`) expected snake_case top-level fields, but the hosted indexer returns camelCase top-level keys (with snake_case for inner fields). Removed the incorrect `@SerialName` annotations on top-level fields. The previous cascade ordering swallowed the deserialization failure silently; the new ordering surfaced it.
20+
- **Test stability**: `testStoredCredential_equality` no longer flakes on slow JVM runners. Pinned `createdAt` explicitly in the test (the default `currentTimeMillis()` could produce different values for back-to-back constructions).
21+
822
## [1.5.0] - 2026-04-14
923

1024
### Changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Stellar SDK for Kotlin Multiplatform
22

3-
[![Version](https://img.shields.io/badge/version-1.5.0-blue)](https://github.com/Soneso/kmp-stellar-sdk/releases)
3+
[![Version](https://img.shields.io/badge/version-1.5.1-blue)](https://github.com/Soneso/kmp-stellar-sdk/releases)
44
[![Kotlin Multiplatform](https://img.shields.io/badge/Kotlin-Multiplatform-blueviolet?logo=kotlin)](https://kotlinlang.org/docs/multiplatform.html)
55
[![Maven Central](https://img.shields.io/maven-central/v/com.soneso.stellar/stellar-sdk)](https://search.maven.org/artifact/com.soneso.stellar/stellar-sdk)
66
[![codecov](https://codecov.io/gh/Soneso/kmp-stellar-sdk/branch/main/graph/badge.svg)](https://codecov.io/gh/Soneso/kmp-stellar-sdk)
@@ -78,7 +78,7 @@ Add the SDK as a Maven dependency (recommended for most projects):
7878
```kotlin
7979
// In your module's build.gradle.kts
8080
dependencies {
81-
implementation("com.soneso.stellar:stellar-sdk:1.5.0")
81+
implementation("com.soneso.stellar:stellar-sdk:1.5.1")
8282
}
8383
```
8484

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ plugins {
2121

2222
allprojects {
2323
group = "com.soneso.stellar"
24-
version = "1.5.0"
24+
version = "1.5.1"
2525

2626
repositories {
2727
mavenLocal() // For testing locally published artifacts

compatibility/horizon/HORIZON_COMPATIBILITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
**Horizon Version:** v26.0.0 (released 2026-04-06)
44
**Horizon Source:** [v26.0.0](https://github.com/stellar/stellar-horizon/releases/tag/v26.0.0)
5-
**SDK Version:** 1.5.0
6-
**Generated:** 2026-04-17 13:24:37
5+
**SDK Version:** 1.5.1
6+
**Generated:** 2026-04-28 02:38:01
77

88
**Horizon Endpoints Discovered:** 52
99
**Public API Endpoints (in matrix):** 50

compatibility/rpc/RPC_COMPATIBILITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
**RPC Version:** v26.0.0 (released 2026-04-03)
44
**RPC Source:** [https://github.com/stellar/stellar-rpc/releases/tag/v26.0.0](https://github.com/stellar/stellar-rpc/releases/tag/v26.0.0)
5-
**SDK Version:** 1.5.0
6-
**Generated:** 2026-04-17 13:24:44
5+
**SDK Version:** 1.5.1
6+
**Generated:** 2026-04-28 02:38:07
77

88
## Overall Coverage
99

compatibility/sep/SEP-0001_COMPATIBILITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SEP-0001 (Stellar Info File) Compatibility Matrix
22

3-
**Generated:** 2026-04-17 13:24:44
3+
**Generated:** 2026-04-28 02:38:08
44

55
**SEP Version:** 2.7.0
66
**SEP Status:** Active
7-
**SDK Version:** 1.5.0
7+
**SDK Version:** 1.5.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md
99

1010
## SEP Summary

compatibility/sep/SEP-0002_COMPATIBILITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SEP-0002 (Federation protocol) Compatibility Matrix
22

3-
**Generated:** 2026-04-17 13:24:45
3+
**Generated:** 2026-04-28 02:38:08
44

55
**SEP Version:** 1.1.0
66
**SEP Status:** Final
7-
**SDK Version:** 1.5.0
7+
**SDK Version:** 1.5.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0002.md
99

1010
## SEP Summary

compatibility/sep/SEP-0005_COMPATIBILITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SEP-0005 (Key Derivation Methods for Stellar Keys) Compatibility Matrix
22

3-
**Generated:** 2026-04-17 13:24:45
3+
**Generated:** 2026-04-28 02:38:09
44

55
**SEP Version:** N/A
66
**SEP Status:** Final
7-
**SDK Version:** 1.5.0
7+
**SDK Version:** 1.5.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0005.md
99

1010
## SEP Summary

compatibility/sep/SEP-0006_COMPATIBILITY_MATRIX.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SEP-0006 (Deposit and Withdrawal API) Compatibility Matrix
22

3-
**Generated:** 2026-04-17 13:24:45
3+
**Generated:** 2026-04-28 02:38:10
44

55
**SEP Version:** 4.3.0
66
**SEP Status:** Active (Interactive components are deprecated in favor of SEP-24)
7-
**SDK Version:** 1.5.0
7+
**SDK Version:** 1.5.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md
99

1010
## SEP Summary

0 commit comments

Comments
 (0)