Skip to content

Commit 9fbc834

Browse files
Restructure compatibility matrix generator
Restructure tools/sdk-analysis/ into tools/matrix-generator/. Add shared infrastructure (common.py, github_fetcher.py), pipeline orchestrators with CLI support for Horizon and RPC, and a master orchestrator with SEP auto-detection. Add GetLatestLedgerResponse.closeTime, headerXdr, metadataXdr fields. Regenerate all 15 compatibility matrices.
1 parent a3fe50d commit 9fbc834

38 files changed

Lines changed: 7639 additions & 1169 deletions

.gitignore

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,8 @@ stellar-sdk/native-libs/libsodium-macos/
122122
# Backup files
123123
*.bak
124124

125-
# Compatibility analysis (keep local for now)
126-
tools/sdk-analysis/
127-
128-
# Compatibility analysis generated data (keep source code)
129-
compatibility/horizon/data/
130-
compatibility/rpc/data/
131-
compatibility/sep/data/
125+
# Matrix generator intermediate data
126+
tools/matrix-generator/data/
132127

133128
# Node modules (web app dependencies)
134129
node_modules/

compatibility/horizon/HORIZON_COMPATIBILITY_MATRIX.md

Lines changed: 66 additions & 65 deletions
Large diffs are not rendered by default.
Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# Soroban RPC vs KMP Stellar SDK Compatibility Matrix
22

3-
**Generated:** 2026-04-03 17:48:31
4-
5-
**SDK Version:** 1.3.1
3+
**RPC Version:** v26.0.0 (released 2026-04-03)
4+
**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.3.1
6+
**Generated:** 2026-04-04 00:01:12
67

78
## Overall Coverage
89

@@ -14,18 +15,35 @@
1415

1516
## Method Comparison
1617

17-
| RPC Method | Status | Kotlin Method | Required Params | Optional Params | Notes |
18+
| RPC Method | Status | Kotlin Method | Required Params | Response Fields | Notes |
1819
|------------|--------|---------------|-----------------|-----------------|-------|
19-
| `getEvents` | ✅ Fully Supported | `getEvents` | N/A | N/A | All parameters implemented |
20-
| `getFeeStats` | ✅ Fully Supported | `getFeeStats` | N/A | N/A | All parameters implemented |
21-
| `getHealth` | ✅ Fully Supported | `getHealth` | N/A | N/A | All parameters implemented |
22-
| `getLatestLedger` | ✅ Fully Supported | `getLatestLedger` | N/A | N/A | All parameters implemented |
23-
| `getLedgerEntries` | ✅ Fully Supported | `getLedgerEntries` | N/A | N/A | All parameters implemented |
24-
| `getLedgers` | ✅ Fully Supported | `getLedgers` | N/A | N/A | All parameters implemented |
25-
| `getNetwork` | ✅ Fully Supported | `getNetwork` | N/A | N/A | All parameters implemented |
26-
| `getTransaction` | ✅ Fully Supported | `getTransaction` | N/A | N/A | All parameters implemented |
27-
| `getTransactions` | ✅ Fully Supported | `getTransactions` | N/A | N/A | All parameters implemented |
28-
| `getVersionInfo` | ✅ Fully Supported | `getVersionInfo` | N/A | N/A | All parameters implemented |
29-
| `sendTransaction` | ✅ Fully Supported | `sendTransaction` | N/A | N/A | All parameters implemented |
30-
| `simulateTransaction` | ✅ Fully Supported | `simulateTransaction` | N/A | N/A | All parameters implemented |
20+
| `getEvents` | ✅ Fully Supported | `getEvents` | 1/1 | 6/6 | All parameters and response fields implemented |
21+
| `getFeeStats` | ✅ Fully Supported | `getFeeStats` | N/A | 3/3 | All parameters and response fields implemented |
22+
| `getHealth` | ✅ Fully Supported | `getHealth` | N/A | 4/4 | All parameters and response fields implemented |
23+
| `getLatestLedger` | ✅ Fully Supported | `getLatestLedger` | N/A | 6/6 | All parameters and response fields implemented |
24+
| `getLedgerEntries` | ✅ Fully Supported | `getLedgerEntries` | 1/1 | 2/2 | All parameters and response fields implemented |
25+
| `getLedgers` | ✅ Fully Supported | `getLedgers` | 1/1 | 6/6 | All parameters and response fields implemented |
26+
| `getNetwork` | ✅ Fully Supported | `getNetwork` | N/A | 3/3 | All parameters and response fields implemented |
27+
| `getTransaction` | ✅ Fully Supported | `getTransaction` | 1/1 | 5/5 | All parameters and response fields implemented |
28+
| `getTransactions` | ✅ Fully Supported | `getTransactions` | 1/1 | 6/6 | All parameters and response fields implemented |
29+
| `getVersionInfo` | ✅ Fully Supported | `getVersionInfo` | N/A | 5/5 | All parameters and response fields implemented |
30+
| `sendTransaction` | ✅ Fully Supported | `sendTransaction` | 1/1 | N/A | All parameters and response fields implemented |
31+
| `simulateTransaction` | ✅ Fully Supported | `simulateTransaction` | 1/1 | N/A | All parameters and response fields implemented |
32+
33+
## Response Field Coverage
34+
35+
Detailed breakdown of response field support per method.
36+
37+
| RPC Method | RPC Fields | SDK Fields | Missing Fields |
38+
|------------|------------|------------|----------------|
39+
| `getEvents` | 6 | 6 | - |
40+
| `getFeeStats` | 3 | 3 | - |
41+
| `getHealth` | 4 | 4 | - |
42+
| `getLatestLedger` | 6 | 6 | - |
43+
| `getLedgerEntries` | 2 | 2 | - |
44+
| `getLedgers` | 6 | 6 | - |
45+
| `getNetwork` | 3 | 3 | - |
46+
| `getTransaction` | 5 | 5 | - |
47+
| `getTransactions` | 6 | 6 | - |
48+
| `getVersionInfo` | 5 | 5 | - |
3149

