Bug Description
The ugig.net escrow integration with CoinPayPortal only supports the Custodial escrow model. CoinPayPortal supports a 2-of-3 Multisig escrow model that requires an arbiter_address field for dispute resolution, but this field is not accepted or passed through in the current codebase.
Impact
Users cannot create multisig escrows with an arbiter for dispute resolution. This limits ugig.net to custodial escrow only, which means there is no neutral third-party (arbiter) that can resolve disputes between depositors and beneficiaries.
Affected Files
src/lib/coinpayportal.ts — CreateEscrowOptions interface and createEscrow() function body do not include an arbiter_address field
src/app/api/gigs/[id]/escrow/route.ts — Zod validation schema, request destructuring, createEscrow() call, and database insert all lack arbiter_address support
Expected Behavior
- The API should accept an optional
arbiter_address field (a wallet address for the dispute arbiter)
- This field should be passed through to the CoinPayPortal
/api/escrow endpoint
- It should be stored in the
gig_escrows table alongside the escrow record
Notes
Bug Description
The ugig.net escrow integration with CoinPayPortal only supports the Custodial escrow model. CoinPayPortal supports a 2-of-3 Multisig escrow model that requires an
arbiter_addressfield for dispute resolution, but this field is not accepted or passed through in the current codebase.Impact
Users cannot create multisig escrows with an arbiter for dispute resolution. This limits ugig.net to custodial escrow only, which means there is no neutral third-party (arbiter) that can resolve disputes between depositors and beneficiaries.
Affected Files
src/lib/coinpayportal.ts—CreateEscrowOptionsinterface andcreateEscrow()function body do not include anarbiter_addressfieldsrc/app/api/gigs/[id]/escrow/route.ts— Zod validation schema, request destructuring,createEscrow()call, and database insert all lackarbiter_addresssupportExpected Behavior
arbiter_addressfield (a wallet address for the dispute arbiter)/api/escrowendpointgig_escrowstable alongside the escrow recordNotes
skill.md(lines 144, 175) — PR fix(skill.md): change PATCH to PUT for gigs and posts update routes #254 by forgou37 addresses that