Skip to content

chore: bump soroban-sdk to 27.0.0 and close out scanner noise - #87

Merged
0xdevcollins merged 4 commits into
boundlessfi:testnetfrom
JamesVictor-O:chore/soroban-sdk-bump-scout-disposition
Jul 20, 2026
Merged

chore: bump soroban-sdk to 27.0.0 and close out scanner noise#87
0xdevcollins merged 4 commits into
boundlessfi:testnetfrom
JamesVictor-O:chore/soroban-sdk-bump-scout-disposition

Conversation

@JamesVictor-O

@JamesVictor-O JamesVictor-O commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bumps soroban-sdk from 23.5.227.0.0 in workspace Cargo.toml
  • Bumps Rust toolchain from 1.90.01.91.0 in rust-toolchain.toml (required by soroban-sdk 27.0.0)
  • Updates build-target reference in CLAUDE.md from wasm32-unknown-unknownwasm32v1-none (deploy scripts already used the correct target; this was only a docs inconsistency)
  • Updates docs/scout-audit-report.md:
    • Marks soroban_version ENHANCEMENT as resolved (bumped to 27.0.0)
    • Records all ~44 storage_change_events ENHANCEMENT flags as no action: the flagged functions are lib.rs dispatcher wrappers; the underlying implementation modules already emit a typed Soroban event for every state-changing operation; Scout cannot trace through function calls. The single genuine gap (ManagerChanged) is tracked in issue Enhanced Milestone & Admin Management Functions for On-chain/Frontend Sync #3.

Test plan

  • cargo build --target wasm32v1-none --release -p boundless-events — success
  • cargo build --target wasm32v1-none --release -p boundless-profile — success
  • cargo test -p boundless-events — 197 passed, 0 failed
  • cargo test -p boundless-profile — 66 passed, 0 failed

Closes #77

Summary by CodeRabbit

  • Improvements

    • Updated contract/event build tooling and environment to newer supported versions.
    • Upgraded core Soroban SDK dependency and refreshed build target guidance for contract and event builds.
    • Updated the Stellar CLI used in the automation workflow to a newer pinned release with updated checksum verification.
  • Documentation

    • Updated build and contribution instructions to reflect the current Rust toolchain and contract/event build target.
    • Refreshed the security audit report to mark the post-remediation items as resolved and clarify event-emission findings.

- Bump soroban-sdk from 23.5.2 → 27.0.0 in workspace Cargo.toml
- Bump Rust toolchain from 1.90.0 → 1.91.0 in rust-toolchain.toml
  (required by soroban-sdk 27.0.0)
- Update build target reference in CLAUDE.md from wasm32-unknown-unknown
  to wasm32v1-none (required by Soroban environment ≥ SDK 22+, deploy
  scripts already used the correct target)
