feat(verifier): implement POST /transfer and GET /verify/:hash/history on Stellar - #961
Merged
mftee merged 2 commits intoJul 24, 2026
Merged
Conversation
Contributor
|
@mijinummi is attempting to deploy a commit to the Mftee's projects Team on Vercel. A member of the Team first needs to authorize it. |
POST /transfer and GET /verify/:hash/history are already fully implemented on main (record_transfer, verify_document_history in lib.rs), using axum and the project's existing AppState/cache/stellar abstractions, and are already wired into the Router. This PR's own implementation was written against actix-web instead of axum, referenced an errors::AppError and state::AppState that don't exist anywhere in the codebase, and declared a duplicate `mod stellar;` colliding with the existing `pub mod stellar;`. None of it was reachable from main.rs (configure_routes was never called), and it broke `cargo fmt`/`cargo build` outright because contract/src/handlers.rs was never created for the `mod handlers;` declaration to resolve. Removing it since the functionality it targets already exists and works; this leaves the PR as a no-op against main rather than reimplementing already-shipped code against the wrong framework.
mftee
approved these changes
Jul 24, 2026
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.
📝 Summary
Implements
POST /transferandGET /verify/:hash/historyin the Rust verifier (#856) to record land document ownership transfers permanently on the Stellar blockchain viaManageDataentries and maintain an indexed transfer history.Closes #856
🛠️ Changes Introduced
contract/src/models/transfer.rs:TransferRequest,TransferPayload,TransferResponse,TransferRecord, andTransferHistoryResponse.contract/src/stellar/transfer.rs:build_transfer_key()ensuring keys comply with Stellar's 64-byteManageDatalimits (transfer_prefix for initial,tr_+ counter suffix for subsequent transfers).record_transfer_on_stellar()to serialize transfer payloads and recordManageDatatransactions on Stellar.contract/src/handlers/transfer.rs:POST /transfer: Validates document anchor existence in Redis (returns404if unanchored), writes transfer record on Stellar, updates the cached owner in Redis, and increments the document's monotonic transfer counter.GET /verify/:hash/history: Validates anchor existence and aggregates transfer history records sequentially in chronological order.contract/src/lib.rs:/transferand/verify/{hash}/historyroutes into the Actix web service configuration.🧪 How to Test