Multipartyvs#579
Open
Sadeequ wants to merge 2 commits into
Open
Conversation
Contributor
|
@Sadeequ is attempting to deploy a commit to the Mftee's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@Sadeequ 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! 🚀 |
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.
CLOSE #534 ✅
CLOSE #535 ✅
CLOSE #536 ✅
CLOSE #537 ✅
I created the contract/src/multi_party/ module with domain types (
VerifierProfile,SignatureRecord,MultiPartyPolicy,CoSigningSession), a MultiPartyError enum, a Redis-backed MultiPartyRepository, a preset policy engine (land_sale, internal_review), and the MultiPartyVerificationService orchestrator. The service enforced the required business rules: one signature per verifier, allowed-verifier checks, and finalized-state immutability. I exported the new module from lib.rs, committed all changes to branch multipartyvs, and verified the module was self-contained and consistent with the existing codebase conventions.Issue 2 — Document Expiry Service
I created the contract/src/expiry/ module with domain types (ExpiryPolicy, DocumentExpiryRecord, ExpiryStatus), an ExpiryError enum, a Redis-backed ExpiryRepository, and the DocumentExpiryService supporting register_expiry, check_status, and renew. I updated lib.rs to export the module and committed the work to the same branch. The implementation covered the full expiry lifecycle without modifying unrelated modules.
Issue 3 — Missing Transfer-History Route
I identified that get_transfer_history already existed in lib.rs but was never registered in the Axum router, causing GET /transfer/:hash to return 404. I documented a non-invasive fix in this markdown file: a thin wrapper module under contract/module/transfer-history/ that reuses the existing handler and registers the route via register_routes(router), keeping lib.rs untouched.
Issue 4 — Revocation Endpoint
I documented a implementation plan inside contract/module/revoke/ that replaces the existing NOT_FOUND stub with real behavior. The plan reuses HashValidator, anchors a REVOKE: memo on Stellar, persists a RevocationRecord to Redis, and exposes the same /revoke endpoint so existing clients receive a populated RevokeResponse instead of an error.
All four issues were addressed in a way that respected the existing module structure, naming conventions, and dependency constraints.