compatibility/sep/SEP-0001_COMPATIBILITY_MATRIX.md

Lines changed: 17 additions & 5 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-03 17:48:35
3+
**Generated:** 2026-04-04 00:01:13
44

5-
**SEP Version:** 2.7.0<br>
6-
**SEP Status:** Active<br>
7-
**SDK Version:** 1.3.1<br>
5+
**SEP Version:** 2.7.0
6+
**SEP Status:** Active
7+
**SDK Version:** 1.3.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0001.md
99

1010
## SEP Summary
@@ -17,7 +17,10 @@ The `stellar.toml` file publishes information about an organization's Stellar in
1717

1818
-**Implemented:** 71/71
1919
-**Not Implemented:** 0/71
20-
- **Required Fields:** 100.0% (3/3)
20+
21+
**Required Fields:** 100.0% (3/3)
22+
23+
**Optional Fields:** 100.0% (68/68)
2124

2225
## Implementation Status
2326

@@ -160,11 +163,20 @@ The `stellar.toml` file publishes information about an organization's Stellar in
160163
| `HOST` | || `host` | The IP:port or domain:port peers can use to connect to the node |
161164
| `HISTORY` | || `history` | The location of the history archive published by this validator |
162165

166+
## Implementation Gaps
167+
168+
No gaps found! All fields are implemented.
169+
170+
## Recommendations
171+
172+
The SDK has full compatibility with SEP-0001!
173+
163174
## Legend
164175

165176
-**Implemented**: Field is fully supported in the SDK
166177
-**Not Implemented**: Field is not currently supported
167178
- ⚠️ **Partial**: Field is partially supported with limitations
179+
- **Server**: Server-side only feature (not applicable to client SDKs)
168180
-**Required**: Field is required by SEP specification
169181

170182
## Additional Information

compatibility/sep/SEP-0002_COMPATIBILITY_MATRIX.md

Lines changed: 17 additions & 5 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-03 17:48:35
3+
**Generated:** 2026-04-04 00:01:13
44

5-
**SEP Version:** 1.1.0<br>
6-
**SEP Status:** Final<br>
7-
**SDK Version:** 1.3.1<br>
5+
**SEP Version:** 1.1.0
6+
**SEP Status:** Final
7+
**SDK Version:** 1.3.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0002.md
99

1010
## SEP Summary
@@ -17,7 +17,10 @@ The federation protocol resolves human-readable addresses like `name*yourdomain.
1717

1818
-**Implemented:** 10/10
1919
-**Not Implemented:** 0/10
20-
- **Required Fields:** 100.0% (6/6)
20+
21+
**Required Fields:** 100.0% (6/6)
22+
23+
**Optional Fields:** 100.0% (4/4)
2124

2225
## Implementation Status
2326

@@ -84,11 +87,20 @@ The federation protocol resolves human-readable addresses like `name*yourdomain.
8487
| `memo_type` | || `memoType` | type of memo to attach to transaction, one of text, id or hash |
8588
| `memo` | || `memo` | value of memo to attach to transaction, for hash this should be base64-encoded |
8689

