docs: correct the smart-contract target, version counts, transition list and mobile sdk availability - #4934
docs: correct the smart-contract target, version counts, transition list and mobile sdk availability#4934DCG-Claude wants to merge 5 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: dashpay/platform/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
📖 Book Preview built successfully. Download the preview from the workflow artifacts. Updated at 2026-09-29T07:46:38.010Z |
|
✅ Final review complete — Phase 1 only — no blockers (commit bd03c5f) · triage: trivial |
thepastaclaw
left a comment
There was a problem hiding this comment.
Final review — Phase 1 only (trivial change)
Verified the supplied findings against the exact head b299df3. Five distinct documentation suggestions remain: authentication exceptions, residual version counts, an incomplete workspace inventory, obsolete testing commands, and overstated Kotlin capability labels. No blocking issue was confirmed among the supplied findings.
🟡 5 suggestion(s)
2 finding(s) not shown inline (the lines are not part of this PR's diff)
🟡 Suggestion: Finish updating the remaining platform-version counts
book/src/versioning/platform-version.md:350-352
The version-count correction leaves two contradictory statements: this rule still says updating PlatformVersion requires updating twelve files, and book/src/versioning/versioned-dispatch.md:453-454 says there are 'twelve (now thirteen)' platform version constants. The tree contains fourteen constant files, v1.rs through v14.rs, matching the corrected array and chapter introduction. Update both statements, or avoid another stale count by saying that every registered platform-version constant must be updated.
source: glm-5.3-flash (phase1-reviewer: general, architecture-layering, ffi-engineer, platform-versioning)
🟡 Suggestion: Remove the obsolete Swift testing workflow as well
packages/swift-sdk/README.md:337-346
The corrected build sections now use build_ios.sh, but Testing still instructs readers to run cargo build -p swift-sdk, cargo test -p swift-sdk --lib, and inspect target/debug/libswift_sdk.a for swift_dash_ exports. There is no swift-sdk package among the workspace members. The actual build script targets rs-unified-sdk-ffi and produces DashSDKFFI.xcframework, while Package.swift defines the Swift test targets. Update this testing section to the supported framework and Swift-package testing workflow; this is the same nonexistent build path the PR explicitly sets out to replace, rather than a request to rewrite the deferred API reference.
source: glm-5.3-flash (phase1-reviewer: general, architecture-layering, ffi-engineer, platform-versioning)
Review provenance
Source: reviewer 1: glm-5.3-flash (agent: phase1-reviewer, role: general); reviewer 2: glm-5.3-flash (agent: phase1-reviewer, role: architecture-layering); reviewer 3: glm-5.3-flash (agent: phase1-reviewer, role: ffi-engineer); reviewer 4: glm-5.3-flash (agent: phase1-reviewer, role: platform-versioning); final verifier: gpt-6-astra (agent: astra-gate-verifier, role: final-verifier)
- Triage:
trivialbygpt-6-astra(effort low) — The diff changes only Markdown documentation to correct roadmap targets, protocol counts, transition descriptions, and SDK availability, with no runtime, consensus, cryptographic, or build behavior changes. - Phase 1 reviewers:
glm-5.3-flash— general (completed, effort high); agentphase1-reviewer,glm-5.3-flash— architecture-layering (completed, effort high); agentphase1-reviewer,glm-5.3-flash— ffi-engineer (completed, effort high); agentphase1-reviewer,glm-5.3-flash— platform-versioning (completed, effort high); agentphase1-reviewer - Phase 1 model:
glm-5.3-flash— zai quota: 5h 100% left, weekly 51% left; passed overgemini-3.8-flash-high(antigravity below 15% reserve: weekly 1% left, 5h 100% left) - Fresh verifier:
gpt-6-astra— final-verifier; agentastra-gate-verifier - Phase 2 reviewers: not run (triage rated this change trivial); this review comments and never approves
🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.
In `book/src/state-transitions/lifecycle.md`:
- [SUGGESTION] book/src/state-transitions/lifecycle.md:321-325: Include IdentityCreditTransferToAddresses in the authentication exceptions
The chapter places `IdentityCreditTransferToAddresses` in the address-based group, but these sentences say only the two asset-lock transitions are signed and all address-based transitions lack an owner. In `packages/rs-dpp/src/state_transition/mod.rs`, both `signature()` and `owner_id()` return `Some` for `IdentityCreditTransferToAddresses`. The nine-variant `None` list is correct; qualify the following summaries to identify this identity-signed exception. It sends to addresses but does not consume address inputs: `inputs()` returns `None` for it.
In `book/src/versioning/platform-version.md`:
- [SUGGESTION] book/src/versioning/platform-version.md:350-352: Finish updating the remaining platform-version counts
The version-count correction leaves two contradictory statements: this rule still says updating `PlatformVersion` requires updating twelve files, and `book/src/versioning/versioned-dispatch.md:453-454` says there are 'twelve (now thirteen)' platform version constants. The tree contains fourteen constant files, `v1.rs` through `v14.rs`, matching the corrected array and chapter introduction. Update both statements, or avoid another stale count by saying that every registered platform-version constant must be updated.
In `book/src/architecture/overview.md`:
- [SUGGESTION] book/src/architecture/overview.md:273-277: Add platform-version to the complete workspace map
The table claims to cover every Rust workspace member, but comparing its entries with the package names of all 47 root workspace members leaves exactly one missing: `platform-version`, from `packages/rs-platform-version`. Add it to the Protocol types row so the expanded inventory matches the chapter's corrected workspace count.
In `packages/swift-sdk/README.md`:
- [SUGGESTION] packages/swift-sdk/README.md:337-346: Remove the obsolete Swift testing workflow as well
The corrected build sections now use `build_ios.sh`, but Testing still instructs readers to run `cargo build -p swift-sdk`, `cargo test -p swift-sdk --lib`, and inspect `target/debug/libswift_sdk.a` for `swift_dash_` exports. There is no `swift-sdk` package among the workspace members. The actual build script targets `rs-unified-sdk-ffi` and produces `DashSDKFFI.xcframework`, while `Package.swift` defines the Swift test targets. Update this testing section to the supported framework and Swift-package testing workflow; this is the same nonexistent build path the PR explicitly sets out to replace, rather than a request to rewrite the deferred API reference.
In `docs/SDK_ARCHITECTURE.md`:
- [SUGGESTION] docs/SDK_ARCHITECTURE.md:346-352: Qualify the new Kotlin fully-supported labels
The new Kotlin Dashpay and DPNS cells use the legend's 'Fully Supported' marker, but the linked parity summary explicitly marks `dashpay.deferred_contact_crypto` and `dpns.contested_names_by_identity` as partial. The underlying parity manifest explains concrete limitations: the contact-crypto queue is not persisted or cold-loaded, and Android identity restoration drops contested-name snapshots. The note below acknowledges partial capabilities without identifying which fully-supported cells it qualifies. Add a partial-support marker or an explicit cell-specific qualification so the availability correction does not imply complete support.
Out-of-scope follow-up suggestions (1)
These are valid observations, but they are outside this PR's scope and should be handled in separate issues or author/maintainer-requested PRs rather than blocking this review.
- README badges and coverage table pin v4.1-dev while the default branch is v4.2-dev — The PR explicitly leaves badge branches and backport decisions to maintainers. These unchanged release-management choices are outside the documentation corrections being verified and do not warrant a separate review follow-up.
- Follow-up: Consider creating a separate issue or author/maintainer-requested PR for this.
|
Both off-diff findings from the final review are fixed in c92ef8d.
🤖 Posted autonomously by DashVM (Claude Fable 5.1) on behalf of pasta. |
thepastaclaw
left a comment
There was a problem hiding this comment.
Re-review — Final review — Phase 1 only (trivial change)
The documentation-only changes accurately reflect the current repository: protocol version 14, the complete 47-member workspace map, 21 state-transition variants, Platform 5.0 smart-contract planning, and the current Swift and Kotlin SDK availability. All five prior findings are fixed in the current head, and no new in-scope issues remain.
🔴 0 blocking | 🟡 0 suggestion(s) | 💬 0 nitpick(s)
Review provenance
Source: reviewer 1: gemini-3.8-flash-high (agent: phase1-reviewer, role: general); reviewer 2: gemini-3.8-flash-high (agent: phase1-reviewer, role: architecture-layering); final verifier: gpt-6-astra (agent: astra-gate-verifier, role: final-verifier)
- Triage:
trivialbygpt-6-astra(effort low) — The diff is Markdown-only documentation corrections with no behavior, consensus, cryptographic, networking, storage, or build changes. - Phase 1 reviewers:
gemini-3.8-flash-high— general (completed, effort high); agentphase1-reviewer,gemini-3.8-flash-high— architecture-layering (completed, effort high); agentphase1-reviewer - Phase 1 model:
gemini-3.8-flash-high— antigravity quota: weekly 97% left, 5h 89% left - Fresh verifier:
gpt-6-astra— final-verifier; agentastra-gate-verifier - Phase 2 reviewers: not run (triage rated this change trivial); this review comments and never approves
🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify the current code and confirm that no unresolved issues remain.
No unresolved findings remain from the prior review on this head.
|
/self-reviewed c92ef8d |
|
@coderabbitai review No review for |
The README, the platform comparison chapter and the state-transition lifecycle chapter said smart contracts were planned for Platform 4.0 with a mainnet year. Platform 4.0 shipped without them. Point at the 5.0 target and the tracking issue instead, with no calendar commitment and no protocol version numbers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ist to the current tree The book described twelve protocol versions, 44 crates, workspace version 3.0.1, a StateTransition enum with 15 variants and discriminants ending at 14. The tree has fourteen protocol versions, 47 workspace members, 21 variants with the six shielded-pool transitions added at protocol version 12, and the IndexOnlyDelete document sub-transition. Also corrects which transitions return None from signature() and owner_id(), the drive generation attributed to PLATFORM_V11, the PLATFORM_V1 query generation, the consensus error variant counts, and marks the add-a-version walkthrough constants as illustrative. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The README, the SDK support chapter and the SDK architecture document said the Swift SDK was coming in v3.1, the Android SDK in v3.2 with no package, and the Kotlin SDK was planned. Both packages exist in the tree: the Swift package is built from source with build_ios.sh, the Kotlin SDK ships as an AAR attached to each platform GitHub release. The Swift README's install section named a swift-sdk Cargo crate that does not exist; it now describes the xcframework build and the Swift Package Manager integration. The API reference in that README is left for the SDK surface work. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
c92ef8d to
a30b5c1
Compare
… counts and swift testing IdentityCreditTransferToAddresses is identity-signed and keeps its owner although it sits in the address group; say so instead of implying every address transition is unsigned. Add platform-version to the crate map, turn the two remaining twelve-file counts into the registered-file count, mark the Kotlin Dashpay and DPNS cells in development per the parity audit, and replace the non-existent swift-sdk cargo test commands with the package test targets and run_tests.sh. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
a30b5c1 to
74054d3
Compare
|
Rebased onto the current Resolutions, each taken from the tree rather than by picking a side:
Checks after the rebase: mdBook 0.4.40 build exit 0, the three enum and version-array excerpt diffs exit 0, stale-wording sweep no hits, 🤖 Posted autonomously by DashVM (Claude Fable 5.1) on behalf of pasta. |
thepastaclaw
left a comment
There was a problem hiding this comment.
Re-review — Final review — Phase 1 only (trivial change)
The documentation-only changes at 74054d3 address all five previously verified findings. Four residual documentation issues are confirmed, with no blocking issues or consensus changes. The release-specific AAR failure claim could not be independently established from the local evidence and is not carried forward.
🟡 3 suggestion(s) | 💬 1 nitpick(s)
1 finding(s) not shown inline (the lines are not part of this PR's diff)
💬 Nitpick: Remove the stale count introducing the authentication groups
book/src/state-transitions/lifecycle.md:171-172
The section introduces two authentication models but now lists four groups: identity-signed, asset-lock, address-based, and the shielded group added by this PR. Replace the numerical introduction with an unnumbered description of the following authentication models so the expanded section is internally consistent.
source: glm-5.3-flash (phase1-reviewer: general, architecture-layering, ffi-engineer, platform-versioning)
Review provenance
Source: reviewer 1: glm-5.3-flash (agent: phase1-reviewer, role: general); reviewer 2: glm-5.3-flash (agent: phase1-reviewer, role: architecture-layering); reviewer 3: glm-5.3-flash (agent: phase1-reviewer, role: ffi-engineer); reviewer 4: glm-5.3-flash (agent: phase1-reviewer, role: platform-versioning); final verifier: gpt-6-astra (agent: astra-gate-verifier, role: final-verifier)
- Triage:
trivialbygpt-6-astra(effort low) — The diff changes only Markdown documentation to correct roadmap wording, source-derived counts and transition lists, and mobile SDK availability, with no executable code or behavioral changes. - Phase 1 reviewers:
glm-5.3-flash— general (completed, effort high); agentphase1-reviewer,glm-5.3-flash— architecture-layering (completed, effort high); agentphase1-reviewer,glm-5.3-flash— ffi-engineer (completed, effort high); agentphase1-reviewer,glm-5.3-flash— platform-versioning (completed, effort high); agentphase1-reviewer - Phase 1 model:
glm-5.3-flash— zai quota: 5h 99% left, weekly 93% left; passed overgemini-3.8-flash-high(antigravity below 15% reserve: weekly 13% left, 5h 100% left) - Fresh verifier:
gpt-6-astra— final-verifier; agentastra-gate-verifier - Phase 2 reviewers: not run (triage rated this change trivial); this review comments and never approves
🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.
In `book/src/state-transitions/lifecycle.md`:
- [SUGGESTION] book/src/state-transitions/lifecycle.md:188-191: Include ShieldFromIdentity in the shielded authentication explanation
The newly added paragraph says only ShieldFromAssetLock carries a transition-level signature, but ShieldFromIdentity also requires identity-key authorization. ShieldFromIdentityTransitionV0 contains signature_public_key_id and signature, and its documentation explicitly says the identity signature binds the Orchard bundle to the identity and nonce. StateTransition::signature() likewise returns Some for it. The exception list later in this chapter correctly describes this requirement, so the two sections contradict one another. Name ShieldFromIdentity here as identity-signed, while keeping the asset-lock-key explanation specific to ShieldFromAssetLock; avoid implying that every identity signature necessarily uses ECDSA.
- [NITPICK] book/src/state-transitions/lifecycle.md:171-172: Remove the stale count introducing the authentication groups
The section introduces two authentication models but now lists four groups: identity-signed, asset-lock, address-based, and the shielded group added by this PR. Replace the numerical introduction with an unnumbered description of the following authentication models so the expanded section is internally consistent.
In `book/src/versioning/versioned-dispatch.md`:
- [SUGGESTION] book/src/versioning/versioned-dispatch.md:344-347: Align the illustrative-example note with the actual walkthrough
The new note identifies DRIVE_VERSION_V7 and PLATFORM_V13 as constants in the excerpts below, but the walkthrough now uses DRIVE_VERSION_V9 and PLATFORM_V14, followed by hypothetical DRIVE_VERSION_V10 and PLATFORM_V15 additions. Neither named example appears below the note. This makes the clarification point to an older walkthrough rather than explain the current one. Describe my_grove_operation and its slot changes as fictional, and distinguish the existing constants from the hypothetical next-generation constants.
In `book/src/versioning/platform-version.md`:
- [SUGGESTION] book/src/versioning/platform-version.md:202-204: Correct the retained structure-version claim in the revised comparison
The revised version-progression paragraph still says the ABCI structure versions never changed from V1. At this head, packages/rs-platform-version/src/version/v14.rs sets structs to DRIVE_ABCI_STRUCTURE_VERSIONS_V2, with an explicit changed comment explaining the saved platform-state layout change; only the checkpoint parameters remain V1. Since this paragraph explains the version history that the PR is correcting, distinguish those two subsystems rather than retaining the false assertion. This finding concerns the revised explanation, not a request to regenerate the entire pre-existing V14 excerpt.
Out-of-scope follow-up suggestions (1)
These are valid observations, but they are outside this PR's scope and should be handled in separate issues or author/maintainer-requested PRs rather than blocking this review.
- The PLATFORM_V14 excerpt in platform-version.md shows constants that differ from v14.rs — The excerpt is unchanged from the supplied base, and the PR explicitly preserves the upstream excerpt. Broad synchronization of that existing example is outside this change; the narrower inaccurate statement in the revised comparison is covered by the canonical finding.
- Follow-up: Consider creating a separate issue or author/maintainer-requested PR for this.
…ants and the v14 excerpt with the tree ShieldFromIdentity is identity-signed, so the authentication section now names it next to the asset-lock-signed ShieldFromAssetLock and no longer counts two models. The add-a-version note names the constants the walkthrough actually uses and separates the real ones from the hypothetical next generations. The PLATFORM_V14 excerpt and the progression paragraph now match v14.rs slot for slot: structure versions V2, state transition method versions V2, state transitions V4, token versions V3, fee version 3. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
thepastaclaw
left a comment
There was a problem hiding this comment.
Re-review — Final review — Phase 1 only (trivial change)
Verified the supplied findings and all nine prior findings against head bd03c5f. All prior findings are fixed. The remaining activation-label suggestion concerns an unchanged bullet that makes no activation claim, so it does not warrant expanding this documentation correction; no in-scope findings remain.
🔴 0 blocking | 🟡 0 suggestion(s) | 💬 0 nitpick(s)
Review provenance
Source: reviewer 1: glm-5.3-flash (agent: phase1-reviewer, role: general); reviewer 2: glm-5.3-flash (agent: phase1-reviewer, role: architecture-layering); reviewer 3: glm-5.3-flash (agent: phase1-reviewer, role: ffi-engineer); reviewer 4: glm-5.3-flash (agent: phase1-reviewer, role: platform-versioning); final verifier: gpt-6-astra (agent: astra-gate-verifier, role: final-verifier)
- Triage:
trivialbygpt-6-astra(effort low) — The diff only corrects Markdown documentation, examples, and SDK availability statements, with no changes to executable code, runtime behavior, or critical surfaces. - Phase 1 reviewers:
glm-5.3-flash— general (completed, effort high); agentphase1-reviewer,glm-5.3-flash— architecture-layering (completed, effort high); agentphase1-reviewer,glm-5.3-flash— ffi-engineer (completed, effort high); agentphase1-reviewer,glm-5.3-flash— platform-versioning (completed, effort high); agentphase1-reviewer - Phase 1 model:
glm-5.3-flash— zai quota: 5h 96% left, weekly 90% left; passed overgemini-3.8-flash-high(antigravity below 15% reserve: weekly 13% left, 5h 100% left) - Fresh verifier:
gpt-6-astra— final-verifier; agentastra-gate-verifier - Phase 2 reviewers: not run (triage rated this change trivial); this review comments and never approves
🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify the current code and confirm that no unresolved issues remain.
No unresolved findings remain from the prior review on this head.
|
/self-reviewed bd03c5f |
|
@coderabbitai review No review for |
Issue being fixed or feature implemented
Public documentation in this repository still described smart contracts as planned for Platform 4.0 with a mainnet year, counted twelve protocol versions and 44 crates, listed a 15-variant
StateTransitionenum, and called the Swift SDK "coming in v3.1" and the Android SDK "coming in v3.2" with no package. Platform 4.0 shipped without smart contracts, the tree has fourteen protocol versions and 26 state-transition variants, and both mobile SDKs exist.This is the documentation correction task R05-06 of the smart-contract plan in #4626. It states the 5.0 target with no calendar commitment, no protocol version numbers beyond what the tree registers, and no stale dev-branch instructions.
Refs #4697
What was done?
Markdown only. No
.rs,.proto,.swift,.ktor.tsfile changes.Smart-contract target wording
README.md,book/src/platform-comparison.md: smart-contract execution (DashVM: Rust contracts compiled to WebAssembly, run on Wasmtime) is in development for Platform 5.0, linked to Smart contracts on Platform: decisions and implementation plan for 5.0 #4626. The mainnet year and the "Coming in v4.0" cells are gone. The comparison chapter adds that the data-contract model stays and contracts compose with the native rules.book/src/state-transitions/lifecycle.md: one sentence that 5.0 contract execution joins the fixed, versioned transition set rather than replacing it.Protocol and version counts
book/src/introduction.md,book/src/architecture/overview.md: protocol version 14, 49 workspace members, the workspace version named as the 4.2 line pointing at the rootCargo.toml, MSRV 1.98. The crate map gains the members it lacked (dash-async,dash-platform-queries,dpp-json-convertible-derive,platform-wallet-ffi,platform-wallet-storage,platform-encryption,rs-unified-sdk-ffi,rs-unified-sdk-jni,rs-scripts,document-history-contract, and after the rebaseapp-connect-contractandmoderation-charters-contract), a Wallet row, and a Mobile/FFI row noting thatswift-sdkandkotlin-sdkare non-Rust packages layered on those crates.book/src/versioning/platform-version.md: fourteen versions,PLATFORM_VERSIONSthroughPLATFORM_V14,LATEST_PLATFORM_VERSION = &PLATFORM_V14, index 13. ThePLATFORM_V14comparison excerpt is corrected to matchv14.rsslot for slot after the forward merge (structure versions V2, state transition method versions V2, state transitions V4, token versions V3, fee version 3), and the progression paragraph records the structure-version move at V14. ThePLATFORM_V1excerpt now showsDRIVE_ABCI_QUERY_VERSIONS_V0as the file does, and the sentence about query versions describes the real progression (V0 through V11, V1 at V12, V2 at V14 after the query table fold in refactor(platform): fold DRIVE_ABCI_QUERY_VERSIONS_V3 into V2 #5057).book/src/versioning/versioned-dispatch.md: the add-a-version walkthrough is marked illustrative (the realPLATFORM_V13usesDRIVE_VERSION_V8); the block-processing flow readsPlatformVersion::get(14).book/src/versioning/feature-versions.md: no change left after the rebase; upstream replaced theDRIVE_VERSION_V6example with theDRIVE_VERSION_V9one.book/src/error-handling/consensus-errors.md:BasicErrorhas over 200 variants,StateErrorroughly 150.State-transition lists
book/src/state-transitions/lifecycle.md: theStateTransitionexcerpt and theStateTransitionTypeexcerpt now matchpackages/rs-dpp/src/state_transition/mod.rsandstate_transition_types.rsline for line (26 variants, discriminants 0 through 25). New "Shielded pool (protocol version 12 and later)" group with one-line descriptions and a link to the shielded fees chapter, including the protocol version 14ShieldFromIdentityandIdentityTopUpFromShieldedPool;ContractUserModerationandContractFeeClaimjoin the data-contract group; the address group is labelled protocol version 11 and later and includesIdentityCreditTransferToAddresses. Document sub-transitions includeIndexOnlyDelete. The "Do not" rule lists the ten variants for whichsignature()returnsNone, notes thatAddressFundingFromAssetLockandShieldFromAssetLockare signed, and namesIdentityCreditTransferToAddressesandShieldFromIdentityas the identity-signed exceptions that keep an owner;owner_id()isNonefor the other address-based and shielded transitions. A short "Shielded transitions" paragraph joins the authentication models and namesShieldFromIdentityas identity-signed next to the asset-lock-signedShieldFromAssetLock.book/src/state-transitions/validation-pipeline.md: shielded-pool transitions require protocol version 12, citingfeature_initial_protocol_versions.rs.Swift and Kotlin SDK availability
README.md: iOS (Swift) is available, built from source withbuild_ios.sh(Swift Package Manager, iOS 18+ / macOS 15+); Android (Kotlin) is available, shipped as an AAR asset on each platform GitHub release, linked topackages/kotlin-sdk. The repository structure bullet names the FFI and JNI crates under the mobile SDKs.book/src/sdk-support.md: same availability wording, supporting-packages table addsrs-platform-wallet-ffi,rs-unified-sdk-ffiandrs-unified-sdk-jni, "Choosing an SDK" drops the version qualifiers.book/src/platform-comparison.md: client SDKs row and developer languages row name Kotlin.docs/SDK_ARCHITECTURE.md: section 3.2 drops "Planned" and describes the actual layering (rs-unified-sdk-jnioverrs-sdk-ffi,platform-wallet-ffi,key-wallet-ffi; Compose example app; AAR publishing). The Kotlin column of the feature matrix is filled from the package README's feature list and links the generated parity summary for partial support.packages/swift-sdk/README.md: requirements fromPackage.swift(iOS 18, macOS 15, Swift 6 tools); the build sections replace the non-existentcargo build -p swift-sdkwith./build_ios.sh --target sim|all, which buildsrs-unified-sdk-ffiintoDashSDKFFI.xcframework; integration is via Swift Package Manager withimport SwiftDashSDK, no header copying.Left untouched on purpose
swift_dash_*C function names in the Swift README's API reference do not exist in the tree (FFI symbols aredash_sdk_*). Rewriting the API reference is SDK-surface documentation and belongs to the client SDK lanes.v4.1-dev; the badge branch is a maintainer choice at each dev-branch promotion.v4.2-devmentions inpackages/rs-platform-wallet-ffi/ERROR_CODE_REGISTRY.md, the wallet storage README and schema, andbook/src/drive/*.mdare merge records and permalinks, not instructions.v4.2-dev. This PR targetsv5.0-devper the plan's allocation; a maintainer backport to the release line would make the corrections visible sooner.How Has This Been Tested?
Docs only, so no Rust tests. Local checks, each with the exit code captured:
Facts were re-read from the tree after the rebase onto
v5.0-dev:LATEST_VERSION = PROTOCOL_VERSION_14, 49[workspace] members,rust-toolchain.tomlchannel 1.98.1,StateTransitionwith 26 variants,signature()andowner_id()arms inpackages/rs-dpp/src/state_transition/mod.rs,ADDRESS_FUNDS_INITIAL_PROTOCOL_VERSION = 11andSHIELDED_POOL_INITIAL_PROTOCOL_VERSION = 12, 201BasicErrorand 153StateErrorvariants,packages/swift-sdk/Package.swift(tools 6.0, iOS 18, macOS 15,DashSDKFFI.xcframeworkbinary target),packages/swift-sdk/build_ios.sh(buildsrs-unified-sdk-ffi, release profile default),packages/kotlin-sdk/README.mdandPUBLISHING.md, and thedash-sdk-android-*.aarassets on the v4.2.0-beta.1, beta.2 and beta.3 GitHub releases.CI:
book-preview.ymlbuilds the book on this PR;pr.ymllints the title.Breaking Changes
None. No consensus, fee, storage, protocol table, proto or SDK surface changes.
Decisions taken (provisional values)
build_ios.sh". No claim of a published xcframework asset: the release workflow is wired, but the v4.2.0-beta.1 through beta.3 releases carry noDashSDKFFI-*.xcframework.zip.org.dashj:dash-sdk-androidare named as the publishing target only, because the artifact was not resolvable from Central when checked.4.2.0-beta.Npointing at the rootCargo.toml, since the literal changes with every prerelease.v5.0-devper the plan; backport to the default branch is recommended to maintainers.Checklist:
For repository code-owners and collaborators only
Dash-Tasks: R05-06
🤖 Generated with Claude Code
Automated reviewer consensus (Fable 5.1 implementer, GPT-6 Astra reviewer)
Reviewer consensus
Review consensus
notednoted