Conversation
🟡 Heimdall Review Status
|
2 tasks
odaiin
force-pushed
the
assetfare/action-provider
branch
from
September 24, 2026 03:16
e5e527c to
f774ed4
Compare
MVPuknowme
approved these changes
Sep 25, 2026
|
Review Error for MVPuknowme @ 2026-09-25 19:27:29 UTC |
This branch has not been deployed
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.
What changed\n\nAdds an assetfare ActionProvider with two read-only actions:\n\n- assetfare_get_capabilities reads the live six-chain, 76-route surface and current availability.\n- assetfare_get_quote requests one fresh non-custodial bridge or cross-chain swap quote, including total token-path cost, expected and minimum receive, ETA, TTL, ordered provider path, exact 1bp step, and quote-bound continuation_v3.\n\nThe provider supports the current Polygon and Optimism native-USDC source-only directions and rejects those chains as destinations. It treats AssetFare as one unranked candidate and directs agents to compare fresh executable routes.\n\n## Security boundary\n\n- no private keys or seed phrases\n- no wallet authentication\n- no action preparation\n- no signing or submission\n- no swap, bridge, funding, or order creation\n- rejects secret, signed, unsafe continuation, route-summary, intent, amount, Across-classification, and payload-hash mutations\n- preserves the server_signing=false and server_submission=false boundary\n\n## Verification\n\n- package-local Jest: 19 tests passed\n- package-local TypeScript check passed\n- package-local ESLint passed\n- actual Python Core 2.4.1 fixture reproduces the typed-canonical-v1 hash after JavaScript unsafe-integer parsing\n- number/string, negative zero, unsafe integral number, and lone-surrogate hostile cases pass\n- git diff check passed\n- the commit is GitHub-signed and verified\n\nThe public API and source are documented in the included provider README.\n\nCloses #1500\n\n## Checklist\n\n- [x] Added documentation to all relevant README.md files\n- [x] Added a changelog entry
Caller-owned continuation update
The provider remains read-only and still returns only a sanitized unranked continuation descriptor. It now also returns a structured executable/args handoff pinned to
assetfare-mcp@1.3.0: first obtain a new exact validated mode-0600 quote file, then only after comparison and explicit caller approval request one verified unsigned session action. The provider itself still collects no wallet, creates no approval/session, and never signs or submits. The handoff is positioned for aggregate refill/material transfer, not automatic per-x402-micropayment top-up.Revalidation at signed head
d2643bb44f086d23cca440c509d89a145eb83704: TypeScript check passed, ESLint passed, Prettier passed, and all 19 AssetFare Jest tests passed.