Skip to content

feat(soroban): add buildContractUpgrade utility with WASM validation …#177

Merged
Just-Bamford merged 1 commit into
Sorokit:mainfrom
funds0033-cmyk:feat/soroban-contract-upgrade-120
Jun 30, 2026
Merged

feat(soroban): add buildContractUpgrade utility with WASM validation …#177
Just-Bamford merged 1 commit into
Sorokit:mainfrom
funds0033-cmyk:feat/soroban-contract-upgrade-120

Conversation

@funds0033-cmyk

Copy link
Copy Markdown
Contributor

Closes #120
What was done
Implemented buildContractUpgrade(contractId, newWasmCode) to provide a safe, validated helper for preparing Soroban contract upgrade transactions.
Changes

buildContractUpgrade — added to src/soroban/index.ts, validates contract ID, WASM size, magic bytes, and WASM version before building the transaction
XDR output — builds a Soroban upgrade invoke operation using the SHA-256 hash of the new WASM, returns SorokitResult (XDR)
Public API export — exported from src/index.ts
Tests — added to src/tests/soroban.test.ts covering valid upgrade XDR output and invalid WASM rejection

Verification

npx tsx runtime check passed — generated XDR parses back to upgrade, includes the expected WASM hash, and correctly rejects invalid code with TX_BUILD_FAILED ✅

Notes

npm run typecheck failures are pre-existing in unrelated files — no errors in src/soroban/index.ts
npx vitest collection fails due to a pre-existing require("../soroban/storageSlot") module-resolution issue unrelated to this implementation

@drips-wave

drips-wave Bot commented Jun 30, 2026

Copy link
Copy Markdown

@funds0033-cmyk 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

@Just-Bamford Just-Bamford merged commit 1002ae5 into Sorokit:main Jun 30, 2026
0 of 3 checks 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.

Add Soroban contract upgrade utilities

2 participants