This document tracks tested and compatible versions of Soroban SDK, CLI, and Stellar Protocol for RemitWise contracts.
| Component | Version | Release Date | Status |
|---|---|---|---|
| Soroban SDK | 21.0.0 | 2024 | ✅ Production |
| Soroban CLI | 21.0.0 | 2024 | ✅ Production |
| Rust Toolchain | stable | Latest | ✅ Production |
| Protocol | 20+ | - | ✅ Compatible |
Release Date: 2024
Status: ✅ Fully Tested and Production Ready
Tested Features:
- ✅ Contract storage and TTL management
- ✅ Event emission and querying
- ✅ Cross-contract calls (orchestrator)
- ✅ Authorization and signatures
- ✅ Stellar Asset Contract integration
- ✅ Archival and restoration patterns
- ✅ Gas optimization
Known Issues: None
Breaking Changes: None from 20.x series
Contracts Validated:
- ✅ remittance_split
- ✅ savings_goals
- ✅ bill_payments
- ✅ insurance
- ✅ family_wallet
- ✅ reporting
- ✅ orchestrator
- ✅ data_migration
Test Results:
- Unit Tests: 100% passing
- Integration Tests: 100% passing
- Gas Benchmarks: Within acceptable range
- Testnet Deployment: Successful
- Mainnet Ready: Yes
Status:
Notes: Previous stable release. Upgrade to 21.0.0 recommended for latest features and optimizations.
Status: ✅ Fully Compatible
Features Used:
- Contract storage (persistent, temporary, instance)
- TTL extension and archival
- Event emission
- Cross-contract calls
- Authorization framework
- Stellar Asset Contract integration
Network Availability:
- Testnet: ✅ Available
- Mainnet: ✅ Available
Status:
Expected Compatibility: High (no breaking changes anticipated)
Action Required: Test on testnet when available
| Date | Protocol Version | SDK Compatibility | Status |
|---|---|---|---|
| Current | 20+ | 21.0.0 | ✅ Active |
| Date | Protocol Version | SDK Compatibility | Status |
|---|---|---|---|
| Current | 20+ | 21.0.0 | ✅ Active |
Status: ✅ Fully Compatible
Required Targets:
wasm32-unknown-unknown- Primary WASM targetwasm32v1-none- Alternative WASM target
Installation:
rustup target add wasm32-unknown-unknown
rustup target add wasm32v1-noneStatus:
Notes: May work but not officially tested. Use stable channel for production deployments.
[dependencies]
soroban-sdk = "21.0.0"
[dev-dependencies]
soroban-sdk = { version = "21.0.0", features = ["testutils"] }[profile.release]
opt-level = "z"
overflow-checks = true
debug = 0
strip = "symbols"
debug-assertions = false
panic = "abort"
codegen-units = 1
lto = trueStatus: ✅ Optimized for production
| Contract | SDK 21.0.0 | Notes |
|---|---|---|
| remittance_split | ✅ Pass | All 50+ tests passing |
| savings_goals | ✅ Pass | All 60+ tests passing |
| bill_payments | ✅ Pass | All 70+ tests passing |
| insurance | ✅ Pass | All 50+ tests passing |
| family_wallet | ✅ Pass | All 60+ tests passing |
| reporting | ✅ Pass | All 25+ tests passing |
| orchestrator | ✅ Pass | All 15+ tests passing |
| Scenario | SDK 21.0.0 | Notes |
|---|---|---|
| Remittance flow | ✅ Pass | End-to-end allocation |
| Cross-contract calls | ✅ Pass | Orchestrator integration |
| Event emission | ✅ Pass | All events captured |
| Storage archival | ✅ Pass | Archive/restore working |
| Gas benchmarks | ✅ Pass | Within acceptable limits |
| Contract | Deployment | Functionality | Events | Notes |
|---|---|---|---|---|
| remittance_split | ✅ | ✅ | ✅ | Fully validated |
| savings_goals | ✅ | ✅ | ✅ | Fully validated |
| bill_payments | ✅ | ✅ | ✅ | Fully validated |
| insurance | ✅ | ✅ | ✅ | Fully validated |
| family_wallet | ✅ | ✅ | ✅ | Fully validated |
| reporting | ✅ | ✅ | ✅ | Fully validated |
| orchestrator | ✅ | ✅ | ✅ | Fully validated |
| Operation | CPU Instructions | Memory Bytes | Status |
|---|---|---|---|
| initialize_split | ~500K | ~2KB | ✅ Optimal |
| calculate_split | ~300K | ~1KB | ✅ Optimal |
| create_goal | ~600K | ~3KB | ✅ Optimal |
| add_to_goal | ~400K | ~2KB | ✅ Optimal |
| create_bill | ~550K | ~3KB | ✅ Optimal |
| pay_bill | ~450K | ~2KB | ✅ Optimal |
| create_policy | ~600K | ~3KB | ✅ Optimal |
| pay_premium | ~400K | ~2KB | ✅ Optimal |
Baseline: Established with SDK 21.0.0
Threshold: ±10% acceptable variance
-
Storage Limits: Standard Soroban storage limits apply
- Max entry size: 64KB
- TTL management required for long-term storage
-
Cross-Contract Calls: Limited call depth
- Max depth: 4 levels
- Orchestrator designed within limits
-
Event Size: Events have size limitations
- Keep event data concise
- Use references for large data
- Network Limits: Standard network resource limits
- Transaction size limits
- Ledger entry limits
- CPU/memory budgets
Difficulty: Easy
Breaking Changes: None
Estimated Time: 1-2 hours
Steps:
- Update Cargo.toml dependencies
- Run
cargo update - Run full test suite
- Deploy to testnet for validation
- Update documentation
See UPGRADE_GUIDE.md for detailed instructions.
Status: Not yet available
Preparation:
- Monitor Soroban SDK releases
- Review release notes for breaking changes
- Test with release candidates when available
- Follow upgrade guide procedures
When validating a new Soroban version:
- Review release notes and breaking changes
- Update all Cargo.toml files
- Update Soroban CLI
- Run
cargo cleanand rebuild - Run full unit test suite
- Run gas benchmarks and compare
- Deploy to testnet
- Test all contract functions
- Verify event emission
- Test cross-contract calls
- Validate storage operations
- Check TTL management
- Monitor for 7 days on testnet
- Update documentation
- Plan mainnet deployment
If you encounter compatibility issues:
- Check this document for known issues
- Review GitHub Issues
- Test with minimal reproduction case
- Report with full version details
This document is maintained alongside contract releases.
Last Updated: 2024
Next Review: Upon next SDK release
Maintainer: RemitWise Development Team
Legend:
- ✅ Tested and working
⚠️ Untested or requires attention- ❌ Known issues or incompatible
- 🔄 In progress