90+
## Implementation Gaps
91+
92+
No gaps found! All fields are implemented.
93+
94+
## Recommendations
95+
96+
The SDK has full compatibility with SEP-0002!
97+
8798
## Legend
8899

89100
-**Implemented**: Field is fully supported in the SDK
90101
-**Not Implemented**: Field is not currently supported
91102
- ⚠️ **Partial**: Field is partially supported with limitations
103+
- **Server**: Server-side only feature (not applicable to client SDKs)
92104
-**Required**: Field is required by SEP specification
93105

94106
## Additional Information

compatibility/sep/SEP-0005_COMPATIBILITY_MATRIX.md

Lines changed: 17 additions & 5 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-03 17:48:35
3+
**Generated:** 2026-04-04 00:01:14
44

5-
**SEP Version:** N/A<br>
6-
**SEP Status:** Final<br>
7-
**SDK Version:** 1.3.1<br>
5+
**SEP Version:** N/A
6+
**SEP Status:** Final
7+
**SDK Version:** 1.3.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0005.md
99

1010
## SEP Summary
@@ -17,7 +17,10 @@ Defines methods for deriving Stellar keypairs from mnemonic phrases, making it e
1717

1818
-**Implemented:** 31/31
1919
-**Not Implemented:** 0/31
20-
- **Required Fields:** 100.0% (22/22)
20+
21+
**Required Fields:** 100.0% (22/22)
22+
23+
**Optional Fields:** 100.0% (9/9)
2124

2225
## Implementation Status
2326

@@ -134,11 +137,20 @@ Defines methods for deriving Stellar keypairs from mnemonic phrases, making it e
134137
| `test_vector_4_24words_passphrase` ||| `(verified in tests)` | 24-word mnemonic with passphrase test vector: 'cable spray genius state float twenty...' with pas... |
135138
| `test_vector_5_abandon_about` ||| `(verified in tests)` | Known test vector: 'abandon abandon abandon abandon abandon abandon abandon abandon abandon aband... |
136139

140+
## Implementation Gaps
141+
142+
No gaps found! All fields are implemented.
143+
144+
## Recommendations
145+
146+
The SDK has full compatibility with SEP-0005!
147+
137148
## Legend
138149

139150
-**Implemented**: Field is fully supported in the SDK
140151
-**Not Implemented**: Field is not currently supported
141152
- ⚠️ **Partial**: Field is partially supported with limitations
153+
- **Server**: Server-side only feature (not applicable to client SDKs)
142154
-**Required**: Field is required by SEP specification
143155

144156
## Additional Information

compatibility/sep/SEP-0006_COMPATIBILITY_MATRIX.md

Lines changed: 17 additions & 5 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-03 17:48:35
3+
**Generated:** 2026-04-04 00:01:14
44

5-
**SEP Version:** 4.3.0<br>
6-
**SEP Status:** Active (Interactive components are deprecated in favor of SEP-24)<br>
7-
**SDK Version:** 1.3.1<br>
5+
**SEP Version:** 4.3.0
6+
**SEP Status:** Active (Interactive components are deprecated in favor of SEP-24)
7+
**SDK Version:** 1.3.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0006.md
99

1010
## SEP Summary
@@ -17,7 +17,10 @@ A programmatic API for anchors and wallets to handle deposits and withdrawals wi
1717

1818
-**Implemented:** 73/73
1919
-**Not Implemented:** 0/73
20-
- **Required Fields:** 100.0% (4/4)
20+
21+
**Required Fields:** 100.0% (4/4)
22+
23+
**Optional Fields:** 100.0% (69/69)
2124

2225
## Implementation Status
2326

@@ -204,11 +207,20 @@ A programmatic API for anchors and wallets to handle deposits and withdrawals wi
204207
| `wallet_name` | || `walletName` | (**Deprecated**, optional) In communications / pages about the withdrawal, anchor should display ... |
205208
| `wallet_url` | || `walletUrl` | (**Deprecated**, optional) Anchor can show this to the user when referencing the wallet involved ... |
206209

