You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
contracts/contrib/src/escrow.rs exists but has no release_escrow() or dispute_escrow() functions. Funds can be deposited into escrow but can never be released, making escrow-based asset transfers permanently locked.
Proposed Solution
Create contracts/opsce/src/escrow_release.rs. Implement release_escrow(env, escrow_id) triggered on condition fulfillment and dispute_escrow(env, escrow_id, reason) for contested releases.
Acceptance Criteria
create_escrow(env, asset_id, amount, recipient, condition_hash) stores an escrow record
release_escrow(env, escrow_id) transfers funds to recipient — can be called by the depositor or admin
dispute_escrow(env, escrow_id, reason) freezes the escrow and requires admin resolution
resolve_dispute(env, escrow_id, release_to_recipient) called by admin to settle (admin only)
Problem
contracts/contrib/src/escrow.rsexists but has norelease_escrow()ordispute_escrow()functions. Funds can be deposited into escrow but can never be released, making escrow-based asset transfers permanently locked.Proposed Solution
Create
contracts/opsce/src/escrow_release.rs. Implementrelease_escrow(env, escrow_id)triggered on condition fulfillment anddispute_escrow(env, escrow_id, reason)for contested releases.Acceptance Criteria
create_escrow(env, asset_id, amount, recipient, condition_hash)stores an escrow recordrelease_escrow(env, escrow_id)transfers funds to recipient — can be called by the depositor or admindispute_escrow(env, escrow_id, reason)freezes the escrow and requires admin resolutionresolve_dispute(env, escrow_id, release_to_recipient)called by admin to settle (admin only)EscrowStatusenum: Active, Released, Disputed, Resolvedescrow_releasedanddispute_raisedevents