Align wallet sessions, Solana, and wallet import - #81
Conversation
Refresh the internal WaaS client and align the owner-facing SDK surface with TypeScript. Add Solana wallet and indexer support plus attested wallet import, while excluding backend RAC operations and example infrastructure. BREAKING CHANGE: access grant models and owner access methods now follow the direct and remote access session API.
|
Claude finished @tolgahan-arikan's task —— View job PR Review: Align wallet sessions, Solana, and wallet importReviewed the security-sensitive additions (wallet-import HPKE, Nitro attestation, remote-access sessions, Solana, fee selection). Overall this is careful, well-structured work: HPKE binding to a canonical SPKI, COSE_Sign1 structural checks, PCR0 trust pinning, request/response binding via A few items worth addressing before merge. Blockers / should-fix
Nits / questions
Style / docs
SummarySolid, defense-in-depth implementation. The main gap is test coverage for
Job run • branch |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fde4fa4486
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Exercise canonical Base64 validation and fail-closed attestation checks, document the intentional Solana key ambiguity guard, and correct the access-inspection error contract.
|
Review follow-up is in signed commit 7455139. It adds focused fail-closed attestation tests, direct canonical Base64 padding and rejection vectors, regression coverage for the intentional Solana key ambiguity rule, and corrects the public inspection error contract. Compatibility overloads and the legacy wallet-type fallback remain intentionally excluded to match the agreed breaking scope and TypeScript behavior. Full ./gradlew --build-cache verify passes across all 215 tasks. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7455139d05
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@claude review |
|
Claude finished @tolgahan-arikan's task —— View job PR Review: Align wallet sessions, Solana, and wallet importRe-reviewed at the current HEAD, focusing on what changed since the earlier Claude/Codex passes: the attestation error-preservation fix ( VerdictThe two prior blockers are resolved. Confirmations (correct as written)
Nits / questions (non-blocking)
Style / docs
SummaryThis is careful, well-tested defensive work and the previously-flagged blockers are addressed. Remaining items are nits/confirmations, none blocking. Nice work on the attestation negative-path coverage.
|
Summary
0.2.0to0.3.0migration guideThis PR prepares and versions the SDK for the
0.3.0release: Maven publication metadata for both modules and the installation example are set to0.3.0. No separate version-bump PR is required.Breaking changes and migration
The public access API now models direct credentials and remote smart sessions separately.
CredentialInfois nowWalletCredential; access listing returnsAccessGrantandAccessGrantPage; andrevokeAccessacceptscredentialIdplus an optionalsessionId.Walletnow includes the requiredkeyOrigin,WalletTypeincludes Solana, fee selections can preserve the quoted option index, and sponsored transactions invoke custom fee selectors with an empty option list.See MIGRATION.md for concrete
0.2.0to0.3.0migration steps. No compatibility shims are included.Wallet import
Applications can import raw EVM or Solana private-key material through the SDK's attested HPKE flow or provide encrypted key material through the advanced recipient-key/import methods. The advanced flow supports server-side custody integrations such as Privy. Mnemonic or HD-wallet inputs must first be derived locally to the intended child private key.
Attestation trust is managed by the SDK for Polygon-managed OMS environments. Development publishable keys accept Nitro's debug-mode zero PCR0 for disposable test wallets. Staging and Production use pinned deployed measurements; callers do not construct wallet-import configuration or provide PCR values.
Generated source
0xsequence/waasintegration/v1.1817701409d8d980979aa03d273538ee112663eafv1-26.9.9-42835a0a2adcb9fa810bf56d76cec4c246c328e3ccad75dewebrpc-gen v0.37.2withgen-kotlin v0.3.2Pinned wallet-import PCR0 values:
e271fe4b26c9d58d6089b908ab713f888e6107e2cb4782ddaceea950bbec9971ccd9159e7a099bd506e04ce55c3da6961935cbc713f0b43060315689e87285f6ba76bcf06f26d0719735e8d674b71e0eff71dcf77fe90ab32870ef3c954973b7, published in WaaS v1.1.0Staging can advance between WaaS releases. PCR rotation must remain SDK-first: publish trust for the current and replacement measurements before deploying the replacement, then remove the retired measurement in a later SDK release.
Explicitly excluded
The generated transport remains internal, so upstream backend operations are not part of the public SDK surface.
Verification
./gradlew --build-cache verifygit diff --checkpassed