Description:
Allow escrow release to be conditional on the state of another Soroban contract (e.g., a DEX trade executed, NFT minted, or DAO vote passed).
Acceptance Criteria:
lock_funds_conditional(session_id, seller, amount, condition_contract: Address, condition_selector: Bytes32).
check_condition(session_id) -> bool — calls external contract's view function.
release_if_condition_met(session_id) — anyone can call to trigger release.
Condition must be met within condition_timeout_ledgers.
Otherwise buyer can reclaim via refund_conditional_failed(session_id).
Emits ConditionMet, ConditionFailedRefund events.
Labels: cross-contract, conditional, automation
Description:
Allow escrow release to be conditional on the state of another Soroban contract (e.g., a DEX trade executed, NFT minted, or DAO vote passed).
Acceptance Criteria:
lock_funds_conditional(session_id, seller, amount, condition_contract: Address, condition_selector: Bytes32).
check_condition(session_id) -> bool — calls external contract's view function.
release_if_condition_met(session_id) — anyone can call to trigger release.
Condition must be met within condition_timeout_ledgers.
Otherwise buyer can reclaim via refund_conditional_failed(session_id).
Emits ConditionMet, ConditionFailedRefund events.
Labels: cross-contract, conditional, automation