Skip to content

feat(contracts): proxy-based contract upgradability (#176)#282

Merged
Smartdevs17 merged 2 commits intoSmartdevs17:mainfrom
Edoscoba:176-upgradeable-proxy
Apr 22, 2026
Merged

feat(contracts): proxy-based contract upgradability (#176)#282
Smartdevs17 merged 2 commits intoSmartdevs17:mainfrom
Edoscoba:176-upgradeable-proxy

Conversation

@Edoscoba
Copy link
Copy Markdown
Contributor

@Edoscoba Edoscoba commented Apr 22, 2026

Implements a proxy-pattern upgrade flow for Soroban contracts so the stable contract ID never changes while logic can be upgraded safely.

Key changes:

  • Adds UpgradeableProxy contract with timelocked authorize_upgrade, schedule_upgrade, upgrade_to, and rollback flows.
  • Introduces SubTrackrStorage contract to preserve state across upgrades; only the active implementation can write.
  • Updates SubTrackrSubscription implementation to read/write via the storage contract and adds get_version, validate_upgrade, and migrate handlers.
  • Tracks upgrade history and maintains a previous-implementation stack for rollback.
  • Adds deployment/upgrade scripts and documents procedures (contracts/DEPLOYMENT.md).
  • Adds integration tests covering upgrade, migration, validation failure, and rollback scheduling (contracts/proxy/tests/upgrade_flow.rs).

closes #176

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 22, 2026

@Edoscoba Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Smartdevs17 Smartdevs17 merged commit 0a35fe2 into Smartdevs17:main Apr 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement smart contract upgradability with proxy pattern

2 participants