v1.21.0 ERC-4337 Session Keys — tools (the user-facing half of #78)#79
Conversation
…allet_4337_sign_and_send — both fences (local gates + chain caps), hook coverage, docs, v1.21.0 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…money-handling plugin Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 22 minutes and 16 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (20)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…*.tape) + README hero Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… pinned module addresses Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Why a second PR
#78 squash-merged only its first two commits (the libs + policy gate — "PR A"). The user-facing tools + SECURITY.md + version bump were pushed to that branch afterward and never reached main. This PR carries exactly those outstanding commits, cherry-picked clean onto main.
What lands here (135 → 140 tools, v1.21.0)
chaingpt_aa_session_build_grant/_build_revoke— unsigned grant/revoke payloads; owner signs externally; unbounded grants refused by construction.chaingpt_aa_session_status— chain-authoritative session state.chaingpt_aa_submit_userop— custody-free eth_sendUserOperation (refuses empty signatures).chaingpt_agent_wallet_4337_sign_and_send— local gates (erc4337 who/where + per-tx/velocity on the inner call) THEN the chain enforces the granted caps. Bundler cap-rejections surface as chain-side refusals.Verification
8/8 local layers, 428 vitest, 140 tools at boot. Surface is opt-in fail-closed (
erc4337.enabledabsent/false everywhere) so it's inert until an admin enables it.Tag gate unchanged: v1.21.0 tags only after the live Base Sepolia loop (TESTING.md) — the unrestricted-local-vs-chain-refusal proof. Safe to merge ahead of it.
🤖 Generated with Claude Code