Repository navigation
feat: wallet derivation regression test, policy verification gate, audit actor filter, and signer concurrency guard - #618
Merged
davedumto merged 3 commits intoOct 22, 2026
Conversation
…or filter, and signer concurrency guard
|
@ACOB-DEV 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! 🚀 |
|
Someone is attempting to deploy a commit to the david's projects Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Implements critical security, consistency, and concurrency improvements across
wallet-service:POST /wallet/policy/updateon verifying referenced contracts against verification-service, rejecting unverified targets and failing closed when verification-service is unreachable.POST /wallet/signer/manageto prevent race conditions during simultaneous signer additions/removals.passkey,device,policy) toGET /wallet/audit-logs, rejecting invalid actors with 400.Closes #519
Closes #513
Closes #512
Closes #509
Changes proposed
What were you told to do?
POST /wallet/policy/updateagainstverification-servicebefore accepting updates, failing with 400 on unverified contracts and 503 if verification-service is unreachable.actorquery parameter toGET /wallet/audit-logssupportingpasskey,device, andpolicy, filtering results accordingly, returning all if omitted, and returning 400 on invalid actor values.POST /wallet/signer/manage, rejecting conflicting concurrent mutations with 409 Conflict and documenting the client retry contract.What did I do?
Wallet Derivation Regression Test (#519)
services/wallet-service/src/derivation.test.tsasserting deterministic derivation for standard test key ID against the pinned contract IDCA3TKZ44U5KVK7WHIIXVZ6WXVPNACXRQGKJL65L3I62QJRQF33BDSABY.Policy Verification Gate (#513)
POST /wallet/policy/updateinservices/wallet-service/src/server.tsto inspect referenced contract IDs (in body or rules)./verification/:contractId/statusandverificationClientdependency seam.unverified_contractif unverified, and 503verification_service_unavailableif verification-service is unreachable.services/wallet-service/src/server.test.ts.Signer Set OCC Concurrency Guard (#509)
services/wallet-service/src/server.ts.POST /wallet/signer/manageagainst optimistic concurrency version checks.signer_version_conflicterror and current version when expected version does not match.server.test.ts.Audit Logs Actor Filtering (#512)
actorquery parameter parsing and validation (passkey,device,policy) onGET /wallet/audit-logs.invalid_actorfor invalid values; preserves full audit trail output when omitted.Check List (Check all the applicable boxes)
Screenshots / Validation Evidence
derivation.test.tsandserver.test.tstesting happy paths, unverified contract rejection, unreachable verification service, concurrency conflicts, and actor query filtering.