- Update docs/scout-audit-report.md:
  - Mark soroban_version ENHANCEMENT as resolved
  - Record all ~44 storage_change_events ENHANCEMENT flags as no action
    (flagged functions already emit events; Scout cannot trace through
    dispatcher wrappers; ManagerChanged gap tracked in issue boundlessfi#3)

All 197 events + 66 profile tests pass at soroban-sdk 27.0.0.

Closes boundlessfi#77
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@0xdevcollins, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 55 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 187eb883-e6f2-415d-9b57-65a647008923

📥 Commits

Reviewing files that changed from the base of the PR and between a9ab0e4 and 04215c5.

📒 Files selected for processing (1)
  • .github/workflows/verify-build.yml
📝 Walkthrough

Walkthrough

The PR upgrades the Soroban SDK, Rust toolchain, and Stellar CLI, changes documented contract builds to use wasm32v1-none, and updates Scout audit records for version and storage-event findings.

Changes

Soroban maintenance

Layer / File(s) Summary
Toolchain and build documentation
Cargo.toml, rust-toolchain.toml, CLAUDE.md
The workspace uses soroban-sdk 27.0.0 and Rust 1.93.0, while documented contract builds target wasm32v1-none.
Stellar CLI setup
.github/actions/setup-rust-stellar/action.yml
The setup action pins Stellar CLI 27.0.0, its matching archive, and its SHA-256 checksum.
Audit finding dispositions
docs/scout-audit-report.md
The Soroban version finding is marked resolved, and storage-change event findings are marked no action with the remaining ManagerChanged gap tracked in issue 3.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: 0xdevcollins

Poem

A rabbit hops through Rust so bright,
With WASM targets set just right.
Soroban blooms, reports align,
Audit flags now neatly shine.
“Thump-thump!” says Bun, “the build is fine!”

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main maintenance change: bumping soroban-sdk and cleaning up scanner noise.
Linked Issues check ✅ Passed The PR bumps soroban-sdk, updates build tooling, records the scanner findings as no action, and keeps ManagerChanged tracked in #3.
Out of Scope Changes check ✅ Passed The toolchain, CLI, and docs updates support the SDK bump and audit remediation, so no unrelated changes are evident.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CLAUDE.md`:
- Line 30: Replace both documented cargo build commands in the CLAUDE.md build
examples with the stellar contract build workflow used by the contracts/events
Makefile, including the corresponding command for each documented contract build
location.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d697674e-8754-4a02-89c7-753e75159d2d

📥 Commits

Reviewing files that changed from the base of the PR and between 188bc71 and ea63e71.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • CLAUDE.md
  • Cargo.toml
  • docs/scout-audit-report.md
  • rust-toolchain.toml

Comment thread CLAUDE.md
soroban-sdk 27.0.0 has MSRV 1.91.0, but the Stellar contract build tool
blocklists Rust 1.91.0 exactly ("use a rust version other than 1.81,
1.82, 1.83 or 1.91.0"), so `make build` fails under the previously
pinned 1.91.0. Pin 1.93.0 instead: it clears the SDK MSRV and is not on
the blocklist. Verified with `stellar contract build` (cli 27.0.0), not
just `cargo build` — the plain cargo path skips the blocklist check.

Also bump the CI-pinned stellar-cli 23.1.3 -> 27.0.0 to match Protocol
27 (mainnet + testnet both run core 27.x), with its verified linux
tarball SHA-256. Merge current testnet in to pick up the hardened CI
action and the 1.3.0 contract changes, and regenerate Cargo.lock.

Verified: stellar contract build OK for both contracts; events wasm
53,257 bytes (< 64 KB ceiling); cargo test 210 + 66 green; fmt clean.
@almanax-ai

almanax-ai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Quota reached

Your plan allows 300 CI/CD file units per month. You've used 279 and this scan would add 24 more (total: 303).

The build job only ran on contracts/** changes, so a Cargo.toml SDK bump
or a rust-toolchain.toml / setup-rust-stellar change could merge without
the build ever running — exactly the toolchain surface most likely to
break the build. Add those paths so make build validates them.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
CLAUDE.md (1)

31-31: 🎯 Functional Correctness | 🟠 Major

Use stellar contract build in both documented build examples.

Changing the target is not sufficient: both examples still invoke cargo build, while the repository’s contract workflow uses stellar contract build. This is the same unresolved issue raised in the previous review.

Also applies to: 49-49

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CLAUDE.md` at line 31, Update both documented contract build examples in
CLAUDE.md to invoke the repository’s stellar contract build workflow instead of
cargo build, preserving their existing release/build intent and ensuring both
occurrences use stellar contract build.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@CLAUDE.md`:
- Line 31: Update both documented contract build examples in CLAUDE.md to invoke
the repository’s stellar contract build workflow instead of cargo build,
preserving their existing release/build intent and ensuring both occurrences use
stellar contract build.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9e8a00f9-b284-4db2-b275-a32f4b30dfa3

📥 Commits

Reviewing files that changed from the base of the PR and between ea63e71 and a9ab0e4.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • .github/actions/setup-rust-stellar/action.yml
  • CLAUDE.md
  • rust-toolchain.toml
🚧 Files skipped from review as they are similar to previous changes (1)
  • rust-toolchain.toml

@0xdevcollins
0xdevcollins merged commit 46b3e1c into boundlessfi:testnet Jul 20, 2026
4 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.

Chore: confirm soroban-sdk is latest; close out storage_change_events scanner noise

2 participants