Skip to content

Conditional invoices (Reineira resolver standard) + blog imagery#10

Merged
Pratiikpy merged 3 commits into
mainfrom
arb-sepolia-support
Jun 13, 2026
Merged

Conditional invoices (Reineira resolver standard) + blog imagery#10
Pratiikpy merged 3 commits into
mainfrom
arb-sepolia-support

Conversation

@Pratiikpy

Copy link
Copy Markdown
Owner

What

Three commits ahead of main:

  1. Conditional invoices. A private invoice escrowed on Blank's own EncryptedEscrow that releases when the payer approves, or after an auto-release deadline. The release rule is a pluggable resolver following Reineira's IConditionResolver standard.
    • New InvoiceApprovalResolver (approve or deadline).
    • Storage-safe UUPS append to EncryptedEscrow (createConditionalEscrow plus releaseIfConditionMet).
    • Frontend: create form plus a public invoice page, Arbitrum-gated.
  2. Blog imagery for the three remaining posts.
  3. E2E Rabby flow for the conditional invoice.

Proof (Arbitrum Sepolia)

  • Deployed and UUPS-upgraded, state preserved across the upgrade.
  • Script lifecycle (escrowId 1): create, approve, release with real tx hashes.
  • Real Rabby UI drive (escrowId 2): create, approve, release, green, with screenshots at every state.

Tests

  • 35 contract tests (resolver plus conditional escrow under the cofhe mock).
  • 162 app unit tests, typecheck clean, voice clean.
  • storage:check re-blessed append-only.

wave-3-shipped: public-link and settlement-card screenshots.
fhe-vs-zk: new ZK vs FHE concept diagram (svg).
why-no-token-ever: new four-token-jobs diagram (svg).

Reuses the existing .ll-blog-figure pattern. No CSS or schema change.
EncryptedEscrow gets a storage-safe UUPS append (_escrowResolver) plus
createConditionalEscrow and a permissionless releaseIfConditionMet.
New InvoiceApprovalResolver implements Reineira's IConditionResolver:
the escrow releases to the vendor when the payer approves, or after an
auto-release deadline. Vendor-protective: refund-on-expiry is disabled
for resolver-gated escrows, so there is no refund race.

Frontend: useEncryptedEscrow create/approve/release actions, a public
conditional-invoice page, and an Arbitrum-gated create form.

Deployed and proven on Arbitrum Sepolia (create, approve, release with
real cofhe encryption). 35 contract tests; storage layout re-blessed
append-only.
Adds a FEATURES=cinvoice flow to the live Rabby harness: Dave creates an
encrypted conditional invoice to Bob, approves early release, then
releases. Drove green end-to-end on Arbitrum Sepolia with real wallet
popups (create, approve, release) and screenshots at every state.
@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
blank Ready Ready Preview, Comment Jun 13, 2026 11:34am

@Pratiikpy
Pratiikpy merged commit 5f07dfc into main Jun 13, 2026
5 checks passed
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.

1 participant