210+
## Implementation Gaps
211+
212+
No gaps found! All fields are implemented.
213+
214+
## Recommendations
215+
216+
The SDK has full compatibility with SEP-0006!
217+
207218
## Legend
208219

209220
-**Implemented**: Field is fully supported in the SDK
210221
-**Not Implemented**: Field is not currently supported
211222
- ⚠️ **Partial**: Field is partially supported with limitations
223+
- **Server**: Server-side only feature (not applicable to client SDKs)
212224
-**Required**: Field is required by SEP specification
213225

214226
## Additional Information

compatibility/sep/SEP-0008_COMPATIBILITY_MATRIX.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SEP-0008 (Regulated Assets) Compatibility Matrix
22

3-
**Generated:** 2026-04-03 17:48:35
3+
**Generated:** 2026-04-04 00:01:14
44

5-
**SEP Version:** 1.7.4<br>
6-
**SEP Status:** Active<br>
7-
**SDK Version:** 1.3.1<br>
5+
**SEP Version:** 1.7.4
6+
**SEP Status:** Active
7+
**SDK Version:** 1.3.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0008.md
99

1010
## SEP Summary
@@ -17,7 +17,10 @@ Defines how assets that require per-transaction issuer approval are identified,
1717

1818
-**Implemented:** 32/32
1919
-**Not Implemented:** 0/32
20-
- **Required Fields:** 100.0% (27/27)
20+
21+
**Required Fields:** 100.0% (27/27)
22+
23+
**Optional Fields:** 100.0% (5/5)
2124

2225
## Implementation Status
2326

@@ -167,11 +170,20 @@ Defines how assets that require per-transaction issuer approval are identified,
167170
| `tx` ||| `tx` | Transaction envelope XDR, base64 encoded. This transaction will have both the original signature(... |
168171
| `message` | || `message` | A human readable string containing information to pass on to the user |
169172

173+
## Implementation Gaps
174+
175+
No gaps found! All fields are implemented.
176+
177+
## Recommendations
178+
179+
The SDK has full compatibility with SEP-0008!
180+
170181
## Legend
171182

172183
-**Implemented**: Field is fully supported in the SDK
173184
-**Not Implemented**: Field is not currently supported
174185
- ⚠️ **Partial**: Field is partially supported with limitations
186+
- **Server**: Server-side only feature (not applicable to client SDKs)
175187
-**Required**: Field is required by SEP specification
176188

177189
## Additional Information

compatibility/sep/SEP-0009_COMPATIBILITY_MATRIX.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# SEP-0009 (Standard KYC Fields) Compatibility Matrix
22

3-
**Generated:** 2026-04-03 17:48:35
3+
**Generated:** 2026-04-04 00:01:15
44

5-
**SEP Version:** 1.17.0<br>
6-
**SEP Status:** Active<br>
7-
**SDK Version:** 1.3.1<br>
5+
**SEP Version:** 1.17.0
6+
**SEP Status:** Active
7+
**SDK Version:** 1.3.1
88
**SEP URL:** https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0009.md
99

1010
## SEP Summary
@@ -17,7 +17,10 @@ A standard list of KYC and financial account fields (names, addresses, ID docume
1717

1818
-**Implemented:** 76/76
1919
-**Not Implemented:** 0/76
20-
- **Required Fields:** 100% (0/0)
20+
21+
**Required Fields:** 100% (0/0)
22+
23+
**Optional Fields:** 100.0% (76/76)
2124

2225
## Implementation Status
2326

@@ -158,11 +161,20 @@ A standard list of KYC and financial account fields (names, addresses, ID docume
158161
| `organization.email` | || `email` | Organization contact email |
159162
| `organization.phone` | || `phone` | Organization contact phone |
160163

164+
## Implementation Gaps
165+
166+
No gaps found! All fields are implemented.
167+
168+
## Recommendations
169+
170+
The SDK has full compatibility with SEP-0009!
171+
161172
## Legend
162173

163174
-**Implemented**: Field is fully supported in the SDK
164175
-**Not Implemented**: Field is not currently supported
165176
- ⚠️ **Partial**: Field is partially supported with limitations
177+
- **Server**: Server-side only feature (not applicable to client SDKs)
166178
-**Required**: Field is required by SEP specification
167179

168180
## Additional Information

0 commit comments

Comments
 (0)