Skip to content

Beta5 Wave I: xPNTsToken finance + KMS UnfreezeKey (KMS → 100%)#72

Merged
jhfnetboy merged 2 commits into
mainfrom
feat/beta5-wave-i-xpnts-kms
Jun 16, 2026
Merged

Beta5 Wave I: xPNTsToken finance + KMS UnfreezeKey (KMS → 100%)#72
jhfnetboy merged 2 commits into
mainfrom
feat/beta5-wave-i-xpnts-kms

Conversation

@jhfnetboy

Copy link
Copy Markdown
Member

Final Beta5 coverage wave. KMS 97% → 100% and closes all 20 xPNTsToken gaps.

PART 1 — xPNTsToken (20 fns wrapped in tokens.ts, ABI-verified, ABIs from @aastar/core):

  • writes: setMaxSingleTxLimit, setSpenderDailyCap, recordDebtWithOpHash, addApprovedFacilitator, removeApprovedFacilitator, renounceFactory, unsetEmergencyDisabled
  • reads: maxSingleTxLimit, spenderDailyCapTokens, spenderRateLimit (tuple {dailyBurnTotal, windowStart, reserved}), usedDebtHashes, emergencyDisabled, emergencyRevokedAddress, exchangeRateUpdatedAt, approvedFacilitators
  • constants: EXCHANGE_RATE_COOLDOWN/DELTA_BPS/MAX/MIN, MAX_SINGLE_TX_LIMIT_CAP

PART 2 — KMS POST /UnfreezeKey (kms-signer.ts KmsManager.unfreezeKey): plain client.post (no x-amz-target, unlike DeleteKey), ApiKey + WebAuthn-in-body per openapi.yaml, response {KeyId, LifecycleStatus}. This is the KMS half of the long-deferred task #17.

Codex challenge review: APPROVE, 0 findings. Tests: core 313, airaccount 489 pass (assert functionName+args / POST path+body).

Beta5 nearly complete across waves A (#69 merged) + G (#70) + H (#71) + I (this). Once all merge: KMS 100%, AirAccount 100%, SuperPaymaster ecosystem ~100% (gov contracts via H, xPNTsToken via I, SP core via A).

🤖 Generated with Claude Code

… closes task #17 KMS half)

PART 1 — xPNTsToken (20 fns wrapped in tokens.ts, ABI-verified, ABIs from @aastar/core):
- writes: setMaxSingleTxLimit, setSpenderDailyCap, recordDebtWithOpHash,
  addApprovedFacilitator, removeApprovedFacilitator, renounceFactory, unsetEmergencyDisabled
- reads: maxSingleTxLimit, spenderDailyCapTokens, spenderRateLimit (tuple
  {dailyBurnTotal, windowStart, reserved}), usedDebtHashes, emergencyDisabled,
  emergencyRevokedAddress, exchangeRateUpdatedAt, approvedFacilitators
- constants: EXCHANGE_RATE_COOLDOWN/DELTA_BPS/MAX/MIN, MAX_SINGLE_TX_LIMIT_CAP

PART 2 — KMS POST /UnfreezeKey (kms-signer.ts KmsManager.unfreezeKey): plain
client.post (no x-amz-target, unlike DeleteKey), ApiKey + WebAuthn-in-body per
openapi.yaml; response {KeyId, LifecycleStatus}. This is the KMS half of the
long-deferred task #17.

Coverage: KMS 97% → 100%, xPNTsToken gaps 20 → 0.
Codex review: APPROVE, 0 findings. Tests: core 313, airaccount 489 pass.
@jhfnetboy jhfnetboy requested a review from fanhousanbu as a code owner June 15, 2026 16:04
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@clestons clestons left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Beta5 Wave I — xPNTsToken finance + KMS UnfreezeKey

Verdict: APPROVE — 4-round (20 token-finance wrappers incl. WRITES + a KMS state-changing op; verified + Codex PK). No findings.

Verified

  • All 20 xPNTsToken wrappers correctfunctionName + arity match the ABI (mechanical, 0 mismatch), and write arg ORDER/types match exactly (Codex Q5): setMaxSingleTxLimit, setSpenderDailyCap, recordDebtWithOpHash, addApprovedFacilitator/removeApprovedFacilitator, renounceFactory (0-arg, irreversible — correctly wired, exposing it is fine), unsetEmergencyDisabled; reads incl. the spenderRateLimit tuple. ✅
  • KMS UnfreezeKey matches the OpenAPI spec (Codex Q6, verified vs openapi.yaml): POST /UnfreezeKey, global ApiKey header, body {KeyId, + optional WebAuthn}, no x-amz-target (correctly different from the AWS-KMS-shaped DeleteKey), response {KeyId, LifecycleStatus}. Auth/path correct for a state-changing unfreeze. ✅ (closes the KMS half of #17.)

Clean final coverage wave. Approving.

# Conflicts:
#	docs/coverage-report.md
@jhfnetboy jhfnetboy merged commit 40c8942 into main Jun 16, 2026
1 check failed
@jhfnetboy jhfnetboy deleted the feat/beta5-wave-i-xpnts-kms branch June 16, 2026 01:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants